diff --git a/dist/minio-ng/main-es2015.js b/dist/minio-ng/main-es2015.js index 39204a9..21aa240 100644 --- a/dist/minio-ng/main-es2015.js +++ b/dist/minio-ng/main-es2015.js @@ -212,16 +212,21 @@ let BucketsComponent = class BucketsComponent { this.objectKeys = Object.keys; this.isNaN = Number.isNaN; this.buckets = {}; + this.updateEncryptionTypeChanged = false; this.newBucketName = ""; this.uiShowQuota = false; this.newBucketQuotaType = ""; this.newBucketQuota = ""; this.quotaTypes = ["fifo", "hard"]; + this.newBucketEncryption = ""; + this.encryptionTypes = ["sse-s3", "sse-kms"]; + this.newBucketMasterKeyID = ""; this.newBucketEventARN = ""; this.updateBucketEventARN = ""; this.updateBucketEventFilterPrefix = ""; this.updateBucketEventFilterSuffix = ""; this.updateBucketQuotaObj = {}; + this.updateBucketEncryptionObj = {}; this.updateQuotaTypeChanged = false; this.updateQuotaChanged = false; this.newBucketPolicy = "none"; @@ -345,6 +350,27 @@ let BucketsComponent = class BucketsComponent { this.newBucketTagsList = data; } }); + this.apiService.getBucketEncryption(bucketName).subscribe((data) => { + this.apiService.validateAuthInResponse(data); + console.log(Object.keys(data)); + console.log(data); + var dataKeys = Object.keys(data); + console.log("Bucket Encryption >>", dataKeys[1]); + if (dataKeys[1] == "Rules") { + this.updateBucketEncryptionObj = data; + var dataVals = Object.values(data); + console.log("Enc datavals", dataVals[1][0]['Apply']['KmsMasterKeyID']); + if (dataVals[1][0]['Apply']['KmsMasterKeyID'] == "") { + this.updateBucketEncryptionObj = "sse-s3"; + } + else { + this.updateBucketEncryptionObj = "sse-kms"; + } + } + else { + this.updateBucketEncryptionObj = ""; + } + }); this.apiService.getBucketQuota(bucketName).subscribe((data) => { this.apiService.validateAuthInResponse(data); console.log(Object.keys(data)); @@ -377,9 +403,15 @@ let BucketsComponent = class BucketsComponent { updatePolicyType() { this.updatePolicyTypeChanged = true; } + updateEncryptionType() { + this.updateEncryptionTypeChanged = true; + } updateQuota() { this.updateQuotaChanged = true; } + deleteBucketEncryptionPrepare(bucketName) { + this.bucketToRemoveEncryption = bucketName; + } deleteBucket() { this.apiService.deleteBucket(this.bucketToDelete).subscribe((data) => { this.apiService.validateAuthInResponse(data); @@ -396,6 +428,9 @@ let BucketsComponent = class BucketsComponent { resetForm() { this.newBucketName = ""; this.newBucketEventARN = ""; + this.newBucketEncryption = ""; + this.newBucketMasterKeyID = ""; + this.updateEncryptionTypeChanged = false; this.newBucketEventFilterPrefix = ""; this.newBucketEventFilterSuffix = ""; this.selectedEventTypes = []; @@ -411,10 +446,14 @@ let BucketsComponent = class BucketsComponent { } resetUpdateForm() { this.updateBucketEventARN = ""; + this.newBucketEncryption = ""; + this.newBucketMasterKeyID = ""; + this.updateEncryptionTypeChanged = false; this.selectedEventTypes = []; this.updateBucketEventFilterPrefix = ""; this.updateBucketEventFilterSuffix = ""; this.updateBucketQuotaObj = {}; + this.updateBucketEncryptionObj = ""; this.updateQuotaTypeChanged = false; this.updateQuotaChanged = false; this.tagListChanged = false; @@ -476,12 +515,12 @@ let BucketsComponent = class BucketsComponent { var bucketsArr = this.newBucketName.split(','); for (var i = 0; i < bucketsArr.length; i++) { if (bucketsArr[i] != '') { - this.createBucketSimple(bucketsArr[i], this.newBucketEventARN, this.newBucketQuotaType, this.newBucketQuota, this.newBucketPolicy, bucketsArr.length, i + 1); + this.createBucketSimple(bucketsArr[i], this.newBucketEventARN, this.newBucketQuotaType, this.newBucketQuota, this.newBucketPolicy, this.newBucketEncryption, this.newBucketMasterKeyID, bucketsArr.length, i + 1); } } } else { - this.createBucketSimple(this.newBucketName, this.newBucketEventARN, this.newBucketQuotaType, this.newBucketQuota, this.newBucketPolicy, 1, 1); + this.createBucketSimple(this.newBucketName, this.newBucketEventARN, this.newBucketQuotaType, this.newBucketQuota, this.newBucketPolicy, this.newBucketEncryption, this.newBucketMasterKeyID, 1, 1); } } bucketLifecycle(bucket) { @@ -512,6 +551,9 @@ let BucketsComponent = class BucketsComponent { if (this.updatePolicyTypeChanged) { this.setPolicy(this.editBucketName, true); } + if (this.updateEncryptionTypeChanged) { + this.setBucketEncryption(this.editBucketName, this.updateBucketEncryptionObj, this.newBucketMasterKeyID, true); + } } enableNotificationForBucket(bucket, stsARN, eventTypes, filterPrefix, filterSuffix, updateListAfter) { var eventTypesArr = []; @@ -573,7 +615,35 @@ let BucketsComponent = class BucketsComponent { this.getBuckets(); }); } - createBucketSimple(bucket, eventARN, quotaType, quotaVal, policy, numberOfBuckets, currentBucketNumber) { + removeBucketEncryption() { + var bucket = this.bucketToRemoveEncryption; + this.apiService.removeBucketEncryption(bucket).subscribe((data) => { + this.apiService.validateAuthInResponse(data); + console.log(data); + if (data["Success"]) { + this.toastr.success('Encryption for bucket ' + bucket + ' has been removed', 'Success'); + } + else { + this.toastr.error(JSON.stringify(data), 'Error while removing bucket encryption'); + } + this.getBuckets(); + }); + } + setBucketEncryption(bucket, encType, masterKeyID, reloadBucketList) { + this.apiService.setBucketEncryption(bucket, encType, masterKeyID).subscribe((data) => { + this.apiService.validateAuthInResponse(data); + if (data["Success"]) { + this.toastr.success('Encryption for bucket ' + bucket + ' has been set', 'Success'); + } + else { + this.toastr.error(JSON.stringify(data), 'Error while set encryption for bucket'); + } + if (reloadBucketList) { + this.getBuckets(); + } + }); + } + createBucketSimple(bucket, eventARN, quotaType, quotaVal, policy, encryption, masterKeyID, numberOfBuckets, currentBucketNumber) { this.apiService.createBucket(bucket).subscribe((data) => { this.apiService.validateAuthInResponse(data); console.log(data); @@ -591,6 +661,9 @@ let BucketsComponent = class BucketsComponent { if (this.updatePolicyTypeChanged) { this.setPolicy(bucket, false); } + if (encryption != "") { + this.setBucketEncryption(bucket, encryption, masterKeyID, false); + } } else { this.toastr.error(JSON.stringify(data), 'Error while creating bucket'); @@ -627,7 +700,8 @@ let BucketsComponent = class BucketsComponent { } else { this.downloadLifecycleAvailable = 1; - var uri = this.sanitizer.bypassSecurityTrustUrl("data:text/xml;charset=UTF-8," + encodeURIComponent(data.toString())); + console.log("Lifecycle>>>>", JSON.stringify(data)); + var uri = this.sanitizer.bypassSecurityTrustUrl("data:text/json;charset=UTF-8," + encodeURIComponent(JSON.stringify(data))); this.downloadJsonHref = uri; } } @@ -932,7 +1006,7 @@ __webpack_require__.r(__webpack_exports__); "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ("\n\n\n\n \n Adminio UI \n\n \n \n\n \n \n \n \n
\n \n \n\t\t\t\t\t\n
\n
\n \n\n
\n\n\n\n\n\n\n\n\n"); +/* harmony default export */ __webpack_exports__["default"] = ("\n\n\n\n \n Adminio UI \n\n \n \n\n \n \n \n \n
\n \n \n\t\t\t\t\t\n
\n
\n \n\n
\n\n\n\n\n\n\n\n\n"); /***/ }), @@ -1468,7 +1542,7 @@ FilterPipe = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ("
\n
\n
\n

Buckets

\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n\t\n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n \n\t \n\t \t \n\t \n\t \n \n \n \n \n \n\t
NameTagsCreation DateSizeQuotaEventOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n {{buckets[b].name}}\n {{buckets[b].policy}}\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n 0\">\n
    \n
  • {{tag}}: {{buckets[b].tags[tag]}}
  • \n
\n
\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">{{buckets[b].info.creationDate | date : \"dd/MM/yy HH:mm:ss\" }}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\">\n \n {{(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)+'').length > 3 ? math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024/1024)+' Gb' : isNaN(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)) ? '–' : math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024) +' Mb'}}\n \n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\">\n \n {{buckets[b].quota?.quotatype}}\n {{buckets[b].quota?.quotatype}}\n \n 0\" mdbTooltip=\"{{buckets[b].quota?.quota}} bytes\" placement=\"top\">\n {{(math.round(buckets[b].quota?.quota/1024/1024)+'').length > 3 ? math.round(buckets[b].quota?.quota/1024/1024/1024)+' Gb' : isNaN(math.round(buckets[b].quota?.quota/1024/1024)) ? '–' : math.round(buckets[b].quota?.quota/1024/1024) +' Mb'}}\n \n \n ∞\n \n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && serviceInfo?.sqsARN\">\n \n Lambda:\n \n {{c.Lambda}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n \n Topic:\n \n {{c.Topic}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n \n Queue:\n \n {{c.Queue}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t \t \t \n\t \t \t \n\t \t \t \n\t \t \t \n \n\t \t
\n \n
\n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Bucket Lifecycyle

\n
\n
\n
\n
\n
\n This bucket already have a lifecycyle policy, you can dowload it by clicking on \"dowload icon\" >\n \n
\n Or override it by upload a new lifecycle policy.\n
\n
\n Lifecycle policy is structrured xml file. You can use examples from Minio\n documentation. Or use an AWS S3 documentation\n Object Lifecycle Management\n
\n
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket

\n
\n
\n Are you shure?
After you click on \"Delete\" button bucket {{bucketToDelete}} will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket Notifications

\n
\n
\n Are you shure?
After you click on \"remove\" button bucket {{bucketToDelete}} notifications will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket Quota Limits

\n
\n
\n Are you shure?
After you click on \"remove\" button quota for bucket {{bucketToDelete}} will be removed.\n
\n \n
\n
\n
\n\n\n\n\n
\n
\n
\n
\n \n

Create Bucket

\n
\n
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n You can pass multiple names with \",\" delimiter\n
\n
Policy
\n
\n \n
\n
\n
\n \n \n
\n
\n
Tags
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \t\t\t\t
\n
\n {{tag}}: {{newBucketTagsList[tag]}}\n
\n
Quota
\n \n\n
\n \n \t\t\t\t\t\t\t
\n\n
\n \n In \"fifo\" mode - old data automatically will be removed when you reach quota limit.
\n In \"hard\" mode - you can't add new data to bucket if quota limit reached.\n
\n\n
\n \t\t\t\t\t\n
\n
Bytes
\n
\n
\n
\n
\n
Events section
\n

\n
\n \t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Update Bucket

\n
\n
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
Policy
\n
\n \n
\n
\n
\n \n \n
\n
\n
Tags
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \t\t\t\t
\n
\n {{tag}}: {{newBucketTagsList[tag]}}\n
\n
\n
Quota section
\n \n
\n \n \t\t\t\t\t\t\t
\n\n
\n \n In \"fifo\" mode - old data automatically will be removed when you reach quota limit.
\n In \"hard\" mode - you can't add new data to bucket if quota limit reached.\n
\n\n
\n \t\t\t\t\t\n
\n
Bytes
\n
\n
\n
\n
\n
Events section
\n

\n
\n \t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n"); +/* harmony default export */ __webpack_exports__["default"] = ("
\n
\n
\n

Buckets

\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n\t\n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n \n\t \n\t \t \n\t \n\t \n \n \n \n \n \n\t
NameTagsCreation DateSizeQuotaEventOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n {{buckets[b].name}}\n   \n {{buckets[b].policy}}\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n 0\">\n
    \n
  • {{tag}}: {{buckets[b].tags[tag]}}
  • \n
\n
\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">{{buckets[b].info.creationDate | date : \"dd/MM/yy HH:mm:ss\" }}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\">\n \n {{(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)+'').length > 3 ? math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024/1024)+' Gb' : isNaN(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)) ? '–' : math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024) +' Mb'}}\n \n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\">\n \n {{buckets[b].quota?.quotatype}}\n {{buckets[b].quota?.quotatype}}\n \n 0\" mdbTooltip=\"{{buckets[b].quota?.quota}} bytes\" placement=\"top\">\n {{(math.round(buckets[b].quota?.quota/1024/1024)+'').length > 3 ? math.round(buckets[b].quota?.quota/1024/1024/1024)+' Gb' : isNaN(math.round(buckets[b].quota?.quota/1024/1024)) ? '–' : math.round(buckets[b].quota?.quota/1024/1024) +' Mb'}}\n \n \n ∞\n \n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && serviceInfo?.sqsARN\">\n \n Lambda:\n \n {{c.Lambda}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n \n Topic:\n \n {{c.Topic}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n \n Queue:\n \n {{c.Queue}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t \t \t \n\t \t \t \n\t \t \t \n\t \t \t \n \n \n\t \t
\n \n
\n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Bucket Lifecycyle

\n
\n
\n
\n
\n
\n This bucket already have a lifecycyle policy, you can export it as JSON by clicking on \"dowload icon\" >\n \n
\n Or override it by upload a new lifecycle policy.\n
\n
\n Lifecycle policy is structrured xml file. You can use examples from Minio\n documentation. Or use an AWS S3 documentation\n Object Lifecycle Management\n
\n
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket

\n
\n
\n Are you shure?
After you click on \"Delete\" button bucket {{bucketToDelete}} will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket Notifications

\n
\n
\n Are you shure?
After you click on \"remove\" button bucket {{bucketToRemoveNotifications}} notifications will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket Quota Limits

\n
\n
\n Are you shure?
After you click on \"remove\" button quota for bucket {{bucketToRemoveQuota}} will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Encryption

\n
\n
\n Are you shure?
After you click on \"remove\" button encryption for bucket {{bucketToRemoveEncryption}} will be removed.\n
\n \n
\n
\n
\n\n\n\n\n
\n
\n
\n
\n \n

Create Bucket

\n
\n
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n You can pass multiple names with \",\" delimiter\n
\n
Policy
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
Encryption
\n

\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
Tags
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \t\t\t\t
\n
\n {{tag}}: {{newBucketTagsList[tag]}}\n
\n
Quota
\n \n\n
\n \n \t\t\t\t\t\t\t
\n\n
\n \n In \"fifo\" mode - old data automatically will be removed when you reach quota limit.
\n In \"hard\" mode - you can't add new data to bucket if quota limit reached.\n
\n\n
\n \t\t\t\t\t\n
\n
Bytes
\n
\n
\n
\n
\n
Events section
\n

\n
\n \t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Update Bucket

\n
\n
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
Policy
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
Encryption
\n

\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
Tags
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \t\t\t\t
\n
\n {{tag}}: {{newBucketTagsList[tag]}}\n
\n
\n
Quota section
\n \n
\n \n \t\t\t\t\t\t\t
\n\n
\n \n In \"fifo\" mode - old data automatically will be removed when you reach quota limit.
\n In \"hard\" mode - you can't add new data to bucket if quota limit reached.\n
\n\n
\n \t\t\t\t\t\n
\n
Bytes
\n
\n
\n
\n
\n
Events section
\n

\n
\n \t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n"); /***/ }), @@ -1528,7 +1602,7 @@ LoaderComponent = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ("
\n\t
\n\t\t
\n\t\t

Policies

\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t     \n\t\t\t\t\n\t\t\t
\n\t\t
\n\t
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t
\n\t
\n\t\n\t\t\n\t\t\t\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t
NameActionPrincipalEffectResourceConditionsOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">{{objectKeys(policies[pol])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
    • {{action}}
    • \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
\n\t\t\t\t\t\t{{policies[pol].Statement.Principal}}\n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • {{st.Effect}}
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • {{resource}}
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t
      • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t
          \n\t\t\t\t\t\t\t\t\t\t\t\t
        • \n\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}\n\t\t\t\t\t\t\t\t\t\t\t
        • \n\t\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t \t\t \n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t \n\t\t\t\t
\n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Policy

\n
\n
\n Are you shure?
After you click on \"Delete\" button policy {{policyToDelete}} will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Upload Policy

\n
\n
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Raw Policy

\n
\n
\n \t\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

{{modalCreateEditTitle}}

\n
\n
\n \t\n \t\t
\n\t\t\t\t\t
 
\n\t\t\t\t\t
\n\n\t\t\t\t \t
\n In Edit mode you can make a copy of policy - Just rename it!\n
\n\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t Principal\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
Buckets section
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t arn:aws:s3:::\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t /\" [(ngModel)]=\"newPolicy.bucket\" aria-label=\"Recipient's username\"\n\t\t\t\t\t\t\t\t\t aria-describedby=\"s3-prefix\">\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
BucketOptions
{{bst}}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
Conditions section
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
Condition and options
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}  \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
 
\n\t\t\t\t\t
\n\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
EffectActionResourceConditionsOptions
{{st.Effect}}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • {{action}}
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • {{resource}}
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t  \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n \n
\n \n
\n
\n
\n"); +/* harmony default export */ __webpack_exports__["default"] = ("
\n\t
\n\t\t
\n\t\t

Policies

\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t     \n\t\t\t\t\n\t\t\t
\n\t\t
\n\t
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t
\n\t
\n\t\n\t\t\n\t\t\t\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t
NameActionPrincipalEffectResourceConditionsOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">{{objectKeys(policies[pol])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
    • {{action}}
    • \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
\n\t\t\t\t\t\t{{policies[pol].Statement.Principal}}\n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • {{st.Effect}}
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • {{resource}}
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t
      • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t
          \n\t\t\t\t\t\t\t\t\t\t\t\t
        • \n\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}\n\t\t\t\t\t\t\t\t\t\t\t
        • \n\t\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t \t\t \n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t \n\t\t\t\t
\n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Policy

\n
\n
\n Are you shure?
After you click on \"Delete\" button policy {{policyToDelete}} will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Upload Policy

\n
\n
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Raw Policy

\n
\n
\n \t\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

{{modalCreateEditTitle}}

Switch to interface
\n
\n
\n \t\n \t\t
\n\t\t\t\t\t
 
\n\t\t\t\t\t
\n\n\t\t\t\t \t
\n In Edit mode you can make a copy of policy - Just rename it!\n
\n\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
0\">\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
0\">\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t Principal\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
Buckets section
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t arn:aws:s3:::\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t /\" [(ngModel)]=\"newPolicy.bucket\" aria-label=\"Recipient's username\"\n\t\t\t\t\t\t\t\t\t aria-describedby=\"s3-prefix\">\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
BucketOptions
{{bst}}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
Conditions section
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
Condition and options
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}  \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
 
\n\t\t\t\t\t
\n\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
EffectActionResourceConditionsOptions
{{st.Effect}}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • {{action}}
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • {{resource}}
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t  \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n \n
\n \n
\n
\n
\n"); /***/ }), @@ -1819,14 +1893,19 @@ let PoliciesComponent = class PoliciesComponent { this.rawView = ''; this.jsn = JSON; this.dropdownActionList = []; + this.dropdownAdminList = []; this.dropdownConditionList = []; this.dropdownConditionKeyList = []; this.selectedActions = []; + this.selectedAdmins = []; this.selectedCondition = []; this.selectedConditionKey = []; this.dropdownActionSettings = {}; + this.dropdownAdminSettings = {}; this.dropdownConditionSettings = {}; this.dropdownConditionKeySettings = {}; + this.advancedInterface = false; + this.advancedInterfaceLabel = "advanced"; this.newPolicy = { name: "", effect: "allow", @@ -1922,6 +2001,43 @@ let PoliciesComponent = class PoliciesComponent { unSelectAllText: 'UnSelect All', enableSearchFilter: true }; + this.dropdownAdminList = [ + { "id": 1, "itemName": "admin:ConfigUpdate" }, + { "id": 2, "itemName": "admin:CreateUser" }, + { "id": 3, "itemName": "admin:DeleteUser" }, + { "id": 4, "itemName": "admin:ListUsers" }, + { "id": 5, "itemName": "admin:EnableUser" }, + { "id": 6, "itemName": "admin:DisableUser" }, + { "id": 7, "itemName": "admin:GetUser" }, + { "id": 8, "itemName": "admin:ServerInfo" }, + { "id": 9, "itemName": "admin:ServerUpdate" }, + { "id": 10, "itemName": "admin:StorageInfo" }, + { "id": 11, "itemName": "admin:DataUsageInfo" }, + { "id": 12, "itemName": "admin:TopLocks" }, + { "id": 13, "itemName": "admin:OBDInfo" }, + { "id": 14, "itemName": "admin:Profiling" }, + { "id": 15, "itemName": "admin:ServerTrace" }, + { "id": 16, "itemName": "admin:ConsoleLog" }, + { "id": 17, "itemName": "admin:KMSKeyStatus" }, + { "id": 18, "itemName": "admin:AddUserToGroup" }, + { "id": 19, "itemName": "admin:RemoveUserFromGroup" }, + { "id": 20, "itemName": "admin:GetGroup" }, + { "id": 21, "itemName": "admin:ListGroups" }, + { "id": 22, "itemName": "admin:EnableGroup" }, + { "id": 23, "itemName": "admin:DisableGroup" }, + { "id": 24, "itemName": "admin:CreatePolicy" }, + { "id": 25, "itemName": "admin:DeletePolicy" }, + { "id": 26, "itemName": "admin:GetPolicy" }, + { "id": 27, "itemName": "admin:AttachUserOrGroupPolicy" }, + { "id": 28, "itemName": "admin:ListUserPolicies" } + ]; + this.dropdownAdminSettings = { + singleSelection: false, + text: "Select Admin actions for statement", + selectAllText: 'Select All', + unSelectAllText: 'UnSelect All', + enableSearchFilter: true + }; this.dropdownConditionList = [ { "id": 1, "itemName": "ArnEquals" }, { "id": 2, "itemName": "ArnEqualsIfExists" }, @@ -2056,6 +2172,16 @@ let PoliciesComponent = class PoliciesComponent { enableSearchFilter: true }; } + switchAdvanced() { + if (this.advancedInterface) { + this.advancedInterface = false; + this.advancedInterfaceLabel = "Advanced"; + } + else { + this.advancedInterface = true; + this.advancedInterfaceLabel = "Basic"; + } + } onActionItemSelect(item) { console.log(item); console.log(this.selectedActions); @@ -2070,6 +2196,20 @@ let PoliciesComponent = class PoliciesComponent { onActionDeSelectAll(items) { console.log(items); } + onAdminItemSelect(item) { + console.log(item); + console.log(this.selectedAdmins); + } + onAdminItemDeSelect(item) { + console.log(item); + console.log(this.selectedAdmins); + } + onAdminSelectAll(items) { + console.log(items); + } + onAdminDeSelectAll(items) { + console.log(items); + } //condition select actions onConditionItemSelect(item) { console.log(item); @@ -2121,6 +2261,7 @@ let PoliciesComponent = class PoliciesComponent { resetPloicyForm(removeName) { console.log(removeName); this.selectedActions = []; + this.selectedAdmins = []; if (!removeName) { this.newPolicy.effect = "Allow"; this.newPolicy.bucket = ""; @@ -2213,16 +2354,28 @@ let PoliciesComponent = class PoliciesComponent { console.log(this.newStatement.Condition); } addStatement() { - if (this.selectedActions.length == this.dropdownActionList.length) { - this.newStatement.Action.push("s3:*"); + console.log("called add statement"); + if (this.selectedActions.length > 0) { + if (this.selectedActions.length == this.dropdownActionList.length) { + this.newStatement.Action.push("s3:*"); + } + else { + for (var i = 0; i < this.selectedActions.length; i++) { + this.newStatement.Action.push(this.selectedActions[i].itemName); + } + } } else { - for (var i = 0; i < this.selectedActions.length; i++) { - this.newStatement.Action.push(this.selectedActions[i].itemName); + if (this.selectedAdmins.length == this.dropdownAdminList.length) { + this.newStatement.Action.push("admin:*"); + } + else { + for (var i = 0; i < this.selectedAdmins.length; i++) { + this.newStatement.Action.push(this.selectedAdmins[i].itemName); + } } } this.newStatement.Effect = this.newPolicy.effect; - // this.newStatement.Resource = "arn:aws:s3:::"+this.newPolicy.bucket console.log(this.newStatement); if (this.newStatement.Condition && Object.entries(this.newStatement.Condition).length === 0 && this.newStatement.Condition.constructor === Object) { console.log("Condition removed cause empty"); @@ -2239,17 +2392,34 @@ let PoliciesComponent = class PoliciesComponent { this.resetPloicyForm(false); } editStatement(i) { + console.log("called Edit Statement"); this.newStatement = this.newPolicyRaw.Statement[i]; this.newPolicy.effect = this.newPolicyRaw.Statement[i].Effect; - if (this.newStatement.Action[0] == "s3:*") { - for (var g = 0; g < this.dropdownActionList.length; g++) { - this.selectedActions.push({ "id": this.dropdownActionList[g].id, "itemName": this.dropdownActionList[g].itemName }); - } - } - else { - for (var g = 0; g < this.newStatement.Action.length; g++) { - this.selectedActions.push({ "id": g, "itemName": this.newStatement.Action[g] }); - } + switch ((this.newStatement.Action[0]).substring(0, 3)) { + case "s3:": + if (this.newStatement.Action[0] == "s3:*") { + for (var g = 0; g < this.dropdownActionList.length; g++) { + this.selectedActions.push({ "id": this.dropdownActionList[g].id, "itemName": this.dropdownActionList[g].itemName }); + } + } + else { + for (var g = 0; g < this.newStatement.Action.length; g++) { + this.selectedActions.push({ "id": g, "itemName": this.newStatement.Action[g] }); + } + } + break; + case "adm": + if (this.newStatement.Action[0] == "admin:*") { + for (var g = 0; g < this.dropdownAdminList.length; g++) { + this.selectedAdmins.push({ "id": this.dropdownAdminList[g].id, "itemName": this.dropdownAdminList[g].itemName }); + } + } + else { + for (var g = 0; g < this.newStatement.Action.length; g++) { + this.selectedAdmins.push({ "id": g, "itemName": this.newStatement.Action[g] }); + } + } + break; } this.newStatement.Action = []; this.newPolicyRaw.Statement.splice(i, 1); @@ -2725,6 +2895,23 @@ let ApiService = class ApiService { form.append('bucketName', bucketName); return this.httpClient.post(this.baseUrl + '/api/v2/bucket/get-policy', form); } + getBucketEncryption(bucketName) { + let form = new FormData(); + form.append('bucketName', bucketName); + return this.httpClient.post(this.baseUrl + '/api/v2/bucket/get-encryption', form); + } + setBucketEncryption(bucketName, encType, encMasterKeyID) { + let form = new FormData(); + form.append('bucketName', bucketName); + form.append('bucketEncryptionType', encType); + form.append('kmsMasterKey', encMasterKeyID); + return this.httpClient.post(this.baseUrl + '/api/v2/bucket/set-encryption', form); + } + removeBucketEncryption(bucketName) { + let form = new FormData(); + form.append('bucketName', bucketName); + return this.httpClient.post(this.baseUrl + '/api/v2/bucket/remove-encryption', form); + } }; ApiService.ctorParameters = () => [ { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpClient"] }, diff --git a/dist/minio-ng/main-es2015.js.map b/dist/minio-ng/main-es2015.js.map index 4d8642f..05735bb 100644 --- a/dist/minio-ng/main-es2015.js.map +++ b/dist/minio-ng/main-es2015.js.map @@ -1 +1 @@ -{"version":3,"sources":["./src/app/loader/loader.component.html","./src/app/loader.service.ts","./src/app/loader.interceptor.ts","./src/app/loader/loader.component.scss","./src/app/groups/groups.component.scss","./src/environments/environment.ts","./src/app/buckets/buckets.component.ts","./src/app/server/server.component.ts","./src/app/groups/groups.component.html","./src/app/app.component.ts","./src/app/server/server.component.scss","./src/app/app.component.html","./src/app/app.module.ts","./src/app/buckets/buckets.component.scss","./src/app/env.service.provider.ts","./src/app/users/users.component.scss","./src/app/groups/groups.component.ts","./src/app/filter.pipe.ts","./src/app/buckets/buckets.component.html","./src/app/loader/loader.component.ts","./src/app/policies/policies.component.html","./src/app/users/users.component.ts","./src/app/policies/policies.component.ts","./src/app/server/server.component.html","./src/app/policies/policies.component.scss","./src/app/env.service.ts","./src/app/users/users.component.html","./src/app/app-routing.module.ts","./src/app/api.service.ts","./src/app/app.component.scss","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["export default \"
\\n\\t
\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t\\t
\\n\\t\\t Loading...\\n\\t\\t
\\n\\t
\\n
\\n\\n
\\n\\t
\\n\\t\\t\\n\\t\\t
\\n\\t\\t
\\n\\t\\tSeems backend unreachable\\n\\t
\\n
\\n\";","//loader.service.ts\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderService {\n public isError = false\n public isLoading = new BehaviorSubject(false);\n constructor() { }\n}\n","// loader.interceptors.ts\nimport { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse,\n HttpResponse,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { LoaderService } from './loader.service';\n\n@Injectable()\nexport class LoaderInterceptor implements HttpInterceptor {\n private requests: HttpRequest[] = [];\n\n constructor(private loaderService: LoaderService) { }\n\n removeRequest(req: HttpRequest) {\n const i = this.requests.indexOf(req);\n if (i >= 0) {\n this.requests.splice(i, 1);\n }\n this.loaderService.isLoading.next(this.requests.length > 0);\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n req = req.clone({\n withCredentials: true\n });\n this.requests.push(req);\n this.loaderService.isLoading.next(true);\n this.loaderService.isError = false;\n return Observable.create(observer => {\n const subscription = next.handle(req)\n .subscribe(\n event => {\n if (event instanceof HttpResponse) {\n this.removeRequest(req);\n observer.next(event);\n }\n },\n err => {\n this.loaderService.isError = true;\n this.removeRequest(req);\n observer.error(err);\n },\n () => {\n this.removeRequest(req);\n observer.complete();\n });\n // remove request from queue when cancelled\n return () => {\n this.removeRequest(req);\n subscription.unsubscribe();\n };\n });\n }\n}\n","export default \"dialog {\\n width: 300px;\\n}\\n\\ndialog::-webkit-backdrop {\\n background: rgba(0, 0, 0, 0.7);\\n}\\n\\ndialog::backdrop {\\n background: rgba(0, 0, 0, 0.7);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xvYWRlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFlBQUE7QUFDSjs7QUFDRztFQUNDLDhCQUFBO0FBRUo7O0FBSEc7RUFDQyw4QkFBQTtBQUVKIiwiZmlsZSI6ImxvYWRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImRpYWxvZyB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgfVxuICAgZGlhbG9nOjpiYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjcpO1xuICAgfSJdfQ== */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJncm91cHMuY29tcG9uZW50LnNjc3MifQ== */\";","export const environment = {\n production: false\n};\n","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n\n@Component({\n selector: 'app-buckets',\n templateUrl: './buckets.component.html',\n styleUrls: ['./buckets.component.scss']\n})\nexport class BucketsComponent implements OnInit, AfterViewInit {\n math = Math;\n objectKeys = Object.keys;\n isNaN: Function = Number.isNaN;\n buckets = {};\n bucketToDelete;\n bucketToRemoveNotifications;\n bucketToRemoveQuota;\n editBucketName;\n newBucketName = \"\";\n uiShowQuota = false;\n newBucketQuotaType = \"\";\n newBucketQuota = \"\";\n quotaTypes = [\"fifo\", \"hard\"]\n serviceInfo;\n diskUsageInfo;\n newBucketEventARN = \"\";\n updateBucketEventARN = \"\";\n updateBucketEventFilterPrefix = \"\";\n updateBucketEventFilterSuffix = \"\";\n updateBucketQuotaObj = {};\n updateQuotaTypeChanged = false;\n updateQuotaChanged = false;\n\n newBucketPolicy = \"none\";\n // updateBucketPolicy = \"none\"\n policyTypes = [\"none\", \"upload\", \"download\", \"public\", \"custom\"]\n updatePolicyTypeChanged = false;\n uploadPolicyName;\n uploadPolicyFile;\n uploadPolicyFileName;\n\n dropdownEventTypesList = [];\n selectedEventTypes = [];\n dropdownEventTypesSettings = {};\n newBucketEventFilterPrefix = \"\";\n newBucketEventFilterSuffix = \"\";\n newBucketTagName = \"\";\n newBucketTagValue = \"\";\n newBucketTagsList = {};\n\n tagListChanged = false;\n\n uploadLifecycleName;\n uploadLifecycleFile;\n uploadLifecycleFileName;\n lifecycleBucketName;\n downloadJsonHref;\n downloadLifecycleAvailable = 0;\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService, private sanitizer: DomSanitizer) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n }\n\n @ViewChild('uploadLifecycleFile', { static: true })\n uploadFileInput: any;\n\n ngOnInit() {\n \tthis.getBuckets()\n this.getServerInfo()\n this.getDiskInfo()\n\n this.dropdownEventTypesList = [\n\t {\"id\":1,\"itemName\":\"put\"},\n\t {\"id\":2,\"itemName\":\"get\"},\n\t {\"id\":3,\"itemName\":\"delete\"},\n ];\n\n this.dropdownEventTypesSettings = {\n \t\tsingleSelection: false,\n \t\ttext:\"Select Event Types\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true,\n classes: \"dropdownFix\"\n\t };\n }\n\n //condition select actions\n onEventTypesItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedEventTypes);\n\t}\n\tonEventTypesItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedEventTypes);\n\t}\n\tonEventTypesSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonEventTypesDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n private toggleShowQuota(){\n (this.uiShowQuota) ? this.uiShowQuota = false : this.uiShowQuota = true;\n }\n\n // private toggleUpdateShowQuota(){\n // (this.updateUiShowQuota) ? this.updateUiShowQuota = false : this.updateUiShowQuota = true;\n // }\n\n private getServerInfo(){\n this.apiService.serverInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.serviceInfo = data;\n });\n }\n\n private getDiskInfo(){\n \tthis.apiService.diskInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.diskUsageInfo = data;\n });\n }\n\n private searchItems() {\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.buckets = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.buckets = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n private getBuckets(){\n \tthis.apiService.getBucketsExtended().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"BUCKETS >>>>>>\",data);\n if(data!==null){\n this.buckets = data;\n }else{\n this.buckets = {};\n }\n this.mdbTable.setDataSource(this.buckets);\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n private deleteBucketPrepare(bucketName){\n \tthis.bucketToDelete = bucketName;\n }\n\n private removeBucketNotificationPrepare(bucketName){\n \tthis.bucketToRemoveNotifications = bucketName;\n }\n\n private updateBucketPrepare(bucketName, currentQuota, currentQtype, currentTags){\n this.editBucketName = bucketName;\n\n this.apiService.getBucketTag(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n\n var dataKeys = Object.keys(data);\n console.log(dataKeys[0]);\n if(dataKeys[0]!=\"error\"){\n this.newBucketTagsList = data;\n }\n });\n\n this.apiService.getBucketQuota(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n\n var dataKeys = Object.keys(data);\n console.log(dataKeys[0]);\n if(dataKeys[0]!=\"error\"){\n this.updateBucketQuotaObj = data;\n }else{\n var emptyData = {\n quotatype: \"\"\n };\n this.updateBucketQuotaObj = emptyData;\n }\n });\n\n this.apiService.getBucketPolicy(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n this.newBucketPolicy = data[\"name\"];\n });\n }\n\n private deleteBucketQuotaPrepare(bucketName){\n this.bucketToRemoveQuota = bucketName;\n }\n\n private updateQuotaType(){\n this.updateQuotaTypeChanged = true;\n }\n\n private updatePolicyType(){\n this.updatePolicyTypeChanged = true;\n }\n\n private updateQuota(){\n this.updateQuotaChanged = true;\n }\n\n private deleteBucket(){\n \tthis.apiService.deleteBucket(this.bucketToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Bucket has been deleted', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while deleting bucket');\n }\n this.getBuckets();\n });\n }\n\n private resetForm(){\n \tthis.newBucketName = \"\";\n this.newBucketEventARN = \"\";\n this.newBucketEventFilterPrefix = \"\";\n this.newBucketEventFilterSuffix = \"\";\n this.selectedEventTypes = [];\n this.newBucketQuotaType = \"\";\n this.newBucketPolicy = \"none\";\n this.newBucketQuota = \"\";\n this.newBucketTagName = \"\";\n this.newBucketTagValue = \"\";\n this.newBucketTagsList = {};\n this.updatePolicyTypeChanged = false;\n this.tagListChanged = false;\n this.resetUploadForm();\n }\n\n private resetUpdateForm() {\n this.updateBucketEventARN = \"\";\n this.selectedEventTypes = [];\n this.updateBucketEventFilterPrefix = \"\";\n this.updateBucketEventFilterSuffix = \"\";\n this.updateBucketQuotaObj = {};\n this.updateQuotaTypeChanged = false;\n this.updateQuotaChanged = false;\n this.tagListChanged = false;\n this.updatePolicyTypeChanged = false;\n this.resetUploadForm();\n }\n\n private filePolicyChanged(e) {\n console.log(\"file event\");\n\n this.uploadPolicyFile = e.target.files[0];\n this.uploadPolicyFileName = e.target.files[0].name;\n }\n\n private resetUploadForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadPolicyFile;\n this.uploadPolicyName = \"\";\n this.uploadPolicyFileName = \"\";\n }\n\n private setPolicy(bucketName, updateListAfter){\n if(this.newBucketPolicy!=\"custom\"){\n this.apiService.setBucketPolicy(bucketName, this.newBucketPolicy).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newBucketPolicy+' has been append to '+bucketName, 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n });\n } else {\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n console.log(\"Policy>>>>\",fileReader.result);\n\n let policyFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n console.log(\"Policy2>>>>\",policyFileString);\n this.apiService.setBucketPolicy(bucketName, policyFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy custom has been append to '+bucketName, 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n });\n\n }\n fileReader.readAsText(this.uploadPolicyFile);\n }\n }\n\n\n private createBucket(){\n \tif(this.newBucketName.indexOf(',')>-1){\n \t\tvar bucketsArr = this.newBucketName.split(',')\n \t\tfor (var i = 0; i < bucketsArr.length; i++) {\n \t\t\tif(bucketsArr[i]!=''){\n \t\t\t\tthis.createBucketSimple(bucketsArr[i],this.newBucketEventARN,this.newBucketQuotaType,this.newBucketQuota,this.newBucketPolicy,bucketsArr.length,i+1)\n \t\t\t}\n \t\t}\n \t}else{\n \t\tthis.createBucketSimple(this.newBucketName,this.newBucketEventARN,this.newBucketQuotaType,this.newBucketQuota,this.newBucketPolicy,1,1)\n \t}\n }\n\n private bucketLifecycle(bucket){\n this.lifecycleBucketName = bucket;\n }\n\n private createFormAddTag() {\n if(this.newBucketTagName != \"\" && this.newBucketTagValue != \"\"){\n this.newBucketTagsList[this.newBucketTagName] = this.newBucketTagValue;\n this.newBucketTagName = \"\";\n this.newBucketTagValue = \"\";\n this.tagListChanged = true;\n }\n }\n\n private createFormRemoveTag(tagName) {\n delete this.newBucketTagsList[tagName];\n this.tagListChanged = true;\n }\n\n private updateBucket(quotaType, quotaVal) {\n if(this.updateBucketEventARN != \"\"){\n this.enableNotificationForBucket(this.editBucketName, this.updateBucketEventARN, this.selectedEventTypes, this.updateBucketEventFilterPrefix, this.updateBucketEventFilterSuffix, true)\n }\n\n if(this.tagListChanged){\n this.setTagsForBucket(this.editBucketName,true)\n }\n\n if(this.updateQuotaTypeChanged || this.updateQuotaChanged){\n this.setQuotaForBucket(this.editBucketName, quotaType, quotaVal, true)\n }\n if(this.updatePolicyTypeChanged){\n this.setPolicy(this.editBucketName, true)\n }\n }\n\n private enableNotificationForBucket(bucket, stsARN, eventTypes, filterPrefix, filterSuffix, updateListAfter){\n var eventTypesArr = []\n for (var i = 0; i < eventTypes.length; i++) {\n eventTypesArr.push(eventTypes[i].itemName)\n }\n this.apiService.enableNotificationForBucket(bucket, stsARN, eventTypesArr.join(','), filterPrefix, filterSuffix).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Events for bucket: '+bucket+' has been enabled', 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while enabling events for bucket'+bucket );\n }\n });\n }\n\n private setQuotaForBucket(bucket, quotaType, quotaVal, reloadBucketList){\n this.apiService.setBucketQuota(bucket, quotaType, quotaVal).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Quota for bucket '+bucket+' has been set', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while set quota for bucket');\n }\n if(reloadBucketList){\n this.getBuckets();\n }\n });\n }\n\n private removeBucketEvents(){\n var bucket = this.bucketToRemoveNotifications;\n this.apiService.removeBucketEvents(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Events for bucket '+bucket+' has been removed', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while removing bucket events');\n }\n this.getBuckets();\n });\n }\n\n private removeBucketQuota(){\n var bucket = this.bucketToRemoveQuota;\n this.apiService.removeBucketQuota(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Quota for bucket '+bucket+' has been removed', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while removing bucket quota');\n }\n this.getBuckets();\n });\n }\n\n private createBucketSimple(bucket, eventARN, quotaType, quotaVal, policy, numberOfBuckets, currentBucketNumber){\n \tthis.apiService.createBucket(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Bucket: '+bucket+' has been created', 'Success');\n if(eventARN != \"\"){\n this.enableNotificationForBucket(bucket, eventARN, this.selectedEventTypes, this.newBucketEventFilterPrefix, this.newBucketEventFilterSuffix, false);\n }\n if(quotaType != \"\" && quotaVal != \"\" && quotaVal >= 0){\n this.setQuotaForBucket(bucket, quotaType, quotaVal, false);\n }\n if(Object.keys(this.newBucketTagsList).length > 0){\n this.setTagsForBucket(bucket, false)\n }\n if(this.updatePolicyTypeChanged){\n this.setPolicy(bucket, false)\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating bucket');\n }\n if(numberOfBuckets == currentBucketNumber){\n setTimeout(()=>{\n this.getBuckets();\n }, 500);\n }\n });\n }\n\n private fileChanged(e) {\n console.log(\"eventTriggered\");\n\n this.uploadLifecycleFile = e.target.files[0];\n this.uploadLifecycleFileName = e.target.files[0].name;\n }\n\n private resetLifecycleForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadLifecycleFile;\n this.uploadLifecycleName = \"\";\n this.uploadLifecycleFileName = \"\";\n this.downloadLifecycleAvailable = 0;\n }\n\n private downloadLifecycle(bucket) {\n this.apiService.getLifecycle(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n // console.log(bucket, data);\n if(data[\"error\"]){\n this.toastr.error(JSON.stringify(data), 'Error while getting lifecycle');\n }else{\n if(data==\"\"){\n // this.toastr.error(\"Bucket has no lifecycle\", 'Error while getting lifecycle');\n }else{\n this.downloadLifecycleAvailable = 1;\n var uri = this.sanitizer.bypassSecurityTrustUrl(\"data:text/xml;charset=UTF-8,\" + encodeURIComponent(data.toString()));\n this.downloadJsonHref = uri;\n }\n }\n });\n }\n\n private uploadLifecycle(){\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n let lifecycleFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n this.apiService.setLifecycle(this.lifecycleBucketName,lifecycleFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Lifecycyle has been uploaded for bucket: '+this.lifecycleBucketName+'', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while uploading lifecycyle');\n }\n });\n }\n fileReader.readAsText(this.uploadLifecycleFile);\n }\n\n private setTagsForBucket(bucket,reloadBucketList){\n var tagsObj = this.newBucketTagsList;\n var tagsKeys = this.objectKeys(tagsObj);\n var tagArr = [];\n for (let i = 0; i < tagsKeys.length; i++) {\n var tagString = tagsKeys[i]+\"=\"+tagsObj[tagsKeys[i]]\n tagArr.push(tagString)\n }\n var tagString = tagArr.join(\"&\");\n console.log(\"TAG STRING >>>>\", tagString)\n this.apiService.setBucketTag(bucket, tagString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Tags for bucket '+bucket+' has been set', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while set tags for bucket');\n }\n if(reloadBucketList){\n this.getBuckets();\n }\n });\n }\n\n private downloadPolicy(bucket,fileName) {\n this.apiService.getBucketPolicy(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"download policy >>> \", bucket, data);\n if(data[\"error\"]){\n this.toastr.error(JSON.stringify(data), 'Error while getting policy');\n }else{\n if(data==\"\"){\n this.toastr.error(\"Bucket has no policy\", 'Error while getting policy');\n }else{\n var link = document.createElement('a');\n link.href = \"data:text/json;charset=UTF-8,\" + encodeURIComponent(data[\"policy\"].toString());\n link.download = fileName\n link.click();\n }\n }\n });\n }\n\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ApiService } from '../api.service';\n\n@Component({\n selector: 'app-server',\n templateUrl: './server.component.html',\n styleUrls: ['./server.component.scss']\n})\nexport class ServerComponent implements OnInit {\n\n objectKeys = Object.keys;\n objectValues = Object.values;\n math = Math;\n rawView = '';\n serviceInfo;\n diskUsageInfo;\n bucketSizes=[];\n hgChartDatasets=[{data: [], label: 'Number of objects'}];\n hgChartLabels=[];\n hgChartType = 'radar';\n hgChartColors = [\n {\n backgroundColor: 'rgba(151,187,205,0.9)',\n borderColor: 'rgba(151,187,205,1)',\n borderWidth: 2,\n pointBackgroundColor: 'rgba(151,187,205,1)',\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: 'rgba(151,187,205,1)'\n }\n ];\n hgChartOptions = {\n responsive: true\n };\n\n szChartDatasets=[{data: [], label: 'Size of bucket in Bytes'}];\n szChartLabels=[];\n szChartType = 'bar';\n szChartColors = [\n {\n backgroundColor: 'rgba(151,187,205,0.9)',\n borderColor: 'rgba(151,187,205,1)',\n borderWidth: 2,\n pointBackgroundColor: 'rgba(151,187,205,1)',\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: 'rgba(151,187,205,1)'\n }\n ];\n szChartOptions = {\n responsive: true\n };\n\n constructor(private apiService: ApiService) { }\n\n ngOnInit() {\n \tthis.serverInfo()\n this.diskInfo()\n }\n\n public hgChartClicked(e: any): void {\n }\n\n public hgChartHovered(e: any): void {\n }\n\n public szChartClicked(e: any): void {\n }\n\n public szChartHovered(e: any): void {\n }\n\n private serverInfo(){\n \tthis.apiService.serverInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.serviceInfo = data;\n });\n }\n\n private diskInfo(){\n \tthis.apiService.diskInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"Disk Usage >>>>>>>>>>>>\",data);\n this.diskUsageInfo = data;\n if(data.hasOwnProperty('objectsSizesHistogram')){\n var objectsSizesHistogram = this.diskUsageInfo.objectsSizesHistogram;\n var histogramKeysRawArr = [];\n var histogramValsRawArr = [];\n if(objectsSizesHistogram){\n histogramKeysRawArr = Object.keys(objectsSizesHistogram)\n histogramValsRawArr = Object.values(objectsSizesHistogram)\n }\n this.hgChartDatasets[0].data = histogramValsRawArr;\n\n this.hgChartLabels = [];\n for (let i = 0; i < histogramKeysRawArr.length; i++) {\n var histogramLabel = histogramKeysRawArr[i].split('_').join(' ');\n this.hgChartLabels.push(histogramLabel)\n }\n }\n\n if(data.hasOwnProperty('bucketsSizes') && this.diskUsageInfo.bucketsSizes != {} && this.diskUsageInfo.bucketsSizes != null ){\n var objectBucketSizes = this.diskUsageInfo.bucketsSizes;\n const bucketSizesKeysRawArr = Object.keys(objectBucketSizes)\n const bucketSizesValsRawArr = Object.values(objectBucketSizes)\n this.szChartDatasets[0].data = bucketSizesValsRawArr;\n this.szChartLabels= bucketSizesKeysRawArr;\n }\n });\n }\n\n private rawPrepare(obj){\n this.rawView = obj;\n }\n\n}\n","export default \"
\\n
\\n
\\n

Groups

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\t\\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\t \\n\\t \\n\\t \\n \\n \\n \\n \\n \\n\\t
NamePolicyStatusMembersOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].name}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].policy}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].status}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n
    \\n
  • {{member}}
  • \\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t \\t \\t\\n\\t \\t \\t\\n\\t \\t \\t 0\\\" mdbTooltip=\\\"You can delete only groups whit no memebers\\\" placement=\\\"top\\\">\\n\\t \\t
\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

{{modalCreateEditTitle}}

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t \\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t \\n \\t\\t\\t\\t
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Group

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button group {{groupToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Policy

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\";","import { Component, OnInit } from '@angular/core';\nimport { ApiService } from './api.service';\nimport { environment } from './../environments/environment';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit {\n title = 'Adminio-UI';\n\n constructor(private apiService: ApiService) { }\n\n ngOnInit() {\n \tthis.checkAuthStatus()\n }\n\n private checkAuthStatus(){\n this.apiService.checkAuthStatus().subscribe((data)=>{\n console.log(\"DATA AUTH>>>\", data);\n this.apiService.validateAuthInResponse(data)\n });\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzZXJ2ZXIuY29tcG9uZW50LnNjc3MifQ== */\";","export default \"\\n\\n\\n\\n \\n Adminio UI \\n\\n \\n \\n\\n \\n \\n \\n \\n
\\n \\n \\n\\t\\t\\t\\t\\t\\n
\\n
\\n \\n\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\";","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { MDBBootstrapModule } from 'angular-bootstrap-md';\nimport { UsersComponent } from './users/users.component';\nimport { FormsModule, FormControl, FormGroup, Validators, ReactiveFormsModule} from \"@angular/forms\";\nimport { ServerComponent } from './server/server.component';\nimport { FilterPipe } from './filter.pipe';\nimport { PoliciesComponent } from './policies/policies.component';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { AngularMultiSelectModule } from 'angular2-multiselect-dropdown';\nimport { LoaderComponent } from './loader/loader.component';\nimport { LoaderService } from './loader.service';\nimport { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';\nimport { LoaderInterceptor } from './loader.interceptor';\nimport { BucketsComponent } from './buckets/buckets.component';\nimport { CommonModule } from '@angular/common';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ToastrModule } from 'ngx-toastr';\nimport { GroupsComponent } from './groups/groups.component';\nimport { EnvServiceProvider } from './env.service.provider';\n\n\n\n@NgModule({\n declarations: [\n AppComponent,\n UsersComponent,\n ServerComponent,\n FilterPipe,\n PoliciesComponent,\n LoaderComponent,\n BucketsComponent,\n GroupsComponent,\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n MDBBootstrapModule.forRoot(),\n HttpClientModule,\n ReactiveFormsModule,\n NgxJsonViewerModule,\n AngularMultiSelectModule,\n FormsModule,\n CommonModule,\n BrowserAnimationsModule,\n ToastrModule.forRoot()\n ],\n providers: [\n EnvServiceProvider,\n LoaderService,\n { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJidWNrZXRzLmNvbXBvbmVudC5zY3NzIn0= */\";","import { EnvService } from './env.service';\n\nexport const EnvServiceFactory = () => {\n // Create env\n const env = new EnvService();\n\n // Read environment variables from browser window\n const browserWindow = window || {};\n const browserWindowEnv = browserWindow['__env'] || {};\n\n // Assign environment variables from browser window to env\n // In the current implementation, properties from env.js overwrite defaults from the EnvService.\n // If needed, a deep merge can be performed here to merge properties instead of overwriting them.\n for (const key in browserWindowEnv) {\n if (browserWindowEnv.hasOwnProperty(key)) {\n env[key] = window['__env'][key];\n }\n }\n\n return env;\n};\n\nexport const EnvServiceProvider = {\n provide: EnvService,\n useFactory: EnvServiceFactory,\n deps: [],\n};\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ1c2Vycy5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n@Component({\n\tselector: 'app-groups',\n\ttemplateUrl: './groups.component.html',\n\tstyleUrls: ['./groups.component.scss']\n})\n\nexport class GroupsComponent implements OnInit, AfterViewInit {\n\tobjectKeys = Object.keys;\n\tjsn = JSON;\n\tgroups = {};\n\tgroupsWithMembers = [];\n\tusers = {};\n\trawPolicies = {};\n\tgroupToUpdate = {};\n\tnewGroupName = \"\";\n\tnewGroupPolicy = \"\";\n\tnewGroupStatus = \"\";\n\tpolicies;\n\tupdateStatusValues = ['enabled','disabled'];\n\tmodalCreateEditTitle;\n\tmodalCreateEditButtonText;\n\tmodalEditMode = false;\n\trawView = \"\";\n\tusersToRemove = [];\n\tgroupToDelete = \"\";\n\n\n\n\tdropdownList = [];\n\tselectedItems = [];\n\tdropdownSettings = {};\n\n\n\n\t@ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n\t@ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n\n\tprevious: string;\n\tsearchText: string = '';\n\n \tconstructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService) { }\n\n \t@HostListener('input') oninput() {\n\t\tif(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n\t\t this.searchItems();\n\t\t}\n\t\tif(event && event['target'] !== undefined && event.target[\"name\"] !== undefined && event.target[\"name\"] == \"newGroupName\"){\n\t if(this.modalEditMode){\n\t if(this.newGroupName == this.groupToUpdate[\"name\"]){\n\t console.log('hit')\n\t this.isEditMode(true)\n\t }else{\n\t this.isNowCopyMode();\n\t }\n\t }\n\t }\n\t}\n\n\tngOnInit() {\n\t\tthis.getGroups()\n\t\tthis.getListOfUsers()\n\t\tthis.getListOfPolicies()\n\t\tthis.isEditMode(false)\n\n\t\tthis.dropdownList = [\n\t\t {\"id\":1,\"itemName\":\"wait! i'm getting policies ASAP\"}\n\t ];\n\n\t this.dropdownSettings = {\n\t\t\tsingleSelection: false,\n\t\t\ttext:\"Select Members\",\n\t\t\tselectAllText:'Select All',\n\t\t\tunSelectAllText:'UnSelect All',\n\t\t\tenableSearchFilter: true\n\t\t};\n\t}\n\n\tonItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedItems);\n\t}\n\tOnItemDeSelect(item:any){\n\t\tthis.usersToRemove.push(item[\"itemName\"])\n\t console.log(item);\n\t console.log(this.selectedItems);\n\t}\n\tonSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonDeSelectAll(items: any){\n\n\t\t\tfor (let i = 0; i < this.selectedItems.length; i++) {\n\t\t\t\tthis.usersToRemove.push(this.selectedItems[i][\"itemName\"])\n\t\t\t}\n\n\t this.selectedItems = [];\n\t}\n\n\tprivate searchItems() {\n\t\tconst prev = this.mdbTable.getDataSource();\n\n\t\tif (!this.searchText) {\n\t\t this.mdbTable.setDataSource(this.previous);\n\t\t this.groups = this.mdbTable.getDataSource();\n\t\t}\n\n\t\tif (this.searchText) {\n\t\t this.groups = this.mdbTable.searchLocalDataBy(this.searchText);\n\t\t this.mdbTable.setDataSource(prev);\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n\t this.mdbTablePagination.calculateFirstItemIndex();\n\t this.mdbTablePagination.calculateLastItemIndex();\n\t this.cdRef.detectChanges();\n\t}\n\n\tprivate isEditMode(state){\n\t\tthis.modalEditMode = state;\n\t\tif(state){\n\t\t this.modalCreateEditTitle = \"Edit group\"\n\t\t this.modalCreateEditButtonText = \"Update\"\n\t\t}else{\n\t\t this.modalCreateEditTitle = \"Create group\"\n\t\t this.modalCreateEditButtonText = \"Create\"\n\t\t}\n\t}\n\n\tprivate isNowCopyMode(){\n\t\tthis.modalCreateEditTitle = \"Copy group\"\n\t\tthis.modalCreateEditButtonText = \"Copy\"\n\t}\n\n\tprivate commaToBr(arr) {\n\t\t// console.log(arr)\n\t var str = arr.join('\\n\\r');\n\t return str;\n\t}\n\n\tpublic b64unpack(str){\n\t// console.log(JSON.parse(atob(str)))\n\t\treturn JSON.parse(atob(str));\n\t}\n\n\tprivate rawPrepare(str){\n\t\tconsole.log(this.rawPolicies[str])\n\t\tthis.rawView = this.b64unpack(this.rawPolicies[str]);\n\t}\n\n\n\tprivate getGroups(){\n\t\tthis.groups = {};\n\t\tthis.groupsWithMembers = [];\n\t\tthis.previous = \"\";\n\t\tthis.apiService.getGroups().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t console.log(data);\n\t\t if(data!==null){\n\t\t this.groups = data;\n\t\t for (var i = 0; i < this.objectKeys(data).length; i++) {\n\t\t\t\t\tlet tempGroupName = data[i]\n\t\t\t\t\tthis.apiService.getGroupDescription(tempGroupName).subscribe((data)=>{\n\t\t\t\t\t\tif(data!==null){\n\t\t\t\t\t\t\tthis.groupsWithMembers.push(data)\n\t\t\t\t\t\t\tthis.mdbTable.setDataSource(this.groupsWithMembers);\n\t\t \t\t\t\t\tthis.previous = this.mdbTable.getDataSource();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\tconsole.log(this.groupsWithMembers)\n\t\t\tthis.groups = this.groupsWithMembers;\n\t\t }\n\n\n\t\t});\n\t}\n\tprivate getListOfUsers(){\n\t\tthis.apiService.getUsers().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t\tif(data!==null){\n\t\t\t\tthis.dropdownList = Object.entries(data).map((e) => ( { \"id\":e[0],\"itemName\":e[0] } ));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getGroupDescription(group){\n\t\tthis.isEditMode(true);\n\t\tconsole.log(group)\n\t\tthis.apiService.getGroupDescription(group).subscribe((data)=>{\n\t\t\tif(data!==null){\n\t\t\t\tconsole.log(data)\n\t\t\t\tthis.groupToUpdate = data;\n\t\t\t\tthis.newGroupName = data[\"name\"]\n\t\t\t\tthis.newGroupPolicy = data[\"policy\"]\n\t\t\t\tthis.newGroupStatus = data[\"status\"]\n\t\t\t\tfor (var i = 0; i < data[\"members\"].length; i++) {\n\t\t\t\t\tvar tempMember = data[\"members\"][i];\n\t\t\t\t\tthis.selectedItems.push({\"id\":tempMember,\"itemName\":tempMember})\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getListOfPolicies(){\n\t\tthis.apiService.getPolicies().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t this.policies = Object.keys(data);\n\t\t this.rawPolicies = data;\n\t\t});\n\t}\n\n\tprivate resetForm(){\n\t\tthis.newGroupName = \"\";\n\t\tthis.selectedItems = [];\n\t\tthis.newGroupPolicy = \"\";\n\t\tthis.newGroupStatus = \"\";\n\t}\n\n\tprivate markGroupToDelete(group){\n\t\tconsole.log(\"GROUP TO DELETE\", group);\n\n\t\tthis.groupToDelete = group\n\t}\n\n\tprivate deleteGroup(){\n\t\tconsole.log(\"GROUP TO DELETE >>>\", this.groupToDelete);\n\n\t\tthis.apiService.updateMembersGroup(this.groupToDelete,[],\"true\").subscribe((data)=>{\n\t\t\t this.apiService.validateAuthInResponse(data)\n\t if(data[\"Success\"]){\n\t this.toastr.success('Group: '+this.newGroupName+' has been removed', 'Success');\n\t this.usersToRemove = [];\n\t\t\t\t\tthis.refreshList();\n\t\t\t\t\tthis.groupToDelete = \"\";\n\t }else{\n\t this.toastr.error(JSON.stringify(data), 'Error while removing group');\n\t\t\t\t\tthis.refreshList();\n\t\t\t\t\tthis.groupToDelete = \"\";\n\t }\n\t });\n\t}\n\n\tprivate wipeGroupMembers(){\n\n\t\tthis.apiService.updateMembersGroup(this.newGroupName,this.usersToRemove,\"true\").subscribe((data)=>{\n\t\t\t this.apiService.validateAuthInResponse(data)\n\t if(data[\"Success\"]){\n\t this.toastr.success('Group: '+this.newGroupName+' members has been removed', 'Success');\n\t this.usersToRemove = [];\n\t }else{\n\t this.toastr.error(JSON.stringify(data), 'Error while removing members from group');\n\t }\n\t });\n\t}\n\n\tprivate updatePolicy(){\n\t\tif(this.newGroupPolicy !== null && this.newGroupPolicy != \"\"){\n\t \tthis.apiService.setPolicy(this.newGroupPolicy,this.newGroupName,\"true\").subscribe((data)=>{\n\t\t\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' policy has been set to '+this.newGroupPolicy, 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while setting policy to group');\n\t\t }\n\t\t });\n\t }\n\t}\n\n\tprivate updateStatus(){\n\t\tif(this.newGroupStatus !== null && this.newGroupStatus != \"\"){\n\t \tthis.apiService.setStatusGroup(this.newGroupName,this.newGroupStatus).subscribe((data)=>{\n\t\t\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' status has been set to '+this.newGroupStatus, 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while setting status to group');\n\t\t }\n\t\t });\n\t }\n\t}\n\n\tprivate refreshList(){\n\t\tthis.updatePolicy();\n\t\tthis.updateStatus();\n\t\tthis.getGroups();\n\t}\n\n\tprivate createGroup(){\n\t\tconsole.log(\"CREATE GROUP CALLED\")\n\t\tlet newMembers = []\n\t\tfor (var i = 0; i < this.selectedItems.length; i++) {\n\t\t\tnewMembers.push(this.selectedItems[i].itemName)\n\t\t}\n\n\t\t//remove users from group\n\t\tconsole.log(\"grouptoUpdate\",this.groupToUpdate);\n\n\t\tif(this.groupToUpdate!==null && this.groupToUpdate!=\"\" && this.groupToUpdate){\n\t\t\tif(this.usersToRemove.length > 0){\n\t\t\t\tthis.wipeGroupMembers()\n\t\t\t}\n\t\t}\n\n\t\t//add all new users to group\n\t\tif(newMembers.length > 0){\n\t\t\tthis.apiService.updateMembersGroup(this.newGroupName,newMembers,\"false\").subscribe((data)=>{\n\t\t\t\t this.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' has been created', 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while creating group');\n\t\t }\n\t\t this.refreshList();\n\t\t });\n\t\t}else{\n\t\t\tthis.refreshList();\n\t\t}\n this.isEditMode(false);\n this.groupToUpdate = {};\n\t}\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(items: any[], searchPolicy: string): any[] {\n\n if (!items) {\n return [];\n }\n if (!searchPolicy) {\n return items;\n }\n searchPolicy = searchPolicy.toLocaleLowerCase();\n\n return items.filter(it => {\n return it.toLocaleLowerCase().includes(searchPolicy);\n });\n }\n\n}\n","export default \"
\\n
\\n
\\n

Buckets

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\t\\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n \\n\\t \\n\\t \\t \\n\\t \\n\\t \\n \\n \\n \\n \\n \\n\\t
NameTagsCreation DateSizeQuotaEventOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n {{buckets[b].name}}\\n {{buckets[b].policy}}\\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n 0\\\">\\n
    \\n
  • {{tag}}: {{buckets[b].tags[tag]}}
  • \\n
\\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{buckets[b].info.creationDate | date : \\\"dd/MM/yy HH:mm:ss\\\" }}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\\\">\\n \\n {{(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)+'').length > 3 ? math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024/1024)+' Gb' : isNaN(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)) ? '–' : math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024) +' Mb'}}\\n \\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\\\">\\n \\n {{buckets[b].quota?.quotatype}}\\n {{buckets[b].quota?.quotatype}}\\n \\n 0\\\" mdbTooltip=\\\"{{buckets[b].quota?.quota}} bytes\\\" placement=\\\"top\\\">\\n {{(math.round(buckets[b].quota?.quota/1024/1024)+'').length > 3 ? math.round(buckets[b].quota?.quota/1024/1024/1024)+' Gb' : isNaN(math.round(buckets[b].quota?.quota/1024/1024)) ? '–' : math.round(buckets[b].quota?.quota/1024/1024) +' Mb'}}\\n \\n \\n ∞\\n \\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && serviceInfo?.sqsARN\\\">\\n \\n Lambda:\\n \\n {{c.Lambda}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n \\n Topic:\\n \\n {{c.Topic}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n \\n Queue:\\n \\n {{c.Queue}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t \\t \\t \\n\\t \\t \\t \\n\\t \\t \\t \\n\\t \\t \\t \\n \\n\\t \\t
\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Bucket Lifecycyle

\\n
\\n
\\n
\\n
\\n
\\n This bucket already have a lifecycyle policy, you can dowload it by clicking on \\\"dowload icon\\\" >\\n \\n
\\n Or override it by upload a new lifecycle policy.\\n
\\n
\\n Lifecycle policy is structrured xml file. You can use examples from Minio\\n documentation. Or use an AWS S3 documentation\\n Object Lifecycle Management\\n
\\n
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button bucket {{bucketToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket Notifications

\\n
\\n
\\n Are you shure?
After you click on \\\"remove\\\" button bucket {{bucketToDelete}} notifications will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket Quota Limits

\\n
\\n
\\n Are you shure?
After you click on \\\"remove\\\" button quota for bucket {{bucketToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Create Bucket

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n You can pass multiple names with \\\",\\\" delimiter\\n
\\n
Policy
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
Tags
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\t\\t\\t\\t
\\n
\\n {{tag}}: {{newBucketTagsList[tag]}}\\n
\\n
Quota
\\n \\n\\n
\\n \\n \\t\\t\\t\\t\\t\\t\\t
\\n\\n
\\n \\n In \\\"fifo\\\" mode - old data automatically will be removed when you reach quota limit.
\\n In \\\"hard\\\" mode - you can't add new data to bucket if quota limit reached.\\n
\\n\\n
\\n \\t\\t\\t\\t\\t\\n
\\n
Bytes
\\n
\\n
\\n
\\n
\\n
Events section
\\n

\\n
\\n \\t\\t\\t\\t\\t\\t\\t\\t\\t\\n \\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Update Bucket

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
Policy
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
Tags
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\t\\t\\t\\t
\\n
\\n {{tag}}: {{newBucketTagsList[tag]}}\\n
\\n
\\n
Quota section
\\n \\n
\\n \\n \\t\\t\\t\\t\\t\\t\\t
\\n\\n
\\n \\n In \\\"fifo\\\" mode - old data automatically will be removed when you reach quota limit.
\\n In \\\"hard\\\" mode - you can't add new data to bucket if quota limit reached.\\n
\\n\\n
\\n \\t\\t\\t\\t\\t\\n
\\n
Bytes
\\n
\\n
\\n
\\n
\\n
Events section
\\n

\\n
\\n \\t\\t\\t\\t\\t\\t\\t\\t\\t\\n \\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\";","//loader.interceptor.ts\nimport { Component, OnInit } from '@angular/core';\nimport { LoaderService } from '../loader.service';\n\n@Component({\nselector: 'app-loading',\ntemplateUrl: './loader.component.html',\nstyleUrls: ['./loader.component.scss']\n})\nexport class LoaderComponent implements OnInit {\n\nloading: boolean;\nerror: boolean;\nconstructor(private loaderService: LoaderService) {\n this.loaderService.isLoading.subscribe((v) => {\n this.loading = v;\n this.error = this.loaderService.isError;\n });\n}\nngOnInit() {\n}\n\n}\n","export default \"
\\n\\t
\\n\\t\\t
\\n\\t\\t

Policies

\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t     \\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t
NameActionPrincipalEffectResourceConditionsOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectKeys(policies[pol])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • {{action}}
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t{{policies[pol].Statement.Principal}}\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • {{st.Effect}}
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • {{resource}}
    • \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
          \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t \\n\\t\\t \\t\\t \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Policy

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button policy {{policyToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Upload Policy

\\n
\\n
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Policy

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

{{modalCreateEditTitle}}

\\n
\\n
\\n \\t\\n \\t\\t
\\n\\t\\t\\t\\t\\t
 
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t \\t
\\n In Edit mode you can make a copy of policy - Just rename it!\\n
\\n\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t Principal\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
Buckets section
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t arn:aws:s3:::\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t /\\\" [(ngModel)]=\\\"newPolicy.bucket\\\" aria-label=\\\"Recipient's username\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t aria-describedby=\\\"s3-prefix\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
BucketOptions
{{bst}}
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
Conditions section
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
Condition and options
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}  \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
 
\\n\\t\\t\\t\\t\\t
\\n\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t
EffectActionResourceConditionsOptions
{{st.Effect}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{action}}
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{resource}}
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t  \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n \\n
\\n \\n
\\n
\\n
\\n\";","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { ApiService } from '../api.service';\nimport { FormControl, FormGroup, Validators, ReactiveFormsModule } from \"@angular/forms\";\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n@Component({\n selector: 'app-users',\n templateUrl: './users.component.html',\n styleUrls: ['./users.component.scss']\n})\nexport class UsersComponent implements OnInit, AfterViewInit {\n validatingForm: FormGroup;\n updateUser: FormGroup;\n users = {};\n usersRaw = {};\n userToDelete;\n userToUpdate;\n objectKeys = Object.keys;\n objectValues = Object.values;\n jsn = JSON;\n policies;\n updateStatusValues = ['enabled','disabled'];\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n }\n\n ngOnInit() {\n \tthis.getListOfUsers()\n \tthis.getListOfPolicies()\n this.resetForm()\n this.updateUserFrom()\n }\n\n searchItems() {\n console.log(this.searchText)\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.users = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.users = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n get newUserAccess() {\n\treturn this.validatingForm.get('newUserAccess');\n }\n\n get newUserSecret() {\n\treturn this.validatingForm.get('newUserSecret');\n }\n\n get newUserPolicy() {\n\treturn this.validatingForm.get('newUserPolicy');\n }\n\n private generatePassword(length) {\n var charset = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n var retVal = \"\";\n for (var i = 0, n = charset.length; i < length; ++i) {\n retVal += charset.charAt(Math.floor(Math.random() * n));\n }\n\n return retVal;\n }\n\n get accessKeyUpdate() {\n return this.updateUser.get('accessKeyUpdate');\n }\n\n get secretKeyUpdate() {\n return this.updateUser.get('secretKeyUpdate');\n }\n\n get policyUpdate() {\n return this.updateUser.get('policyUpdate');\n }\n\n get statusUpdate() {\n return this.updateUser.get('statusUpdate');\n }\n\n private updateUserFrom(){\n this.updateUser = new FormGroup({\n accessKeyUpdate: new FormControl({value: '', disabled: true}, Validators.required),\n secretKeyUpdate: new FormControl(''),\n policyUpdate: new FormControl('', Validators.required),\n statusUpdate: new FormControl('', Validators.required)\n });\n }\n\n private resetForm(){\n \tthis.validatingForm = new FormGroup({\n newUserAccess: new FormControl(this.generatePassword(16), Validators.minLength(5)),\n newUserSecret: new FormControl(this.generatePassword(24), Validators.minLength(10)),\n newUserPolicy: new FormControl('',Validators.minLength(0))\n });\n }\n\n private getListOfUsers(){\n \tthis.apiService.getUsers().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data)\n this.usersRaw = data;\n const arrayOfUsers = Object.entries(data).map((e) => ( { [e[0]]: e[1] } ));\n this.users = arrayOfUsers;\n this.mdbTable.setDataSource(arrayOfUsers);\n console.log(arrayOfUsers)\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n\n private getListOfPolicies(){\n \tthis.apiService.getPolicies().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.policies = Object.keys(data);\n });\n }\n\n private createUser(){\n \tvar userAccess = this.newUserAccess.value;\n \tvar userSecret = this.newUserSecret.value;\n \tvar userPolicy = this.newUserPolicy.value;\n\n \tconsole.log(userPolicy)\n\n \tif(userPolicy!=''){\n \t\tthis.apiService.addUserExtended(userAccess,userSecret,userPolicy).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n\t console.log(data);\n\t this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+userAccess+' with policy '+userPolicy+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating user');\n }\n\t });\n \t}else{\n \t\tthis.apiService.addUser(userAccess,userSecret).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n\t console.log(data);\n\t this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+userAccess+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating user');\n }\n\t });\n \t}\n }\n\n private setStatusUser(accessKey,status){\n \tif(status == 'enabled'){\n \t\tstatus = 'disabled'\n \t}else{\n \t\tstatus = 'enabled'\n \t}\n \tthis.apiService.setStatusUser(accessKey,status).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('User: '+accessKey+' status has changed to '+status, 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while changing state for user');\n }\n this.getListOfUsers();\n });\n }\n\n private deleteUserPrepare(accessKey){\n \tthis.userToDelete = accessKey\n }\n\n private updateUserPrepare(accessKey){\n this.userToUpdate = accessKey\n this.updateUser.patchValue({'accessKeyUpdate': accessKey});\n if(this.usersRaw[accessKey]['policyName']){\n this.updateUser.patchValue({'policyUpdate': this.usersRaw[accessKey]['policyName']});\n }\n if(this.usersRaw[accessKey]['status']){\n this.updateUser.patchValue({'statusUpdate': this.usersRaw[accessKey]['status']});\n }\n console.log(this.usersRaw[accessKey])\n }\n\n private updateGenNewPassword(){\n this.updateUser.patchValue({'secretKeyUpdate': this.generatePassword(24)});\n }\n\n private updateUserSave(){\n var updatedSecret = this.updateUser.value.secretKeyUpdate;\n var updatedPolicy = this.updateUser.value.policyUpdate;\n var updatedStatus = this.updateUser.value.statusUpdate;\n\n this.apiService.updateUser(this.userToUpdate,updatedSecret,updatedPolicy,updatedStatus).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+this.userToUpdate+' has been updated', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while updating user');\n }\n });\n }\n\n\n private deleteUser(){\n \tthis.apiService.deleteUser(this.userToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('User: '+this.userToDelete+' has been deleted', 'Success');\n }\n this.updateUserFrom();\n this.getListOfUsers();\n });\n }\n\n}\n","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'app-policies',\n templateUrl: './policies.component.html',\n styleUrls: ['./policies.component.scss']\n})\nexport class PoliciesComponent implements OnInit {\n objectKeys = Object.keys;\n objectValues = Object.values;\n policies = {};\n policiesRaw = {};\n b64decode;\n rawView = '';\n policyToDelete;\n policyToUpdate;\n modalEditMode;\n jsn = JSON;\n uploadPolicyName;\n uploadPolicyFile;\n uploadPolicyFileName;\n downloadJsonHref;\n modalCreateEditTitle;\n modalCreateEditButtonText;\n\n dropdownActionList = [];\n dropdownConditionList = [];\n dropdownConditionKeyList = [];\n\n selectedActions = [];\n selectedCondition = [];\n selectedConditionKey = [];\n\n dropdownActionSettings = {};\n dropdownConditionSettings = {};\n dropdownConditionKeySettings = {};\n\n newPolicy = {\n \tname:\"\",\n \teffect:\"allow\",\n \tbucket:\"\",\n };\n\n newPolicyRaw = {\n \tVersion:\"\",\n \tStatement: []\n }\n\n newStatement = {\n Action: [],\n Effect: \"\",\n Resource: [],\n Condition: {},\n Principal: \"\"\n }\n\n newConditionValue = \"\"\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService, private sanitizer: DomSanitizer) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n if(event && event['target'] !== undefined && event.target[\"name\"] !== undefined && event.target[\"name\"] == \"newPolicyName\"){\n if(this.modalEditMode){\n if(this.newPolicy.name == this.policyToUpdate){\n this.isEditMode(true)\n }else{\n this.isNowCopyMode();\n }\n }\n }\n\n }\n\n @ViewChild('uploadPolicyFile', { static: true })\n uploadFileInput: any;\n\n ngOnInit() {\n \tthis.getPolicies()\n\n\n \tthis.dropdownActionList = [\n {\"id\":1,\"itemName\":\"s3:AbortMultipartUpload\"},\n {\"id\":2,\"itemName\":\"s3:CreateBucket\"},\n {\"id\":3,\"itemName\":\"s3:DeleteBucket\"},\n {\"id\":4,\"itemName\":\"s3:ForceDeleteBucket\"},\n {\"id\":5,\"itemName\":\"s3:DeleteBucketPolicy\"},\n {\"id\":6,\"itemName\":\"s3:DeleteObject\"},\n {\"id\":7,\"itemName\":\"s3:GetBucketLocation\"},\n {\"id\":8,\"itemName\":\"s3:GetBucketNotification\"},\n {\"id\":9,\"itemName\":\"s3:GetBucketPolicy\"},\n {\"id\":10,\"itemName\":\"s3:GetObject\"},\n {\"id\":11,\"itemName\":\"s3:HeadBucket\"},\n {\"id\":12,\"itemName\":\"s3:ListAllMyBuckets\"},\n {\"id\":13,\"itemName\":\"s3:ListBucket\"},\n {\"id\":14,\"itemName\":\"s3:ListBucketVersions\"},\n {\"id\":15,\"itemName\":\"s3:ListBucketMultipartUploads\"},\n {\"id\":16,\"itemName\":\"s3:ListenNotification\"},\n {\"id\":17,\"itemName\":\"s3:ListenBucketNotification\"},\n {\"id\":18,\"itemName\":\"s3:ListMultipartUploadParts\"},\n {\"id\":19,\"itemName\":\"s3:PutLifecycleConfiguration\"},\n {\"id\":20,\"itemName\":\"s3:GetLifecycleConfiguration\"},\n {\"id\":21,\"itemName\":\"s3:PutBucketNotification\"},\n {\"id\":22,\"itemName\":\"s3:PutBucketPolicy\"},\n {\"id\":23,\"itemName\":\"s3:PutObject\"},\n {\"id\":24,\"itemName\":\"s3:DeleteObjectVersion\"},\n {\"id\":25,\"itemName\":\"s3:DeleteObjectVersionTagging\"},\n {\"id\":26,\"itemName\":\"s3:GetObjectVersion\"},\n {\"id\":27,\"itemName\":\"s3:GetObjectVersionTagging\"},\n {\"id\":28,\"itemName\":\"s3:PutObjectVersionTagging\"},\n {\"id\":29,\"itemName\":\"s3:BypassGovernanceRetention\"},\n {\"id\":30,\"itemName\":\"s3:PutObjectRetention\"},\n {\"id\":31,\"itemName\":\"s3:GetObjectRetention\"},\n {\"id\":32,\"itemName\":\"s3:GetObjectLegalHold\"},\n {\"id\":33,\"itemName\":\"s3:PutObjectLegalHold\"},\n {\"id\":34,\"itemName\":\"s3:GetBucketObjectLockConfiguration\"},\n {\"id\":35,\"itemName\":\"s3:PutBucketObjectLockConfiguration\"},\n {\"id\":36,\"itemName\":\"s3:GetBucketTagging\"},\n {\"id\":37,\"itemName\":\"s3:PutBucketTagging\"},\n {\"id\":38,\"itemName\":\"s3:GetObjectTagging\"},\n {\"id\":39,\"itemName\":\"s3:PutObjectTagging\"},\n {\"id\":40,\"itemName\":\"s3:DeleteObjectTagging\"},\n {\"id\":41,\"itemName\":\"s3:PutEncryptionConfiguration\"},\n {\"id\":42,\"itemName\":\"s3:GetEncryptionConfiguration\"},\n {\"id\":43,\"itemName\":\"s3:PutBucketVersioning\"},\n {\"id\":44,\"itemName\":\"s3:GetBucketVersioning\"},\n {\"id\":45,\"itemName\":\"s3:GetReplicationConfiguration\"},\n {\"id\":46,\"itemName\":\"s3:PutReplicationConfiguration\"},\n {\"id\":47,\"itemName\":\"s3:ReplicateObject\"},\n {\"id\":48,\"itemName\":\"s3:ReplicateDelete\"},\n {\"id\":49,\"itemName\":\"s3:ReplicateTags\"},\n {\"id\":50,\"itemName\":\"s3:GetObjectVersionForReplication\"}\n ];\n\n this.dropdownActionSettings = {\n \t\tsingleSelection: false,\n \t\ttext:\"Select Actions\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n\n \tthis.dropdownConditionList = [\n {\"id\":1,\"itemName\":\"ArnEquals\"},\n {\"id\":2,\"itemName\":\"ArnEqualsIfExists\"},\n {\"id\":3,\"itemName\":\"ArnLike\"},\n {\"id\":4,\"itemName\":\"ArnLikeIfExists\"},\n {\"id\":5,\"itemName\":\"ArnNotEquals\"},\n {\"id\":6,\"itemName\":\"ArnNotEqualsIfExists\"},\n {\"id\":7,\"itemName\":\"ArnNotLike\"},\n {\"id\":8,\"itemName\":\"ArnNotLikeIfExists\"},\n {\"id\":9,\"itemName\":\"BinaryEquals\"},\n {\"id\":10,\"itemName\":\"BinaryEqualsIfExists\"},\n {\"id\":11,\"itemName\":\"BinaryNotEquals\"},\n {\"id\":12,\"itemName\":\"BinaryNotEqualsIfExists\"},\n {\"id\":13,\"itemName\":\"Bool\"},\n {\"id\":14,\"itemName\":\"BoolIfExists\"},\n {\"id\":15,\"itemName\":\"DateEquals\"},\n {\"id\":16,\"itemName\":\"DateEqualsIfExists\"},\n {\"id\":17,\"itemName\":\"DateGreaterThan\"},\n {\"id\":18,\"itemName\":\"DateGreaterThanEquals\"},\n {\"id\":19,\"itemName\":\"DateGreaterThanEqualsIfExists\"},\n {\"id\":20,\"itemName\":\"DateGreaterThanIfExists\"},\n {\"id\":21,\"itemName\":\"DateLessThan\"},\n {\"id\":22,\"itemName\":\"DateLessThanEquals\"},\n {\"id\":23,\"itemName\":\"DateLessThanEqualsIfExists\"},\n {\"id\":24,\"itemName\":\"DateLessThanIfExists\"},\n {\"id\":25,\"itemName\":\"DateNotEquals\"},\n {\"id\":26,\"itemName\":\"DateNotEqualsIfExists\"},\n {\"id\":27,\"itemName\":\"IpAddress\"},\n {\"id\":28,\"itemName\":\"IpAddressIfExists\"},\n {\"id\":29,\"itemName\":\"NotIpAddress\"},\n {\"id\":30,\"itemName\":\"NotIpAddressIfExists\"},\n {\"id\":31,\"itemName\":\"Null\"},\n {\"id\":32,\"itemName\":\"NumericEquals\"},\n {\"id\":33,\"itemName\":\"NumericEqualsIfExists\"},\n {\"id\":34,\"itemName\":\"NumericGreaterThan\"},\n {\"id\":35,\"itemName\":\"NumericGreaterThanEquals\"},\n {\"id\":36,\"itemName\":\"NumericGreaterThanEqualsIfExists\"},\n {\"id\":37,\"itemName\":\"NumericGreaterThanIfExists\"},\n {\"id\":38,\"itemName\":\"NumericLessThan\"},\n {\"id\":39,\"itemName\":\"NumericLessThanEquals\"},\n {\"id\":40,\"itemName\":\"NumericLessThanEqualsIfExists\"},\n {\"id\":41,\"itemName\":\"NumericLessThanIfExists\"},\n {\"id\":42,\"itemName\":\"NumericNotEquals\"},\n {\"id\":43,\"itemName\":\"NumericNotEqualsIfExists\"},\n {\"id\":44,\"itemName\":\"StringEquals\"},\n {\"id\":45,\"itemName\":\"StringEqualsIfExists\"},\n {\"id\":46,\"itemName\":\"StringEqualsIgnoreCase\"},\n {\"id\":47,\"itemName\":\"StringEqualsIgnoreCaseIfExists\"},\n {\"id\":48,\"itemName\":\"StringLike\"},\n {\"id\":49,\"itemName\":\"StringLikeIfExists\"},\n {\"id\":50,\"itemName\":\"StringNotEquals\"},\n {\"id\":51,\"itemName\":\"StringNotEqualsIfExists\"},\n {\"id\":52,\"itemName\":\"StringNotEqualsIgnoreCase\"},\n {\"id\":53,\"itemName\":\"StringNotEqualsIgnoreCaseIfExists\"},\n {\"id\":54,\"itemName\":\"StringNotLike\"},\n {\"id\":55,\"itemName\":\"StringNotLikeIfExists\"}\n ];\n\n this.dropdownConditionSettings = {\n \t\tsingleSelection: true,\n \t\ttext:\"Select Condition\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n\n \tthis.dropdownConditionKeyList = [\n {\"id\":1,\"itemName\":\"aws:CurrentTime\"},\n {\"id\":2,\"itemName\":\"aws:EpochTime\"},\n {\"id\":3,\"itemName\":\"aws:MultiFactorAuthAge\"},\n {\"id\":4,\"itemName\":\"aws:MultiFactorAuthPresent\"},\n {\"id\":5,\"itemName\":\"aws:PrincipalArn\"},\n {\"id\":6,\"itemName\":\"aws:PrincipalOrgID\"},\n {\"id\":7,\"itemName\":\"aws:PrincipalTag/${TagKey}\"},\n {\"id\":8,\"itemName\":\"aws:PrincipalType\"},\n {\"id\":9,\"itemName\":\"aws:Referer\"},\n {\"id\":10,\"itemName\":\"aws:RequestTag/${TagKey}\"},\n {\"id\":11,\"itemName\":\"aws:RequestedRegion\"},\n {\"id\":12,\"itemName\":\"aws:SecureTransport\"},\n {\"id\":13,\"itemName\":\"aws:SourceAccount\"},\n {\"id\":14,\"itemName\":\"aws:SourceArn\"},\n {\"id\":15,\"itemName\":\"aws:SourceIp\"},\n {\"id\":16,\"itemName\":\"aws:SourceVpc\"},\n {\"id\":17,\"itemName\":\"aws:SourceVpce\"},\n {\"id\":18,\"itemName\":\"aws:TagKeys\"},\n {\"id\":19,\"itemName\":\"aws:TokenIssueTime\"},\n {\"id\":20,\"itemName\":\"aws:UserAgent\"},\n {\"id\":21,\"itemName\":\"aws:userid\"},\n {\"id\":22,\"itemName\":\"aws:username\"},\n {\"id\":23,\"itemName\":\"s3:AccessPointNetworkOrigin\"},\n {\"id\":24,\"itemName\":\"s3:DataAccessPointAccount\"},\n {\"id\":25,\"itemName\":\"s3:DataAccessPointArn\"},\n {\"id\":26,\"itemName\":\"s3:ExistingJobOperation\"},\n {\"id\":27,\"itemName\":\"s3:ExistingJobPriority\"},\n {\"id\":28,\"itemName\":\"s3:ExistingObjectTag/\"},\n {\"id\":29,\"itemName\":\"s3:JobSuspendedCause\"},\n {\"id\":30,\"itemName\":\"s3:LocationConstraint\"},\n {\"id\":31,\"itemName\":\"s3:RequestJobOperation\"},\n {\"id\":32,\"itemName\":\"s3:RequestJobPriority\"},\n {\"id\":33,\"itemName\":\"s3:RequestObjectTag/\"},\n {\"id\":34,\"itemName\":\"s3:RequestObjectTagKeys\"},\n {\"id\":35,\"itemName\":\"s3:VersionId\"},\n {\"id\":36,\"itemName\":\"s3:authtype\"},\n {\"id\":37,\"itemName\":\"s3:delimiter\"},\n {\"id\":38,\"itemName\":\"s3:locationconstraint\"},\n {\"id\":39,\"itemName\":\"s3:max-keys\"},\n {\"id\":40,\"itemName\":\"s3:object-lock-legal-hold\"},\n {\"id\":41,\"itemName\":\"s3:object-lock-mode\"},\n {\"id\":42,\"itemName\":\"s3:object-lock-remaining-retention-days\"},\n {\"id\":43,\"itemName\":\"s3:object-lock-retain-until-date\"},\n {\"id\":44,\"itemName\":\"s3:prefix\"},\n {\"id\":45,\"itemName\":\"s3:signatureage\"},\n {\"id\":46,\"itemName\":\"s3:signatureversion\"},\n {\"id\":47,\"itemName\":\"s3:versionid\"},\n {\"id\":48,\"itemName\":\"s3:x-amz-acl\"},\n {\"id\":49,\"itemName\":\"s3:x-amz-content-sha256\"},\n {\"id\":50,\"itemName\":\"s3:x-amz-copy-source\"},\n {\"id\":51,\"itemName\":\"s3:x-amz-grant-full-control\"},\n {\"id\":52,\"itemName\":\"s3:x-amz-grant-read\"},\n {\"id\":53,\"itemName\":\"s3:x-amz-grant-read-acp\"},\n {\"id\":54,\"itemName\":\"s3:x-amz-grant-write\"},\n {\"id\":55,\"itemName\":\"s3:x-amz-grant-write-acp\"},\n {\"id\":56,\"itemName\":\"s3:x-amz-metadata-directive\"},\n {\"id\":57,\"itemName\":\"s3:x-amz-server-side-encryption\"},\n {\"id\":58,\"itemName\":\"s3:x-amz-server-side-encryption-aws-kms-key-id\"},\n {\"id\":59,\"itemName\":\"s3:x-amz-storage-class\"},\n {\"id\":60,\"itemName\":\"s3:x-amz-website-redirect-location\"}\n ];\n\n this.dropdownConditionKeySettings = {\n \t\tsingleSelection: true,\n \t\ttext:\"Select Condition Key\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n }\n\n\tonActionItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedActions);\n\t}\n\tonActionItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedActions);\n\t}\n\tonActionSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonActionDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n\n //condition select actions\n onConditionItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedCondition);\n\t}\n\tonConditionItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedCondition);\n\t}\n\tonConditionSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonConditionDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n //condition key select actions\n onConditionKeyItemSelect(item:any){\n console.log(item);\n console.log(this.selectedConditionKey);\n }\n onConditionKeyItemDeSelect(item:any){\n console.log(item);\n console.log(this.selectedConditionKey);\n }\n onConditionKeySelectAll(items: any){\n console.log(items);\n }\n onConditionKeyDeSelectAll(items: any){\n console.log(items);\n }\n\n\n searchItems() {\n console.log(this.searchText)\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.policies = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.policies = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n private resetPloicyForm(removeName){\n \tconsole.log(removeName)\n \tthis.selectedActions = []\n \tif(!removeName){\n \t\tthis.newPolicy.effect = \"Allow\"\n\t\t this.newPolicy.bucket = \"\"\n \t}else{\n \t\tthis.newPolicy.name = \"\",\n \t\tthis.newPolicy.effect = \"Allow\"\n \t\tthis.newPolicy.bucket = \"\"\n \t}\n\n this.newStatement = {\n Action: [],\n Effect: \"\",\n Resource: [],\n Condition: {},\n Principal: \"\"\n }\n\n }\n\n private getPolicies(){\n \tthis.apiService.getPolicies().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.policiesRaw = data;\n const arrayOfPolicies = Object.entries(data).map((e) => ( { [e[0]]: e[1] } ));\n this.policies = arrayOfPolicies;\n this.mdbTable.setDataSource(arrayOfPolicies);\n console.log(arrayOfPolicies)\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n private deletePolicy(){\n \tthis.apiService.deletePolicy(this.policyToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.getPolicies();\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.policyToDelete+' has been deleted', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while deleting policy');\n }\n });\n }\n\n private downloadPolicy(jsonObj) {\n var theJSON = JSON.stringify(jsonObj);\n console.log(\"theJSON>>>>>>>>>>>\",theJSON);\n var uri = this.sanitizer.bypassSecurityTrustUrl(\"data:text/json;charset=UTF-8,\" + encodeURIComponent(theJSON));\n this.downloadJsonHref = uri;\n }\n\n private rawPrepare(obj){\n \tthis.rawView = obj;\n }\n\n private deletePolicyPrepare(policy){\n \tthis.policyToDelete = policy\n }\n\n private prepareNewPolicyRaw(){\n \tthis.newPolicyRaw = {\n\t \tVersion:\"2012-10-17\",\n\t \tStatement: []\n \t}\n }\n\n private removeCondition(valueId,keyName,conditionName){\n console.log(this.newStatement)\n console.log(valueId,keyName,conditionName)\n this.newStatement.Condition[conditionName][keyName].splice(valueId,1)\n }\n\n private addCondition(){\n console.log(this.selectedCondition[0].itemName)\n console.log(this.selectedConditionKey[0].itemName)\n console.log(this.newConditionValue)\n if(!this.newStatement.Condition){\n this.newStatement.Condition = {}\n }\n if(this.newStatement.Condition[this.selectedCondition[0].itemName]){\n if(this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName]){\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }else{\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName] = []\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }\n }else{\n this.newStatement.Condition[this.selectedCondition[0].itemName] = {}\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName] = []\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }\n\n this.selectedCondition = []\n this.selectedConditionKey = []\n this.newConditionValue = \"\"\n console.log(this.newStatement.Condition)\n }\n\n\n private addStatement(){\n\n \tif(this.selectedActions.length == this.dropdownActionList.length){\n \t\tthis.newStatement.Action.push(\"s3:*\")\n \t}else{\n\t \tfor (var i = 0; i < this.selectedActions.length; i++) {\n\t \t\tthis.newStatement.Action.push(this.selectedActions[i].itemName)\n\t \t}\n\t }\n \tthis.newStatement.Effect = this.newPolicy.effect\n \t// this.newStatement.Resource = \"arn:aws:s3:::\"+this.newPolicy.bucket\n \tconsole.log(this.newStatement)\n if(this.newStatement.Condition && Object.entries(this.newStatement.Condition).length === 0 && this.newStatement.Condition.constructor === Object){\n console.log(\"Condition removed cause empty\")\n delete this.newStatement.Condition\n }else{\n if(!this.newStatement.Principal || this.newStatement.Principal == \"\"){\n console.log(\"Principal set to * cause condition not empty\")\n this.newStatement.Principal = \"*\"\n }\n }\n\n \tthis.newPolicyRaw.Statement.push(this.newStatement);\n \tconsole.log(this.newPolicyRaw)\n\n \tthis.resetPloicyForm(false);\n }\n\n private editStatement(i){\n this.newStatement = this.newPolicyRaw.Statement[i]\n this.newPolicy.effect = this.newPolicyRaw.Statement[i].Effect\n if(this.newStatement.Action[0] == \"s3:*\"){\n for (var g = 0; g < this.dropdownActionList.length; g++) {\n this.selectedActions.push({\"id\":this.dropdownActionList[g].id,\"itemName\":this.dropdownActionList[g].itemName})\n }\n }else{\n for (var g = 0; g < this.newStatement.Action.length; g++) {\n this.selectedActions.push({\"id\":g,\"itemName\":this.newStatement.Action[g]})\n }\n }\n this.newStatement.Action = []\n this.newPolicyRaw.Statement.splice(i,1)\n }\n\n private addBucketStatement(){\n this.newStatement.Resource.push(\"arn:aws:s3:::\"+this.newPolicy.bucket)\n this.newPolicy.bucket = ''\n }\n\n private removeStatement(i){\n \tthis.newPolicyRaw.Statement.splice(i,1)\n }\n\n private removeBucketStatement(i){\n this.newStatement.Resource.splice(i,1)\n }\n\n private fileChanged(e) {\n console.log(\"eventTriggered\");\n\n this.uploadPolicyFile = e.target.files[0];\n this.uploadPolicyFileName = e.target.files[0].name;\n }\n\n private uploadPolicy(){\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n console.log(fileReader.result);\n let policyFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n this.apiService.addPolicy(this.uploadPolicyName,policyFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newPolicy.name+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n this.getPolicies();\n });\n }\n fileReader.readAsText(this.uploadPolicyFile);\n }\n\n private resetUploadForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadPolicyFile;\n this.uploadPolicyName = \"\";\n this.uploadPolicyFileName = \"\";\n }\n\n private createPolicy(){\n \tconsole.log(this.newPolicy, this.newPolicyRaw)\n\n \tlet policyString = JSON.stringify(this.newPolicyRaw);\n\n \tthis.apiService.addPolicy(this.newPolicy.name,policyString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newPolicy.name+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n this.getPolicies();\n });\n }\n\n private isEditMode(state){\n this.modalEditMode = state;\n if(state){\n this.modalCreateEditTitle = \"Edit policy\"\n this.modalCreateEditButtonText = \"Update\"\n }else{\n this.modalCreateEditTitle = \"Build up new policy\"\n this.modalCreateEditButtonText = \"Create\"\n }\n }\n\n private isNowCopyMode(){\n this.modalCreateEditTitle = \"Copy policy\"\n this.modalCreateEditButtonText = \"Copy\"\n }\n\n private updatePolicyPrepare(policy){\n this.policyToUpdate = policy\n this.prepareNewPolicyRaw()\n this.resetPloicyForm(false)\n this.newPolicy.name = policy;\n\n var oldPolicy = this.policiesRaw[policy]\n this.newPolicyRaw.Statement = oldPolicy.Statement;\n }\n\n}\n","export default \"
\\n\\t

Server statistics {{server.endpoint}}

\\n\\t
\\n\\t\\tView Raw JSON 
\\n\\t\\tminio version: {{server.version}}
\\n\\t\\tuptime: {{math.round(server.uptime/60)}} min.
\\n\\t\\tnetwork: {{server.network[server.endpoint]}}\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t

Storage

\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
TotalUsedStatePath
{{math.round((disk.totalspace/1024/1024/1024)*100)/100}} Gb{{math.round((disk.usedspace/1024/1024/1024)*100)/100}} Gb{{disk.state}}{{disk.path}}
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t

Disk usage info

\\n\\t\\t\\t
\\n\\t\\t\\t\\t

Last update: {{diskUsageInfo?.lastUpdate.split('T').join(' ').split('.')[0]}}

\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
Objects countObjects total sizeBuckets count
{{diskUsageInfo.objectsCount}}{{math.round((diskUsageInfo.objectsTotalSize/1024/1024/1024)*100)/100}} Gb{{diskUsageInfo.bucketsCount}}
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
0\\\">\\n\\t\\t
\\n\\t\\t\\t

Bucket sizes chart

\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
0\\\">\\n\\t\\t
\\n\\t \\t

Object sizes histogram

\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Server Info

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwb2xpY2llcy5jb21wb25lbnQuc2NzcyJ9 */\";","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class EnvService {\n\n // The values that are defined here are the default values that can\n // be overridden by env.js\n\n // API url\n public apiBaseUrl = '';\n public apiMultiBackend = false;\n public apiBackends = '';\n\n constructor() {\n }\n\n}\n","export default \"
\\n\\t
\\n\\t
\\n\\t\\t

List of users

\\n\\t
\\n\\t
\\n\\t\\t\\n\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t \\n\\t\\t \\n\\t\\t
\\n\\t
\\n
\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t \\n\\t\\n\\t
User namePolicyStatusAction
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectKeys(users[key])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectValues(users[key])[0].policyName}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t \\n\\t\\t \\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n
\\n
\\n
\\n\\n\\n
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t

Remove User

\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\tAre you shure?
After you click on \\\"Delete\\\" button user {{userToDelete}} will be removed.\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t

Edit User

\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tInput invalid\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tInput valid\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t

\\n\\t\\t\\t\\t\\t\\tGenerate new secret\\n\\t\\t\\t\\t\\t

\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n
\\n\\t
\\n\\t
\\n\\t\\t

Create new user

\\n\\t\\t\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput invalid\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput valid\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput invalid\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput valid\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t

\\n\\t\\t\\t\\t\\tGenerate new access\\\\secret pair\\n\\t\\t\\t

\\n\\t\\t\\t
\\n\\t
\\n\\t \\n\\t
\\n
\\n
\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { UsersComponent } from './users/users.component';\nimport { ServerComponent } from './server/server.component';\nimport { PoliciesComponent } from './policies/policies.component';\nimport { BucketsComponent } from './buckets/buckets.component';\nimport { GroupsComponent } from './groups/groups.component';\n\nconst routes: Routes = [\n\t{path:'users', component: UsersComponent},\n\t{path:'server', component: ServerComponent},\n\t{path:'policies', component: PoliciesComponent},\n\t{path:'groups', component: GroupsComponent},\n\t{path:'', component: BucketsComponent}\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Router } from \"@angular/router\";\nimport { EnvService } from './env.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n\n constructor(private httpClient: HttpClient, private router: Router, private env: EnvService) {\n if(env.apiBaseUrl) {\n console.log('apiBaseUrl', env.apiBaseUrl);\n }\n if(env.apiMultiBackend) {\n console.log('apiMultiBackend', env.apiMultiBackend);\n }\n if(env.apiBackends) {\n console.log('apiBackends', env.apiBackends);\n }\n\n }\n\n\n multiBackend = this.env.apiMultiBackend;\n backendsUrls = this.env.apiBackends;\n baseUrl = this.getCurrentBackend();\n\n private getCurrentBackend(){\n let envDefaultBackend = this.env.apiBaseUrl;\n if(this.multiBackend && this.multiBackend == true) {\n let savedBackend = localStorage.getItem('currentBackend');\n\n let activeBackend = \"\";\n\n if(savedBackend && savedBackend != \"\"){\n activeBackend = savedBackend;\n }else{\n activeBackend = envDefaultBackend;\n }\n return activeBackend;\n } else {\n return envDefaultBackend;\n }\n }\n\n public overrideBackend(newBackend){\n localStorage.setItem('currentBackend', newBackend);\n this.baseUrl = newBackend;\n\n this.router.onSameUrlNavigation = 'reload';\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\n return false;\n };\n\n this.router.navigate([this.router.url])\n this.router.onSameUrlNavigation = 'ignore';\n }\n\n public getMultiBackendStatus(){\n return this.multiBackend;\n }\n\n public getBackendsUrls(){\n return this.backendsUrls;\n }\n\n public validateAuthInResponse(data){\n if(data != null && typeof data.oauth != \"undefined\" && typeof data.auth != \"undefined\" && data.oauth != false && data.auth != true){\n window.location.href = this.env.apiBaseUrl+'/auth/?state='+window.location.href;\n }\n }\n\n public serverInfo(){\n return this.httpClient.get(this.baseUrl+'/api/v2/server/common-info');\n }\n\n public diskInfo(){\n return this.httpClient.get(this.baseUrl+'/api/v2/server/disk-info');\n }\n\n public getUsers(){\n return this.httpClient.get(this.baseUrl+'/api/v2/users/list');\n }\n\n public addUser(access,secret){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/create', form)\n }\n\n public addUserExtended(access,secret,policy){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n form.append('policyName', policy);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/create-extended', form)\n }\n\n public updateUser(access,secret,policy,status){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n form.append('policyName', policy);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/update', form)\n }\n\n\n public setStatusUser(access,status){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/set-status', form)\n }\n\n public deleteUser(access){\n let form = new FormData();\n\n form.append('accessKey', access);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/delete', form)\n }\n\n public getPolicies(){\n return this.httpClient.get(this.baseUrl+'/api/v2/policies/list');\n }\n\n public deletePolicy(policy){\n let form = new FormData();\n\n form.append('policyName', policy);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/delete', form)\n }\n\n public addPolicy(policyName, policyString){\n let form = new FormData();\n\n form.append('policyName', policyName);\n form.append('policyString', policyString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/create', form)\n }\n\n public getBuckets(){\n return this.httpClient.get(this.baseUrl+'/api/v2/buckets/list');\n }\n\n public getBucketsExtended(){\n return this.httpClient.get(this.baseUrl+'/api/v2/buckets/list-extended');\n }\n\n public enableNotificationForBucket(bucket, stsARN, eventTypes, filterPrefix, filterSuffix){\n //put,get,delete\n let form = new FormData();\n\n form.append('bucket', bucket);\n form.append('stsARN', stsARN);\n form.append('eventTypes', eventTypes);\n form.append('filterPrefix', filterPrefix);\n form.append('filterSuffix', filterSuffix);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-events', form)\n }\n\n public getBucketEvents(bucket){\n let form = new FormData();\n\n form.append('bucket', bucket);\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-events',form)\n }\n\n public removeBucketEvents(bucket){\n let form = new FormData();\n\n form.append('bucket', bucket);\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/remove-events',form)\n }\n\n public deleteBucket(bucket){\n let form = new FormData();\n\n form.append('bucketName', bucket);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/delete', form)\n }\n\n public createBucket(bucket){\n let form = new FormData();\n\n form.append('newBucket', bucket);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/create', form)\n }\n\n public getGroups(){\n return this.httpClient.get(this.baseUrl+'/api/v2/groups/list');\n }\n\n public updateMembersGroup(group,members,IsRemove){\n let form = new FormData();\n\n form.append('group', group);\n form.append('members', members);\n form.append('IsRemove', IsRemove);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/update-members', form);\n }\n\n public getGroupDescription(group){\n let form = new FormData();\n\n form.append('group', group);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/get-description', form);\n }\n\n public setStatusGroup(group,status){\n let form = new FormData();\n\n form.append('group', group);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/set-status', form);\n }\n\n public setPolicy(policyName,entityName,isGroup){\n let form = new FormData();\n\n form.append('policyName', policyName);\n form.append('entityName', entityName);\n form.append('isGroup', isGroup);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/update', form);\n }\n\n public setLifecycle(bucketName,lifecycle){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('lifecycle', lifecycle);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-lifecycle', form);\n }\n\n\n public getLifecycle(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-lifecycle', form);\n }\n\n public checkAuthStatus(){\n return this.httpClient.get(this.baseUrl+'/auth/check');\n }\n\n public getBucketQuota(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-quota', form);\n }\n\n public setBucketQuota(bucketName, quotaType, quotaValue){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('quotaType', quotaType);\n form.append('quotaValue', quotaValue);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-quota', form);\n }\n\n public removeBucketQuota(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/remove-quota', form);\n }\n\n public setBucketTag(bucketName,tagsString){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('bucketTags', tagsString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-tags', form);\n }\n\n public getBucketTag(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-tags', form);\n }\n\n public setBucketPolicy(bucketName,policyString){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('bucketPolicy', policyString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-policy', form);\n }\n\n\n public getBucketPolicy(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-policy', form);\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAuY29tcG9uZW50LnNjc3MifQ== */\";","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"} \ No newline at end of file +{"version":3,"sources":["./src/app/loader/loader.component.html","./src/app/loader.service.ts","./src/app/loader.interceptor.ts","./src/app/loader/loader.component.scss","./src/app/groups/groups.component.scss","./src/environments/environment.ts","./src/app/buckets/buckets.component.ts","./src/app/server/server.component.ts","./src/app/groups/groups.component.html","./src/app/app.component.ts","./src/app/server/server.component.scss","./src/app/app.component.html","./src/app/app.module.ts","./src/app/buckets/buckets.component.scss","./src/app/env.service.provider.ts","./src/app/users/users.component.scss","./src/app/groups/groups.component.ts","./src/app/filter.pipe.ts","./src/app/buckets/buckets.component.html","./src/app/loader/loader.component.ts","./src/app/policies/policies.component.html","./src/app/users/users.component.ts","./src/app/policies/policies.component.ts","./src/app/server/server.component.html","./src/app/policies/policies.component.scss","./src/app/env.service.ts","./src/app/users/users.component.html","./src/app/app-routing.module.ts","./src/app/api.service.ts","./src/app/app.component.scss","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["export default \"
\\n\\t
\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t\\t
\\n\\t\\t Loading...\\n\\t\\t
\\n\\t
\\n
\\n\\n
\\n\\t
\\n\\t\\t\\n\\t\\t
\\n\\t\\t
\\n\\t\\tSeems backend unreachable\\n\\t
\\n
\\n\";","//loader.service.ts\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderService {\n public isError = false\n public isLoading = new BehaviorSubject(false);\n constructor() { }\n}\n","// loader.interceptors.ts\nimport { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse,\n HttpResponse,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { LoaderService } from './loader.service';\n\n@Injectable()\nexport class LoaderInterceptor implements HttpInterceptor {\n private requests: HttpRequest[] = [];\n\n constructor(private loaderService: LoaderService) { }\n\n removeRequest(req: HttpRequest) {\n const i = this.requests.indexOf(req);\n if (i >= 0) {\n this.requests.splice(i, 1);\n }\n this.loaderService.isLoading.next(this.requests.length > 0);\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n req = req.clone({\n withCredentials: true\n });\n this.requests.push(req);\n this.loaderService.isLoading.next(true);\n this.loaderService.isError = false;\n return Observable.create(observer => {\n const subscription = next.handle(req)\n .subscribe(\n event => {\n if (event instanceof HttpResponse) {\n this.removeRequest(req);\n observer.next(event);\n }\n },\n err => {\n this.loaderService.isError = true;\n this.removeRequest(req);\n observer.error(err);\n },\n () => {\n this.removeRequest(req);\n observer.complete();\n });\n // remove request from queue when cancelled\n return () => {\n this.removeRequest(req);\n subscription.unsubscribe();\n };\n });\n }\n}\n","export default \"dialog {\\n width: 300px;\\n}\\n\\ndialog::-webkit-backdrop {\\n background: rgba(0, 0, 0, 0.7);\\n}\\n\\ndialog::backdrop {\\n background: rgba(0, 0, 0, 0.7);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xvYWRlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFlBQUE7QUFDSjs7QUFDRztFQUNDLDhCQUFBO0FBRUo7O0FBSEc7RUFDQyw4QkFBQTtBQUVKIiwiZmlsZSI6ImxvYWRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImRpYWxvZyB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgfVxuICAgZGlhbG9nOjpiYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjcpO1xuICAgfSJdfQ== */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJncm91cHMuY29tcG9uZW50LnNjc3MifQ== */\";","export const environment = {\n production: false\n};\n","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n\n@Component({\n selector: 'app-buckets',\n templateUrl: './buckets.component.html',\n styleUrls: ['./buckets.component.scss']\n})\nexport class BucketsComponent implements OnInit, AfterViewInit {\n math = Math;\n objectKeys = Object.keys;\n isNaN: Function = Number.isNaN;\n buckets = {};\n bucketToDelete;\n bucketToRemoveNotifications;\n bucketToRemoveQuota;\n bucketToRemoveEncryption;\n updateEncryptionTypeChanged = false;\n editBucketName;\n newBucketName = \"\";\n uiShowQuota = false;\n newBucketQuotaType = \"\";\n newBucketQuota = \"\";\n quotaTypes = [\"fifo\", \"hard\"];\n serviceInfo;\n diskUsageInfo;\n newBucketEncryption = \"\";\n encryptionTypes = [\"sse-s3\", \"sse-kms\"];\n newBucketMasterKeyID = \"\";\n newBucketEventARN = \"\";\n updateBucketEventARN = \"\";\n updateBucketEventFilterPrefix = \"\";\n updateBucketEventFilterSuffix = \"\";\n updateBucketQuotaObj = {};\n updateBucketEncryptionObj = {};\n updateQuotaTypeChanged = false;\n updateQuotaChanged = false;\n\n newBucketPolicy = \"none\";\n // updateBucketPolicy = \"none\"\n policyTypes = [\"none\", \"upload\", \"download\", \"public\", \"custom\"];\n updatePolicyTypeChanged = false;\n uploadPolicyName;\n uploadPolicyFile;\n uploadPolicyFileName;\n\n dropdownEventTypesList = [];\n selectedEventTypes = [];\n dropdownEventTypesSettings = {};\n newBucketEventFilterPrefix = \"\";\n newBucketEventFilterSuffix = \"\";\n newBucketTagName = \"\";\n newBucketTagValue = \"\";\n newBucketTagsList = {};\n\n tagListChanged = false;\n\n uploadLifecycleName;\n uploadLifecycleFile;\n uploadLifecycleFileName;\n lifecycleBucketName;\n downloadJsonHref;\n downloadLifecycleAvailable = 0;\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService, private sanitizer: DomSanitizer) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n }\n\n @ViewChild('uploadLifecycleFile', { static: true })\n uploadFileInput: any;\n\n ngOnInit() {\n \tthis.getBuckets()\n this.getServerInfo()\n this.getDiskInfo()\n\n this.dropdownEventTypesList = [\n\t {\"id\":1,\"itemName\":\"put\"},\n\t {\"id\":2,\"itemName\":\"get\"},\n\t {\"id\":3,\"itemName\":\"delete\"},\n ];\n\n this.dropdownEventTypesSettings = {\n \t\tsingleSelection: false,\n \t\ttext:\"Select Event Types\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true,\n classes: \"dropdownFix\"\n\t };\n }\n\n //condition select actions\n onEventTypesItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedEventTypes);\n\t}\n\tonEventTypesItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedEventTypes);\n\t}\n\tonEventTypesSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonEventTypesDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n private toggleShowQuota(){\n (this.uiShowQuota) ? this.uiShowQuota = false : this.uiShowQuota = true;\n }\n\n // private toggleUpdateShowQuota(){\n // (this.updateUiShowQuota) ? this.updateUiShowQuota = false : this.updateUiShowQuota = true;\n // }\n\n private getServerInfo(){\n this.apiService.serverInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.serviceInfo = data;\n });\n }\n\n private getDiskInfo(){\n \tthis.apiService.diskInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.diskUsageInfo = data;\n });\n }\n\n private searchItems() {\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.buckets = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.buckets = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n private getBuckets(){\n \tthis.apiService.getBucketsExtended().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"BUCKETS >>>>>>\",data);\n if(data!==null){\n this.buckets = data;\n }else{\n this.buckets = {};\n }\n this.mdbTable.setDataSource(this.buckets);\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n private deleteBucketPrepare(bucketName){\n \tthis.bucketToDelete = bucketName;\n }\n\n private removeBucketNotificationPrepare(bucketName){\n \tthis.bucketToRemoveNotifications = bucketName;\n }\n\n private updateBucketPrepare(bucketName, currentQuota, currentQtype, currentTags){\n this.editBucketName = bucketName;\n\n this.apiService.getBucketTag(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n\n var dataKeys = Object.keys(data);\n console.log(dataKeys[0]);\n if(dataKeys[0]!=\"error\"){\n this.newBucketTagsList = data;\n }\n });\n\n this.apiService.getBucketEncryption(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n\n var dataKeys = Object.keys(data);\n console.log(\"Bucket Encryption >>\",dataKeys[1]);\n if(dataKeys[1]==\"Rules\"){\n this.updateBucketEncryptionObj = data;\n var dataVals = Object.values(data);\n console.log(\"Enc datavals\", dataVals[1][0]['Apply']['KmsMasterKeyID'])\n if(dataVals[1][0]['Apply']['KmsMasterKeyID'] == \"\"){\n this.updateBucketEncryptionObj = \"sse-s3\"\n }else{\n this.updateBucketEncryptionObj = \"sse-kms\"\n }\n }else{\n this.updateBucketEncryptionObj = \"\";\n }\n });\n\n this.apiService.getBucketQuota(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n\n var dataKeys = Object.keys(data);\n console.log(dataKeys[0]);\n if(dataKeys[0]!=\"error\"){\n this.updateBucketQuotaObj = data;\n }else{\n var emptyData = {\n quotatype: \"\"\n };\n this.updateBucketQuotaObj = emptyData;\n }\n });\n\n this.apiService.getBucketPolicy(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n this.newBucketPolicy = data[\"name\"];\n });\n }\n\n private deleteBucketQuotaPrepare(bucketName){\n this.bucketToRemoveQuota = bucketName;\n }\n\n private updateQuotaType(){\n this.updateQuotaTypeChanged = true;\n }\n\n private updatePolicyType(){\n this.updatePolicyTypeChanged = true;\n }\n\n private updateEncryptionType(){\n this.updateEncryptionTypeChanged = true;\n }\n\n private updateQuota(){\n this.updateQuotaChanged = true;\n }\n\n private deleteBucketEncryptionPrepare(bucketName){\n this.bucketToRemoveEncryption = bucketName;\n }\n\n private deleteBucket(){\n \tthis.apiService.deleteBucket(this.bucketToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Bucket has been deleted', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while deleting bucket');\n }\n this.getBuckets();\n });\n }\n\n private resetForm(){\n \tthis.newBucketName = \"\";\n this.newBucketEventARN = \"\";\n this.newBucketEncryption = \"\";\n this.newBucketMasterKeyID = \"\";\n this.updateEncryptionTypeChanged = false;\n this.newBucketEventFilterPrefix = \"\";\n this.newBucketEventFilterSuffix = \"\";\n this.selectedEventTypes = [];\n this.newBucketQuotaType = \"\";\n this.newBucketPolicy = \"none\";\n this.newBucketQuota = \"\";\n this.newBucketTagName = \"\";\n this.newBucketTagValue = \"\";\n this.newBucketTagsList = {};\n this.updatePolicyTypeChanged = false;\n this.tagListChanged = false;\n this.resetUploadForm();\n }\n\n private resetUpdateForm() {\n this.updateBucketEventARN = \"\";\n this.newBucketEncryption = \"\";\n this.newBucketMasterKeyID = \"\";\n this.updateEncryptionTypeChanged = false;\n this.selectedEventTypes = [];\n this.updateBucketEventFilterPrefix = \"\";\n this.updateBucketEventFilterSuffix = \"\";\n this.updateBucketQuotaObj = {};\n this.updateBucketEncryptionObj = \"\";\n this.updateQuotaTypeChanged = false;\n this.updateQuotaChanged = false;\n this.tagListChanged = false;\n this.updatePolicyTypeChanged = false;\n this.resetUploadForm();\n }\n\n private filePolicyChanged(e) {\n console.log(\"file event\");\n\n this.uploadPolicyFile = e.target.files[0];\n this.uploadPolicyFileName = e.target.files[0].name;\n }\n\n private resetUploadForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadPolicyFile;\n this.uploadPolicyName = \"\";\n this.uploadPolicyFileName = \"\";\n }\n\n private setPolicy(bucketName, updateListAfter){\n if(this.newBucketPolicy!=\"custom\"){\n this.apiService.setBucketPolicy(bucketName, this.newBucketPolicy).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newBucketPolicy+' has been append to '+bucketName, 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n });\n } else {\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n console.log(\"Policy>>>>\",fileReader.result);\n\n let policyFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n console.log(\"Policy2>>>>\",policyFileString);\n this.apiService.setBucketPolicy(bucketName, policyFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy custom has been append to '+bucketName, 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n });\n\n }\n fileReader.readAsText(this.uploadPolicyFile);\n }\n }\n\n\n private createBucket(){\n \tif(this.newBucketName.indexOf(',')>-1){\n \t\tvar bucketsArr = this.newBucketName.split(',')\n \t\tfor (var i = 0; i < bucketsArr.length; i++) {\n \t\t\tif(bucketsArr[i]!=''){\n \t\t\t\tthis.createBucketSimple(bucketsArr[i],this.newBucketEventARN,this.newBucketQuotaType,this.newBucketQuota,this.newBucketPolicy,this.newBucketEncryption,this.newBucketMasterKeyID, bucketsArr.length,i+1)\n \t\t\t}\n \t\t}\n \t}else{\n \t\tthis.createBucketSimple(this.newBucketName,this.newBucketEventARN,this.newBucketQuotaType,this.newBucketQuota,this.newBucketPolicy,this.newBucketEncryption,this.newBucketMasterKeyID,1,1)\n \t}\n }\n\n private bucketLifecycle(bucket){\n this.lifecycleBucketName = bucket;\n }\n\n private createFormAddTag() {\n if(this.newBucketTagName != \"\" && this.newBucketTagValue != \"\"){\n this.newBucketTagsList[this.newBucketTagName] = this.newBucketTagValue;\n this.newBucketTagName = \"\";\n this.newBucketTagValue = \"\";\n this.tagListChanged = true;\n }\n }\n\n private createFormRemoveTag(tagName) {\n delete this.newBucketTagsList[tagName];\n this.tagListChanged = true;\n }\n\n private updateBucket(quotaType, quotaVal) {\n if(this.updateBucketEventARN != \"\"){\n this.enableNotificationForBucket(this.editBucketName, this.updateBucketEventARN, this.selectedEventTypes, this.updateBucketEventFilterPrefix, this.updateBucketEventFilterSuffix, true)\n }\n\n if(this.tagListChanged){\n this.setTagsForBucket(this.editBucketName,true)\n }\n\n if(this.updateQuotaTypeChanged || this.updateQuotaChanged){\n this.setQuotaForBucket(this.editBucketName, quotaType, quotaVal, true)\n }\n\n if(this.updatePolicyTypeChanged){\n this.setPolicy(this.editBucketName, true)\n }\n\n if(this.updateEncryptionTypeChanged){\n this.setBucketEncryption(this.editBucketName, this.updateBucketEncryptionObj, this.newBucketMasterKeyID, true)\n }\n }\n\n private enableNotificationForBucket(bucket, stsARN, eventTypes, filterPrefix, filterSuffix, updateListAfter){\n var eventTypesArr = []\n for (var i = 0; i < eventTypes.length; i++) {\n eventTypesArr.push(eventTypes[i].itemName)\n }\n this.apiService.enableNotificationForBucket(bucket, stsARN, eventTypesArr.join(','), filterPrefix, filterSuffix).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Events for bucket: '+bucket+' has been enabled', 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while enabling events for bucket'+bucket );\n }\n });\n }\n\n private setQuotaForBucket(bucket, quotaType, quotaVal, reloadBucketList){\n this.apiService.setBucketQuota(bucket, quotaType, quotaVal).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Quota for bucket '+bucket+' has been set', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while set quota for bucket');\n }\n if(reloadBucketList){\n this.getBuckets();\n }\n });\n }\n\n private removeBucketEvents(){\n var bucket = this.bucketToRemoveNotifications;\n this.apiService.removeBucketEvents(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Events for bucket '+bucket+' has been removed', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while removing bucket events');\n }\n this.getBuckets();\n });\n }\n\n private removeBucketQuota(){\n var bucket = this.bucketToRemoveQuota;\n this.apiService.removeBucketQuota(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Quota for bucket '+bucket+' has been removed', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while removing bucket quota');\n }\n this.getBuckets();\n });\n }\n\n private removeBucketEncryption(){\n var bucket = this.bucketToRemoveEncryption;\n this.apiService.removeBucketEncryption(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Encryption for bucket '+bucket+' has been removed', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while removing bucket encryption');\n }\n this.getBuckets();\n });\n }\n\n\n private setBucketEncryption(bucket, encType, masterKeyID, reloadBucketList){\n this.apiService.setBucketEncryption(bucket, encType, masterKeyID).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Encryption for bucket '+bucket+' has been set', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while set encryption for bucket');\n }\n if(reloadBucketList){\n this.getBuckets();\n }\n });\n }\n\n\n\n private createBucketSimple(bucket, eventARN, quotaType, quotaVal, policy, encryption, masterKeyID, numberOfBuckets, currentBucketNumber){\n \tthis.apiService.createBucket(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Bucket: '+bucket+' has been created', 'Success');\n if(eventARN != \"\"){\n this.enableNotificationForBucket(bucket, eventARN, this.selectedEventTypes, this.newBucketEventFilterPrefix, this.newBucketEventFilterSuffix, false);\n }\n if(quotaType != \"\" && quotaVal != \"\" && quotaVal >= 0){\n this.setQuotaForBucket(bucket, quotaType, quotaVal, false);\n }\n if(Object.keys(this.newBucketTagsList).length > 0){\n this.setTagsForBucket(bucket, false)\n }\n if(this.updatePolicyTypeChanged){\n this.setPolicy(bucket, false)\n }\n if(encryption != \"\"){\n this.setBucketEncryption(bucket, encryption, masterKeyID, false)\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating bucket');\n }\n if(numberOfBuckets == currentBucketNumber){\n setTimeout(()=>{\n this.getBuckets();\n }, 500);\n }\n });\n }\n\n private fileChanged(e) {\n console.log(\"eventTriggered\");\n\n this.uploadLifecycleFile = e.target.files[0];\n this.uploadLifecycleFileName = e.target.files[0].name;\n }\n\n private resetLifecycleForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadLifecycleFile;\n this.uploadLifecycleName = \"\";\n this.uploadLifecycleFileName = \"\";\n this.downloadLifecycleAvailable = 0;\n }\n\n private downloadLifecycle(bucket) {\n this.apiService.getLifecycle(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n // console.log(bucket, data);\n if(data[\"error\"]){\n this.toastr.error(JSON.stringify(data), 'Error while getting lifecycle');\n }else{\n if(data==\"\"){\n // this.toastr.error(\"Bucket has no lifecycle\", 'Error while getting lifecycle');\n }else{\n this.downloadLifecycleAvailable = 1;\n console.log(\"Lifecycle>>>>\",JSON.stringify(data));\n\n var uri = this.sanitizer.bypassSecurityTrustUrl(\"data:text/json;charset=UTF-8,\" + encodeURIComponent(JSON.stringify(data)));\n this.downloadJsonHref = uri;\n }\n }\n });\n }\n\n private uploadLifecycle(){\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n let lifecycleFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n this.apiService.setLifecycle(this.lifecycleBucketName,lifecycleFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Lifecycyle has been uploaded for bucket: '+this.lifecycleBucketName+'', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while uploading lifecycyle');\n }\n });\n }\n fileReader.readAsText(this.uploadLifecycleFile);\n }\n\n private setTagsForBucket(bucket,reloadBucketList){\n var tagsObj = this.newBucketTagsList;\n var tagsKeys = this.objectKeys(tagsObj);\n var tagArr = [];\n for (let i = 0; i < tagsKeys.length; i++) {\n var tagString = tagsKeys[i]+\"=\"+tagsObj[tagsKeys[i]]\n tagArr.push(tagString)\n }\n var tagString = tagArr.join(\"&\");\n console.log(\"TAG STRING >>>>\", tagString)\n this.apiService.setBucketTag(bucket, tagString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Tags for bucket '+bucket+' has been set', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while set tags for bucket');\n }\n if(reloadBucketList){\n this.getBuckets();\n }\n });\n }\n\n private downloadPolicy(bucket,fileName) {\n this.apiService.getBucketPolicy(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"download policy >>> \", bucket, data);\n if(data[\"error\"]){\n this.toastr.error(JSON.stringify(data), 'Error while getting policy');\n }else{\n if(data==\"\"){\n this.toastr.error(\"Bucket has no policy\", 'Error while getting policy');\n }else{\n var link = document.createElement('a');\n link.href = \"data:text/json;charset=UTF-8,\" + encodeURIComponent(data[\"policy\"].toString());\n link.download = fileName\n link.click();\n }\n }\n });\n }\n\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ApiService } from '../api.service';\n\n@Component({\n selector: 'app-server',\n templateUrl: './server.component.html',\n styleUrls: ['./server.component.scss']\n})\nexport class ServerComponent implements OnInit {\n\n objectKeys = Object.keys;\n objectValues = Object.values;\n math = Math;\n rawView = '';\n serviceInfo;\n diskUsageInfo;\n bucketSizes=[];\n hgChartDatasets=[{data: [], label: 'Number of objects'}];\n hgChartLabels=[];\n hgChartType = 'radar';\n hgChartColors = [\n {\n backgroundColor: 'rgba(151,187,205,0.9)',\n borderColor: 'rgba(151,187,205,1)',\n borderWidth: 2,\n pointBackgroundColor: 'rgba(151,187,205,1)',\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: 'rgba(151,187,205,1)'\n }\n ];\n hgChartOptions = {\n responsive: true\n };\n\n szChartDatasets=[{data: [], label: 'Size of bucket in Bytes'}];\n szChartLabels=[];\n szChartType = 'bar';\n szChartColors = [\n {\n backgroundColor: 'rgba(151,187,205,0.9)',\n borderColor: 'rgba(151,187,205,1)',\n borderWidth: 2,\n pointBackgroundColor: 'rgba(151,187,205,1)',\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: 'rgba(151,187,205,1)'\n }\n ];\n szChartOptions = {\n responsive: true\n };\n\n constructor(private apiService: ApiService) { }\n\n ngOnInit() {\n \tthis.serverInfo()\n this.diskInfo()\n }\n\n public hgChartClicked(e: any): void {\n }\n\n public hgChartHovered(e: any): void {\n }\n\n public szChartClicked(e: any): void {\n }\n\n public szChartHovered(e: any): void {\n }\n\n private serverInfo(){\n \tthis.apiService.serverInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.serviceInfo = data;\n });\n }\n\n private diskInfo(){\n \tthis.apiService.diskInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"Disk Usage >>>>>>>>>>>>\",data);\n this.diskUsageInfo = data;\n if(data.hasOwnProperty('objectsSizesHistogram')){\n var objectsSizesHistogram = this.diskUsageInfo.objectsSizesHistogram;\n var histogramKeysRawArr = [];\n var histogramValsRawArr = [];\n if(objectsSizesHistogram){\n histogramKeysRawArr = Object.keys(objectsSizesHistogram)\n histogramValsRawArr = Object.values(objectsSizesHistogram)\n }\n this.hgChartDatasets[0].data = histogramValsRawArr;\n\n this.hgChartLabels = [];\n for (let i = 0; i < histogramKeysRawArr.length; i++) {\n var histogramLabel = histogramKeysRawArr[i].split('_').join(' ');\n this.hgChartLabels.push(histogramLabel)\n }\n }\n\n if(data.hasOwnProperty('bucketsSizes') && this.diskUsageInfo.bucketsSizes != {} && this.diskUsageInfo.bucketsSizes != null ){\n var objectBucketSizes = this.diskUsageInfo.bucketsSizes;\n const bucketSizesKeysRawArr = Object.keys(objectBucketSizes)\n const bucketSizesValsRawArr = Object.values(objectBucketSizes)\n this.szChartDatasets[0].data = bucketSizesValsRawArr;\n this.szChartLabels= bucketSizesKeysRawArr;\n }\n });\n }\n\n private rawPrepare(obj){\n this.rawView = obj;\n }\n\n}\n","export default \"
\\n
\\n
\\n

Groups

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\t\\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\t \\n\\t \\n\\t \\n \\n \\n \\n \\n \\n\\t
NamePolicyStatusMembersOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].name}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].policy}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].status}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n
    \\n
  • {{member}}
  • \\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t \\t \\t\\n\\t \\t \\t\\n\\t \\t \\t 0\\\" mdbTooltip=\\\"You can delete only groups whit no memebers\\\" placement=\\\"top\\\">\\n\\t \\t
\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

{{modalCreateEditTitle}}

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t \\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t \\n \\t\\t\\t\\t
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Group

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button group {{groupToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Policy

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\";","import { Component, OnInit } from '@angular/core';\nimport { ApiService } from './api.service';\nimport { environment } from './../environments/environment';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit {\n title = 'Adminio-UI';\n\n constructor(private apiService: ApiService) { }\n\n ngOnInit() {\n \tthis.checkAuthStatus()\n }\n\n private checkAuthStatus(){\n this.apiService.checkAuthStatus().subscribe((data)=>{\n console.log(\"DATA AUTH>>>\", data);\n this.apiService.validateAuthInResponse(data)\n });\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzZXJ2ZXIuY29tcG9uZW50LnNjc3MifQ== */\";","export default \"\\n\\n\\n\\n \\n Adminio UI \\n\\n \\n \\n\\n \\n \\n \\n \\n
\\n \\n \\n\\t\\t\\t\\t\\t\\n
\\n
\\n \\n\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\";","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { MDBBootstrapModule } from 'angular-bootstrap-md';\nimport { UsersComponent } from './users/users.component';\nimport { FormsModule, FormControl, FormGroup, Validators, ReactiveFormsModule} from \"@angular/forms\";\nimport { ServerComponent } from './server/server.component';\nimport { FilterPipe } from './filter.pipe';\nimport { PoliciesComponent } from './policies/policies.component';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { AngularMultiSelectModule } from 'angular2-multiselect-dropdown';\nimport { LoaderComponent } from './loader/loader.component';\nimport { LoaderService } from './loader.service';\nimport { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';\nimport { LoaderInterceptor } from './loader.interceptor';\nimport { BucketsComponent } from './buckets/buckets.component';\nimport { CommonModule } from '@angular/common';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ToastrModule } from 'ngx-toastr';\nimport { GroupsComponent } from './groups/groups.component';\nimport { EnvServiceProvider } from './env.service.provider';\n\n\n\n@NgModule({\n declarations: [\n AppComponent,\n UsersComponent,\n ServerComponent,\n FilterPipe,\n PoliciesComponent,\n LoaderComponent,\n BucketsComponent,\n GroupsComponent,\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n MDBBootstrapModule.forRoot(),\n HttpClientModule,\n ReactiveFormsModule,\n NgxJsonViewerModule,\n AngularMultiSelectModule,\n FormsModule,\n CommonModule,\n BrowserAnimationsModule,\n ToastrModule.forRoot()\n ],\n providers: [\n EnvServiceProvider,\n LoaderService,\n { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJidWNrZXRzLmNvbXBvbmVudC5zY3NzIn0= */\";","import { EnvService } from './env.service';\n\nexport const EnvServiceFactory = () => {\n // Create env\n const env = new EnvService();\n\n // Read environment variables from browser window\n const browserWindow = window || {};\n const browserWindowEnv = browserWindow['__env'] || {};\n\n // Assign environment variables from browser window to env\n // In the current implementation, properties from env.js overwrite defaults from the EnvService.\n // If needed, a deep merge can be performed here to merge properties instead of overwriting them.\n for (const key in browserWindowEnv) {\n if (browserWindowEnv.hasOwnProperty(key)) {\n env[key] = window['__env'][key];\n }\n }\n\n return env;\n};\n\nexport const EnvServiceProvider = {\n provide: EnvService,\n useFactory: EnvServiceFactory,\n deps: [],\n};\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ1c2Vycy5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n@Component({\n\tselector: 'app-groups',\n\ttemplateUrl: './groups.component.html',\n\tstyleUrls: ['./groups.component.scss']\n})\n\nexport class GroupsComponent implements OnInit, AfterViewInit {\n\tobjectKeys = Object.keys;\n\tjsn = JSON;\n\tgroups = {};\n\tgroupsWithMembers = [];\n\tusers = {};\n\trawPolicies = {};\n\tgroupToUpdate = {};\n\tnewGroupName = \"\";\n\tnewGroupPolicy = \"\";\n\tnewGroupStatus = \"\";\n\tpolicies;\n\tupdateStatusValues = ['enabled','disabled'];\n\tmodalCreateEditTitle;\n\tmodalCreateEditButtonText;\n\tmodalEditMode = false;\n\trawView = \"\";\n\tusersToRemove = [];\n\tgroupToDelete = \"\";\n\n\n\n\tdropdownList = [];\n\tselectedItems = [];\n\tdropdownSettings = {};\n\n\n\n\t@ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n\t@ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n\n\tprevious: string;\n\tsearchText: string = '';\n\n \tconstructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService) { }\n\n \t@HostListener('input') oninput() {\n\t\tif(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n\t\t this.searchItems();\n\t\t}\n\t\tif(event && event['target'] !== undefined && event.target[\"name\"] !== undefined && event.target[\"name\"] == \"newGroupName\"){\n\t if(this.modalEditMode){\n\t if(this.newGroupName == this.groupToUpdate[\"name\"]){\n\t console.log('hit')\n\t this.isEditMode(true)\n\t }else{\n\t this.isNowCopyMode();\n\t }\n\t }\n\t }\n\t}\n\n\tngOnInit() {\n\t\tthis.getGroups()\n\t\tthis.getListOfUsers()\n\t\tthis.getListOfPolicies()\n\t\tthis.isEditMode(false)\n\n\t\tthis.dropdownList = [\n\t\t {\"id\":1,\"itemName\":\"wait! i'm getting policies ASAP\"}\n\t ];\n\n\t this.dropdownSettings = {\n\t\t\tsingleSelection: false,\n\t\t\ttext:\"Select Members\",\n\t\t\tselectAllText:'Select All',\n\t\t\tunSelectAllText:'UnSelect All',\n\t\t\tenableSearchFilter: true\n\t\t};\n\t}\n\n\tonItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedItems);\n\t}\n\tOnItemDeSelect(item:any){\n\t\tthis.usersToRemove.push(item[\"itemName\"])\n\t console.log(item);\n\t console.log(this.selectedItems);\n\t}\n\tonSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonDeSelectAll(items: any){\n\n\t\t\tfor (let i = 0; i < this.selectedItems.length; i++) {\n\t\t\t\tthis.usersToRemove.push(this.selectedItems[i][\"itemName\"])\n\t\t\t}\n\n\t this.selectedItems = [];\n\t}\n\n\tprivate searchItems() {\n\t\tconst prev = this.mdbTable.getDataSource();\n\n\t\tif (!this.searchText) {\n\t\t this.mdbTable.setDataSource(this.previous);\n\t\t this.groups = this.mdbTable.getDataSource();\n\t\t}\n\n\t\tif (this.searchText) {\n\t\t this.groups = this.mdbTable.searchLocalDataBy(this.searchText);\n\t\t this.mdbTable.setDataSource(prev);\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n\t this.mdbTablePagination.calculateFirstItemIndex();\n\t this.mdbTablePagination.calculateLastItemIndex();\n\t this.cdRef.detectChanges();\n\t}\n\n\tprivate isEditMode(state){\n\t\tthis.modalEditMode = state;\n\t\tif(state){\n\t\t this.modalCreateEditTitle = \"Edit group\"\n\t\t this.modalCreateEditButtonText = \"Update\"\n\t\t}else{\n\t\t this.modalCreateEditTitle = \"Create group\"\n\t\t this.modalCreateEditButtonText = \"Create\"\n\t\t}\n\t}\n\n\tprivate isNowCopyMode(){\n\t\tthis.modalCreateEditTitle = \"Copy group\"\n\t\tthis.modalCreateEditButtonText = \"Copy\"\n\t}\n\n\tprivate commaToBr(arr) {\n\t\t// console.log(arr)\n\t var str = arr.join('\\n\\r');\n\t return str;\n\t}\n\n\tpublic b64unpack(str){\n\t// console.log(JSON.parse(atob(str)))\n\t\treturn JSON.parse(atob(str));\n\t}\n\n\tprivate rawPrepare(str){\n\t\tconsole.log(this.rawPolicies[str])\n\t\tthis.rawView = this.b64unpack(this.rawPolicies[str]);\n\t}\n\n\n\tprivate getGroups(){\n\t\tthis.groups = {};\n\t\tthis.groupsWithMembers = [];\n\t\tthis.previous = \"\";\n\t\tthis.apiService.getGroups().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t console.log(data);\n\t\t if(data!==null){\n\t\t this.groups = data;\n\t\t for (var i = 0; i < this.objectKeys(data).length; i++) {\n\t\t\t\t\tlet tempGroupName = data[i]\n\t\t\t\t\tthis.apiService.getGroupDescription(tempGroupName).subscribe((data)=>{\n\t\t\t\t\t\tif(data!==null){\n\t\t\t\t\t\t\tthis.groupsWithMembers.push(data)\n\t\t\t\t\t\t\tthis.mdbTable.setDataSource(this.groupsWithMembers);\n\t\t \t\t\t\t\tthis.previous = this.mdbTable.getDataSource();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\tconsole.log(this.groupsWithMembers)\n\t\t\tthis.groups = this.groupsWithMembers;\n\t\t }\n\n\n\t\t});\n\t}\n\tprivate getListOfUsers(){\n\t\tthis.apiService.getUsers().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t\tif(data!==null){\n\t\t\t\tthis.dropdownList = Object.entries(data).map((e) => ( { \"id\":e[0],\"itemName\":e[0] } ));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getGroupDescription(group){\n\t\tthis.isEditMode(true);\n\t\tconsole.log(group)\n\t\tthis.apiService.getGroupDescription(group).subscribe((data)=>{\n\t\t\tif(data!==null){\n\t\t\t\tconsole.log(data)\n\t\t\t\tthis.groupToUpdate = data;\n\t\t\t\tthis.newGroupName = data[\"name\"]\n\t\t\t\tthis.newGroupPolicy = data[\"policy\"]\n\t\t\t\tthis.newGroupStatus = data[\"status\"]\n\t\t\t\tfor (var i = 0; i < data[\"members\"].length; i++) {\n\t\t\t\t\tvar tempMember = data[\"members\"][i];\n\t\t\t\t\tthis.selectedItems.push({\"id\":tempMember,\"itemName\":tempMember})\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getListOfPolicies(){\n\t\tthis.apiService.getPolicies().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t this.policies = Object.keys(data);\n\t\t this.rawPolicies = data;\n\t\t});\n\t}\n\n\tprivate resetForm(){\n\t\tthis.newGroupName = \"\";\n\t\tthis.selectedItems = [];\n\t\tthis.newGroupPolicy = \"\";\n\t\tthis.newGroupStatus = \"\";\n\t}\n\n\tprivate markGroupToDelete(group){\n\t\tconsole.log(\"GROUP TO DELETE\", group);\n\n\t\tthis.groupToDelete = group\n\t}\n\n\tprivate deleteGroup(){\n\t\tconsole.log(\"GROUP TO DELETE >>>\", this.groupToDelete);\n\n\t\tthis.apiService.updateMembersGroup(this.groupToDelete,[],\"true\").subscribe((data)=>{\n\t\t\t this.apiService.validateAuthInResponse(data)\n\t if(data[\"Success\"]){\n\t this.toastr.success('Group: '+this.newGroupName+' has been removed', 'Success');\n\t this.usersToRemove = [];\n\t\t\t\t\tthis.refreshList();\n\t\t\t\t\tthis.groupToDelete = \"\";\n\t }else{\n\t this.toastr.error(JSON.stringify(data), 'Error while removing group');\n\t\t\t\t\tthis.refreshList();\n\t\t\t\t\tthis.groupToDelete = \"\";\n\t }\n\t });\n\t}\n\n\tprivate wipeGroupMembers(){\n\n\t\tthis.apiService.updateMembersGroup(this.newGroupName,this.usersToRemove,\"true\").subscribe((data)=>{\n\t\t\t this.apiService.validateAuthInResponse(data)\n\t if(data[\"Success\"]){\n\t this.toastr.success('Group: '+this.newGroupName+' members has been removed', 'Success');\n\t this.usersToRemove = [];\n\t }else{\n\t this.toastr.error(JSON.stringify(data), 'Error while removing members from group');\n\t }\n\t });\n\t}\n\n\tprivate updatePolicy(){\n\t\tif(this.newGroupPolicy !== null && this.newGroupPolicy != \"\"){\n\t \tthis.apiService.setPolicy(this.newGroupPolicy,this.newGroupName,\"true\").subscribe((data)=>{\n\t\t\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' policy has been set to '+this.newGroupPolicy, 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while setting policy to group');\n\t\t }\n\t\t });\n\t }\n\t}\n\n\tprivate updateStatus(){\n\t\tif(this.newGroupStatus !== null && this.newGroupStatus != \"\"){\n\t \tthis.apiService.setStatusGroup(this.newGroupName,this.newGroupStatus).subscribe((data)=>{\n\t\t\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' status has been set to '+this.newGroupStatus, 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while setting status to group');\n\t\t }\n\t\t });\n\t }\n\t}\n\n\tprivate refreshList(){\n\t\tthis.updatePolicy();\n\t\tthis.updateStatus();\n\t\tthis.getGroups();\n\t}\n\n\tprivate createGroup(){\n\t\tconsole.log(\"CREATE GROUP CALLED\")\n\t\tlet newMembers = []\n\t\tfor (var i = 0; i < this.selectedItems.length; i++) {\n\t\t\tnewMembers.push(this.selectedItems[i].itemName)\n\t\t}\n\n\t\t//remove users from group\n\t\tconsole.log(\"grouptoUpdate\",this.groupToUpdate);\n\n\t\tif(this.groupToUpdate!==null && this.groupToUpdate!=\"\" && this.groupToUpdate){\n\t\t\tif(this.usersToRemove.length > 0){\n\t\t\t\tthis.wipeGroupMembers()\n\t\t\t}\n\t\t}\n\n\t\t//add all new users to group\n\t\tif(newMembers.length > 0){\n\t\t\tthis.apiService.updateMembersGroup(this.newGroupName,newMembers,\"false\").subscribe((data)=>{\n\t\t\t\t this.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' has been created', 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while creating group');\n\t\t }\n\t\t this.refreshList();\n\t\t });\n\t\t}else{\n\t\t\tthis.refreshList();\n\t\t}\n this.isEditMode(false);\n this.groupToUpdate = {};\n\t}\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(items: any[], searchPolicy: string): any[] {\n\n if (!items) {\n return [];\n }\n if (!searchPolicy) {\n return items;\n }\n searchPolicy = searchPolicy.toLocaleLowerCase();\n\n return items.filter(it => {\n return it.toLocaleLowerCase().includes(searchPolicy);\n });\n }\n\n}\n","export default \"
\\n
\\n
\\n

Buckets

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\t\\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n \\n\\t \\n\\t \\t \\n\\t \\n\\t \\n \\n \\n \\n \\n \\n\\t
NameTagsCreation DateSizeQuotaEventOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n {{buckets[b].name}}\\n   \\n {{buckets[b].policy}}\\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n 0\\\">\\n
    \\n
  • {{tag}}: {{buckets[b].tags[tag]}}
  • \\n
\\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{buckets[b].info.creationDate | date : \\\"dd/MM/yy HH:mm:ss\\\" }}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\\\">\\n \\n {{(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)+'').length > 3 ? math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024/1024)+' Gb' : isNaN(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)) ? '–' : math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024) +' Mb'}}\\n \\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\\\">\\n \\n {{buckets[b].quota?.quotatype}}\\n {{buckets[b].quota?.quotatype}}\\n \\n 0\\\" mdbTooltip=\\\"{{buckets[b].quota?.quota}} bytes\\\" placement=\\\"top\\\">\\n {{(math.round(buckets[b].quota?.quota/1024/1024)+'').length > 3 ? math.round(buckets[b].quota?.quota/1024/1024/1024)+' Gb' : isNaN(math.round(buckets[b].quota?.quota/1024/1024)) ? '–' : math.round(buckets[b].quota?.quota/1024/1024) +' Mb'}}\\n \\n \\n ∞\\n \\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && serviceInfo?.sqsARN\\\">\\n \\n Lambda:\\n \\n {{c.Lambda}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n \\n Topic:\\n \\n {{c.Topic}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n \\n Queue:\\n \\n {{c.Queue}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t \\t \\t \\n\\t \\t \\t \\n\\t \\t \\t \\n\\t \\t \\t \\n \\n \\n\\t \\t
\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Bucket Lifecycyle

\\n
\\n
\\n
\\n
\\n
\\n This bucket already have a lifecycyle policy, you can export it as JSON by clicking on \\\"dowload icon\\\" >\\n \\n
\\n Or override it by upload a new lifecycle policy.\\n
\\n
\\n Lifecycle policy is structrured xml file. You can use examples from Minio\\n documentation. Or use an AWS S3 documentation\\n Object Lifecycle Management\\n
\\n
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button bucket {{bucketToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket Notifications

\\n
\\n
\\n Are you shure?
After you click on \\\"remove\\\" button bucket {{bucketToRemoveNotifications}} notifications will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket Quota Limits

\\n
\\n
\\n Are you shure?
After you click on \\\"remove\\\" button quota for bucket {{bucketToRemoveQuota}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Encryption

\\n
\\n
\\n Are you shure?
After you click on \\\"remove\\\" button encryption for bucket {{bucketToRemoveEncryption}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Create Bucket

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n You can pass multiple names with \\\",\\\" delimiter\\n
\\n
Policy
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
Encryption
\\n

\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
Tags
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\t\\t\\t\\t
\\n
\\n {{tag}}: {{newBucketTagsList[tag]}}\\n
\\n
Quota
\\n \\n\\n
\\n \\n \\t\\t\\t\\t\\t\\t\\t
\\n\\n
\\n \\n In \\\"fifo\\\" mode - old data automatically will be removed when you reach quota limit.
\\n In \\\"hard\\\" mode - you can't add new data to bucket if quota limit reached.\\n
\\n\\n
\\n \\t\\t\\t\\t\\t\\n
\\n
Bytes
\\n
\\n
\\n
\\n
\\n
Events section
\\n

\\n
\\n \\t\\t\\t\\t\\t\\t\\t\\t\\t\\n \\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Update Bucket

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
Policy
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
Encryption
\\n

\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
Tags
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\t\\t\\t\\t
\\n
\\n {{tag}}: {{newBucketTagsList[tag]}}\\n
\\n
\\n
Quota section
\\n \\n
\\n \\n \\t\\t\\t\\t\\t\\t\\t
\\n\\n
\\n \\n In \\\"fifo\\\" mode - old data automatically will be removed when you reach quota limit.
\\n In \\\"hard\\\" mode - you can't add new data to bucket if quota limit reached.\\n
\\n\\n
\\n \\t\\t\\t\\t\\t\\n
\\n
Bytes
\\n
\\n
\\n
\\n
\\n
Events section
\\n

\\n
\\n \\t\\t\\t\\t\\t\\t\\t\\t\\t\\n \\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\";","//loader.interceptor.ts\nimport { Component, OnInit } from '@angular/core';\nimport { LoaderService } from '../loader.service';\n\n@Component({\nselector: 'app-loading',\ntemplateUrl: './loader.component.html',\nstyleUrls: ['./loader.component.scss']\n})\nexport class LoaderComponent implements OnInit {\n\nloading: boolean;\nerror: boolean;\nconstructor(private loaderService: LoaderService) {\n this.loaderService.isLoading.subscribe((v) => {\n this.loading = v;\n this.error = this.loaderService.isError;\n });\n}\nngOnInit() {\n}\n\n}\n","export default \"
\\n\\t
\\n\\t\\t
\\n\\t\\t

Policies

\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t     \\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t
NameActionPrincipalEffectResourceConditionsOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectKeys(policies[pol])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • {{action}}
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t{{policies[pol].Statement.Principal}}\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • {{st.Effect}}
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • {{resource}}
    • \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
          \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t \\n\\t\\t \\t\\t \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Policy

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button policy {{policyToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Upload Policy

\\n
\\n
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Policy

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

{{modalCreateEditTitle}}

Switch to interface
\\n
\\n
\\n \\t\\n \\t\\t
\\n\\t\\t\\t\\t\\t
 
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t \\t
\\n In Edit mode you can make a copy of policy - Just rename it!\\n
\\n\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
0\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
0\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t Principal\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
Buckets section
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t arn:aws:s3:::\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t /\\\" [(ngModel)]=\\\"newPolicy.bucket\\\" aria-label=\\\"Recipient's username\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t aria-describedby=\\\"s3-prefix\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
BucketOptions
{{bst}}
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
Conditions section
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
Condition and options
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}  \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
 
\\n\\t\\t\\t\\t\\t
\\n\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t
EffectActionResourceConditionsOptions
{{st.Effect}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{action}}
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{resource}}
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t  \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n \\n
\\n \\n
\\n
\\n
\\n\";","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { ApiService } from '../api.service';\nimport { FormControl, FormGroup, Validators, ReactiveFormsModule } from \"@angular/forms\";\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n@Component({\n selector: 'app-users',\n templateUrl: './users.component.html',\n styleUrls: ['./users.component.scss']\n})\nexport class UsersComponent implements OnInit, AfterViewInit {\n validatingForm: FormGroup;\n updateUser: FormGroup;\n users = {};\n usersRaw = {};\n userToDelete;\n userToUpdate;\n objectKeys = Object.keys;\n objectValues = Object.values;\n jsn = JSON;\n policies;\n updateStatusValues = ['enabled','disabled'];\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n }\n\n ngOnInit() {\n \tthis.getListOfUsers()\n \tthis.getListOfPolicies()\n this.resetForm()\n this.updateUserFrom()\n }\n\n searchItems() {\n console.log(this.searchText)\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.users = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.users = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n get newUserAccess() {\n\treturn this.validatingForm.get('newUserAccess');\n }\n\n get newUserSecret() {\n\treturn this.validatingForm.get('newUserSecret');\n }\n\n get newUserPolicy() {\n\treturn this.validatingForm.get('newUserPolicy');\n }\n\n private generatePassword(length) {\n var charset = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n var retVal = \"\";\n for (var i = 0, n = charset.length; i < length; ++i) {\n retVal += charset.charAt(Math.floor(Math.random() * n));\n }\n\n return retVal;\n }\n\n get accessKeyUpdate() {\n return this.updateUser.get('accessKeyUpdate');\n }\n\n get secretKeyUpdate() {\n return this.updateUser.get('secretKeyUpdate');\n }\n\n get policyUpdate() {\n return this.updateUser.get('policyUpdate');\n }\n\n get statusUpdate() {\n return this.updateUser.get('statusUpdate');\n }\n\n private updateUserFrom(){\n this.updateUser = new FormGroup({\n accessKeyUpdate: new FormControl({value: '', disabled: true}, Validators.required),\n secretKeyUpdate: new FormControl(''),\n policyUpdate: new FormControl('', Validators.required),\n statusUpdate: new FormControl('', Validators.required)\n });\n }\n\n private resetForm(){\n \tthis.validatingForm = new FormGroup({\n newUserAccess: new FormControl(this.generatePassword(16), Validators.minLength(5)),\n newUserSecret: new FormControl(this.generatePassword(24), Validators.minLength(10)),\n newUserPolicy: new FormControl('',Validators.minLength(0))\n });\n }\n\n private getListOfUsers(){\n \tthis.apiService.getUsers().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data)\n this.usersRaw = data;\n const arrayOfUsers = Object.entries(data).map((e) => ( { [e[0]]: e[1] } ));\n this.users = arrayOfUsers;\n this.mdbTable.setDataSource(arrayOfUsers);\n console.log(arrayOfUsers)\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n\n private getListOfPolicies(){\n \tthis.apiService.getPolicies().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.policies = Object.keys(data);\n });\n }\n\n private createUser(){\n \tvar userAccess = this.newUserAccess.value;\n \tvar userSecret = this.newUserSecret.value;\n \tvar userPolicy = this.newUserPolicy.value;\n\n \tconsole.log(userPolicy)\n\n \tif(userPolicy!=''){\n \t\tthis.apiService.addUserExtended(userAccess,userSecret,userPolicy).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n\t console.log(data);\n\t this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+userAccess+' with policy '+userPolicy+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating user');\n }\n\t });\n \t}else{\n \t\tthis.apiService.addUser(userAccess,userSecret).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n\t console.log(data);\n\t this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+userAccess+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating user');\n }\n\t });\n \t}\n }\n\n private setStatusUser(accessKey,status){\n \tif(status == 'enabled'){\n \t\tstatus = 'disabled'\n \t}else{\n \t\tstatus = 'enabled'\n \t}\n \tthis.apiService.setStatusUser(accessKey,status).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('User: '+accessKey+' status has changed to '+status, 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while changing state for user');\n }\n this.getListOfUsers();\n });\n }\n\n private deleteUserPrepare(accessKey){\n \tthis.userToDelete = accessKey\n }\n\n private updateUserPrepare(accessKey){\n this.userToUpdate = accessKey\n this.updateUser.patchValue({'accessKeyUpdate': accessKey});\n if(this.usersRaw[accessKey]['policyName']){\n this.updateUser.patchValue({'policyUpdate': this.usersRaw[accessKey]['policyName']});\n }\n if(this.usersRaw[accessKey]['status']){\n this.updateUser.patchValue({'statusUpdate': this.usersRaw[accessKey]['status']});\n }\n console.log(this.usersRaw[accessKey])\n }\n\n private updateGenNewPassword(){\n this.updateUser.patchValue({'secretKeyUpdate': this.generatePassword(24)});\n }\n\n private updateUserSave(){\n var updatedSecret = this.updateUser.value.secretKeyUpdate;\n var updatedPolicy = this.updateUser.value.policyUpdate;\n var updatedStatus = this.updateUser.value.statusUpdate;\n\n this.apiService.updateUser(this.userToUpdate,updatedSecret,updatedPolicy,updatedStatus).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+this.userToUpdate+' has been updated', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while updating user');\n }\n });\n }\n\n\n private deleteUser(){\n \tthis.apiService.deleteUser(this.userToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('User: '+this.userToDelete+' has been deleted', 'Success');\n }\n this.updateUserFrom();\n this.getListOfUsers();\n });\n }\n\n}\n","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'app-policies',\n templateUrl: './policies.component.html',\n styleUrls: ['./policies.component.scss']\n})\nexport class PoliciesComponent implements OnInit {\n objectKeys = Object.keys;\n objectValues = Object.values;\n policies = {};\n policiesRaw = {};\n b64decode;\n rawView = '';\n policyToDelete;\n policyToUpdate;\n modalEditMode;\n jsn = JSON;\n uploadPolicyName;\n uploadPolicyFile;\n uploadPolicyFileName;\n downloadJsonHref;\n modalCreateEditTitle;\n modalCreateEditButtonText;\n\n dropdownActionList = [];\n dropdownAdminList = [];\n dropdownConditionList = [];\n dropdownConditionKeyList = [];\n\n selectedActions = [];\n selectedAdmins = [];\n selectedCondition = [];\n selectedConditionKey = [];\n\n dropdownActionSettings = {};\n dropdownAdminSettings = {};\n dropdownConditionSettings = {};\n dropdownConditionKeySettings = {};\n\n advancedInterface = false;\n advancedInterfaceLabel = \"advanced\"\n\n newPolicy = {\n \tname:\"\",\n \teffect:\"allow\",\n \tbucket:\"\",\n };\n\n newPolicyRaw = {\n \tVersion:\"\",\n \tStatement: []\n }\n\n newStatement = {\n Action: [],\n Effect: \"\",\n Resource: [],\n Condition: {},\n Principal: \"\"\n }\n\n newConditionValue = \"\"\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService, private sanitizer: DomSanitizer) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n if(event && event['target'] !== undefined && event.target[\"name\"] !== undefined && event.target[\"name\"] == \"newPolicyName\"){\n if(this.modalEditMode){\n if(this.newPolicy.name == this.policyToUpdate){\n this.isEditMode(true)\n }else{\n this.isNowCopyMode();\n }\n }\n }\n\n }\n\n @ViewChild('uploadPolicyFile', { static: true })\n uploadFileInput: any;\n\n ngOnInit() {\n \tthis.getPolicies()\n\n\n \tthis.dropdownActionList = [\n {\"id\":1,\"itemName\":\"s3:AbortMultipartUpload\"},\n {\"id\":2,\"itemName\":\"s3:CreateBucket\"},\n {\"id\":3,\"itemName\":\"s3:DeleteBucket\"},\n {\"id\":4,\"itemName\":\"s3:ForceDeleteBucket\"},\n {\"id\":5,\"itemName\":\"s3:DeleteBucketPolicy\"},\n {\"id\":6,\"itemName\":\"s3:DeleteObject\"},\n {\"id\":7,\"itemName\":\"s3:GetBucketLocation\"},\n {\"id\":8,\"itemName\":\"s3:GetBucketNotification\"},\n {\"id\":9,\"itemName\":\"s3:GetBucketPolicy\"},\n {\"id\":10,\"itemName\":\"s3:GetObject\"},\n {\"id\":11,\"itemName\":\"s3:HeadBucket\"},\n {\"id\":12,\"itemName\":\"s3:ListAllMyBuckets\"},\n {\"id\":13,\"itemName\":\"s3:ListBucket\"},\n {\"id\":14,\"itemName\":\"s3:ListBucketVersions\"},\n {\"id\":15,\"itemName\":\"s3:ListBucketMultipartUploads\"},\n {\"id\":16,\"itemName\":\"s3:ListenNotification\"},\n {\"id\":17,\"itemName\":\"s3:ListenBucketNotification\"},\n {\"id\":18,\"itemName\":\"s3:ListMultipartUploadParts\"},\n {\"id\":19,\"itemName\":\"s3:PutLifecycleConfiguration\"},\n {\"id\":20,\"itemName\":\"s3:GetLifecycleConfiguration\"},\n {\"id\":21,\"itemName\":\"s3:PutBucketNotification\"},\n {\"id\":22,\"itemName\":\"s3:PutBucketPolicy\"},\n {\"id\":23,\"itemName\":\"s3:PutObject\"},\n {\"id\":24,\"itemName\":\"s3:DeleteObjectVersion\"},\n {\"id\":25,\"itemName\":\"s3:DeleteObjectVersionTagging\"},\n {\"id\":26,\"itemName\":\"s3:GetObjectVersion\"},\n {\"id\":27,\"itemName\":\"s3:GetObjectVersionTagging\"},\n {\"id\":28,\"itemName\":\"s3:PutObjectVersionTagging\"},\n {\"id\":29,\"itemName\":\"s3:BypassGovernanceRetention\"},\n {\"id\":30,\"itemName\":\"s3:PutObjectRetention\"},\n {\"id\":31,\"itemName\":\"s3:GetObjectRetention\"},\n {\"id\":32,\"itemName\":\"s3:GetObjectLegalHold\"},\n {\"id\":33,\"itemName\":\"s3:PutObjectLegalHold\"},\n {\"id\":34,\"itemName\":\"s3:GetBucketObjectLockConfiguration\"},\n {\"id\":35,\"itemName\":\"s3:PutBucketObjectLockConfiguration\"},\n {\"id\":36,\"itemName\":\"s3:GetBucketTagging\"},\n {\"id\":37,\"itemName\":\"s3:PutBucketTagging\"},\n {\"id\":38,\"itemName\":\"s3:GetObjectTagging\"},\n {\"id\":39,\"itemName\":\"s3:PutObjectTagging\"},\n {\"id\":40,\"itemName\":\"s3:DeleteObjectTagging\"},\n {\"id\":41,\"itemName\":\"s3:PutEncryptionConfiguration\"},\n {\"id\":42,\"itemName\":\"s3:GetEncryptionConfiguration\"},\n {\"id\":43,\"itemName\":\"s3:PutBucketVersioning\"},\n {\"id\":44,\"itemName\":\"s3:GetBucketVersioning\"},\n {\"id\":45,\"itemName\":\"s3:GetReplicationConfiguration\"},\n {\"id\":46,\"itemName\":\"s3:PutReplicationConfiguration\"},\n {\"id\":47,\"itemName\":\"s3:ReplicateObject\"},\n {\"id\":48,\"itemName\":\"s3:ReplicateDelete\"},\n {\"id\":49,\"itemName\":\"s3:ReplicateTags\"},\n {\"id\":50,\"itemName\":\"s3:GetObjectVersionForReplication\"}\n ];\n\n this.dropdownActionSettings = {\n \t\tsingleSelection: false,\n \t\ttext:\"Select Actions\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n\n this.dropdownAdminList = [\n {\"id\":1,\"itemName\":\"admin:ConfigUpdate\"},\n {\"id\":2,\"itemName\":\"admin:CreateUser\"},\n {\"id\":3,\"itemName\":\"admin:DeleteUser\"},\n {\"id\":4,\"itemName\":\"admin:ListUsers\"},\n {\"id\":5,\"itemName\":\"admin:EnableUser\"},\n {\"id\":6,\"itemName\":\"admin:DisableUser\"},\n {\"id\":7,\"itemName\":\"admin:GetUser\"},\n {\"id\":8,\"itemName\":\"admin:ServerInfo\"},\n {\"id\":9,\"itemName\":\"admin:ServerUpdate\"},\n {\"id\":10,\"itemName\":\"admin:StorageInfo\"},\n {\"id\":11,\"itemName\":\"admin:DataUsageInfo\"},\n {\"id\":12,\"itemName\":\"admin:TopLocks\"},\n {\"id\":13,\"itemName\":\"admin:OBDInfo\"},\n {\"id\":14,\"itemName\":\"admin:Profiling\"},\n {\"id\":15,\"itemName\":\"admin:ServerTrace\"},\n {\"id\":16,\"itemName\":\"admin:ConsoleLog\"},\n {\"id\":17,\"itemName\":\"admin:KMSKeyStatus\"},\n {\"id\":18,\"itemName\":\"admin:AddUserToGroup\"},\n {\"id\":19,\"itemName\":\"admin:RemoveUserFromGroup\"},\n {\"id\":20,\"itemName\":\"admin:GetGroup\"},\n {\"id\":21,\"itemName\":\"admin:ListGroups\"},\n {\"id\":22,\"itemName\":\"admin:EnableGroup\"},\n {\"id\":23,\"itemName\":\"admin:DisableGroup\"},\n {\"id\":24,\"itemName\":\"admin:CreatePolicy\"},\n {\"id\":25,\"itemName\":\"admin:DeletePolicy\"},\n {\"id\":26,\"itemName\":\"admin:GetPolicy\"},\n {\"id\":27,\"itemName\":\"admin:AttachUserOrGroupPolicy\"},\n {\"id\":28,\"itemName\":\"admin:ListUserPolicies\"}\n ];\n\n this.dropdownAdminSettings = {\n singleSelection: false,\n text:\"Select Admin actions for statement\",\n selectAllText:'Select All',\n unSelectAllText:'UnSelect All',\n enableSearchFilter: true\n };\n\n \tthis.dropdownConditionList = [\n {\"id\":1,\"itemName\":\"ArnEquals\"},\n {\"id\":2,\"itemName\":\"ArnEqualsIfExists\"},\n {\"id\":3,\"itemName\":\"ArnLike\"},\n {\"id\":4,\"itemName\":\"ArnLikeIfExists\"},\n {\"id\":5,\"itemName\":\"ArnNotEquals\"},\n {\"id\":6,\"itemName\":\"ArnNotEqualsIfExists\"},\n {\"id\":7,\"itemName\":\"ArnNotLike\"},\n {\"id\":8,\"itemName\":\"ArnNotLikeIfExists\"},\n {\"id\":9,\"itemName\":\"BinaryEquals\"},\n {\"id\":10,\"itemName\":\"BinaryEqualsIfExists\"},\n {\"id\":11,\"itemName\":\"BinaryNotEquals\"},\n {\"id\":12,\"itemName\":\"BinaryNotEqualsIfExists\"},\n {\"id\":13,\"itemName\":\"Bool\"},\n {\"id\":14,\"itemName\":\"BoolIfExists\"},\n {\"id\":15,\"itemName\":\"DateEquals\"},\n {\"id\":16,\"itemName\":\"DateEqualsIfExists\"},\n {\"id\":17,\"itemName\":\"DateGreaterThan\"},\n {\"id\":18,\"itemName\":\"DateGreaterThanEquals\"},\n {\"id\":19,\"itemName\":\"DateGreaterThanEqualsIfExists\"},\n {\"id\":20,\"itemName\":\"DateGreaterThanIfExists\"},\n {\"id\":21,\"itemName\":\"DateLessThan\"},\n {\"id\":22,\"itemName\":\"DateLessThanEquals\"},\n {\"id\":23,\"itemName\":\"DateLessThanEqualsIfExists\"},\n {\"id\":24,\"itemName\":\"DateLessThanIfExists\"},\n {\"id\":25,\"itemName\":\"DateNotEquals\"},\n {\"id\":26,\"itemName\":\"DateNotEqualsIfExists\"},\n {\"id\":27,\"itemName\":\"IpAddress\"},\n {\"id\":28,\"itemName\":\"IpAddressIfExists\"},\n {\"id\":29,\"itemName\":\"NotIpAddress\"},\n {\"id\":30,\"itemName\":\"NotIpAddressIfExists\"},\n {\"id\":31,\"itemName\":\"Null\"},\n {\"id\":32,\"itemName\":\"NumericEquals\"},\n {\"id\":33,\"itemName\":\"NumericEqualsIfExists\"},\n {\"id\":34,\"itemName\":\"NumericGreaterThan\"},\n {\"id\":35,\"itemName\":\"NumericGreaterThanEquals\"},\n {\"id\":36,\"itemName\":\"NumericGreaterThanEqualsIfExists\"},\n {\"id\":37,\"itemName\":\"NumericGreaterThanIfExists\"},\n {\"id\":38,\"itemName\":\"NumericLessThan\"},\n {\"id\":39,\"itemName\":\"NumericLessThanEquals\"},\n {\"id\":40,\"itemName\":\"NumericLessThanEqualsIfExists\"},\n {\"id\":41,\"itemName\":\"NumericLessThanIfExists\"},\n {\"id\":42,\"itemName\":\"NumericNotEquals\"},\n {\"id\":43,\"itemName\":\"NumericNotEqualsIfExists\"},\n {\"id\":44,\"itemName\":\"StringEquals\"},\n {\"id\":45,\"itemName\":\"StringEqualsIfExists\"},\n {\"id\":46,\"itemName\":\"StringEqualsIgnoreCase\"},\n {\"id\":47,\"itemName\":\"StringEqualsIgnoreCaseIfExists\"},\n {\"id\":48,\"itemName\":\"StringLike\"},\n {\"id\":49,\"itemName\":\"StringLikeIfExists\"},\n {\"id\":50,\"itemName\":\"StringNotEquals\"},\n {\"id\":51,\"itemName\":\"StringNotEqualsIfExists\"},\n {\"id\":52,\"itemName\":\"StringNotEqualsIgnoreCase\"},\n {\"id\":53,\"itemName\":\"StringNotEqualsIgnoreCaseIfExists\"},\n {\"id\":54,\"itemName\":\"StringNotLike\"},\n {\"id\":55,\"itemName\":\"StringNotLikeIfExists\"}\n ];\n\n this.dropdownConditionSettings = {\n \t\tsingleSelection: true,\n \t\ttext:\"Select Condition\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n\n \tthis.dropdownConditionKeyList = [\n {\"id\":1,\"itemName\":\"aws:CurrentTime\"},\n {\"id\":2,\"itemName\":\"aws:EpochTime\"},\n {\"id\":3,\"itemName\":\"aws:MultiFactorAuthAge\"},\n {\"id\":4,\"itemName\":\"aws:MultiFactorAuthPresent\"},\n {\"id\":5,\"itemName\":\"aws:PrincipalArn\"},\n {\"id\":6,\"itemName\":\"aws:PrincipalOrgID\"},\n {\"id\":7,\"itemName\":\"aws:PrincipalTag/${TagKey}\"},\n {\"id\":8,\"itemName\":\"aws:PrincipalType\"},\n {\"id\":9,\"itemName\":\"aws:Referer\"},\n {\"id\":10,\"itemName\":\"aws:RequestTag/${TagKey}\"},\n {\"id\":11,\"itemName\":\"aws:RequestedRegion\"},\n {\"id\":12,\"itemName\":\"aws:SecureTransport\"},\n {\"id\":13,\"itemName\":\"aws:SourceAccount\"},\n {\"id\":14,\"itemName\":\"aws:SourceArn\"},\n {\"id\":15,\"itemName\":\"aws:SourceIp\"},\n {\"id\":16,\"itemName\":\"aws:SourceVpc\"},\n {\"id\":17,\"itemName\":\"aws:SourceVpce\"},\n {\"id\":18,\"itemName\":\"aws:TagKeys\"},\n {\"id\":19,\"itemName\":\"aws:TokenIssueTime\"},\n {\"id\":20,\"itemName\":\"aws:UserAgent\"},\n {\"id\":21,\"itemName\":\"aws:userid\"},\n {\"id\":22,\"itemName\":\"aws:username\"},\n {\"id\":23,\"itemName\":\"s3:AccessPointNetworkOrigin\"},\n {\"id\":24,\"itemName\":\"s3:DataAccessPointAccount\"},\n {\"id\":25,\"itemName\":\"s3:DataAccessPointArn\"},\n {\"id\":26,\"itemName\":\"s3:ExistingJobOperation\"},\n {\"id\":27,\"itemName\":\"s3:ExistingJobPriority\"},\n {\"id\":28,\"itemName\":\"s3:ExistingObjectTag/\"},\n {\"id\":29,\"itemName\":\"s3:JobSuspendedCause\"},\n {\"id\":30,\"itemName\":\"s3:LocationConstraint\"},\n {\"id\":31,\"itemName\":\"s3:RequestJobOperation\"},\n {\"id\":32,\"itemName\":\"s3:RequestJobPriority\"},\n {\"id\":33,\"itemName\":\"s3:RequestObjectTag/\"},\n {\"id\":34,\"itemName\":\"s3:RequestObjectTagKeys\"},\n {\"id\":35,\"itemName\":\"s3:VersionId\"},\n {\"id\":36,\"itemName\":\"s3:authtype\"},\n {\"id\":37,\"itemName\":\"s3:delimiter\"},\n {\"id\":38,\"itemName\":\"s3:locationconstraint\"},\n {\"id\":39,\"itemName\":\"s3:max-keys\"},\n {\"id\":40,\"itemName\":\"s3:object-lock-legal-hold\"},\n {\"id\":41,\"itemName\":\"s3:object-lock-mode\"},\n {\"id\":42,\"itemName\":\"s3:object-lock-remaining-retention-days\"},\n {\"id\":43,\"itemName\":\"s3:object-lock-retain-until-date\"},\n {\"id\":44,\"itemName\":\"s3:prefix\"},\n {\"id\":45,\"itemName\":\"s3:signatureage\"},\n {\"id\":46,\"itemName\":\"s3:signatureversion\"},\n {\"id\":47,\"itemName\":\"s3:versionid\"},\n {\"id\":48,\"itemName\":\"s3:x-amz-acl\"},\n {\"id\":49,\"itemName\":\"s3:x-amz-content-sha256\"},\n {\"id\":50,\"itemName\":\"s3:x-amz-copy-source\"},\n {\"id\":51,\"itemName\":\"s3:x-amz-grant-full-control\"},\n {\"id\":52,\"itemName\":\"s3:x-amz-grant-read\"},\n {\"id\":53,\"itemName\":\"s3:x-amz-grant-read-acp\"},\n {\"id\":54,\"itemName\":\"s3:x-amz-grant-write\"},\n {\"id\":55,\"itemName\":\"s3:x-amz-grant-write-acp\"},\n {\"id\":56,\"itemName\":\"s3:x-amz-metadata-directive\"},\n {\"id\":57,\"itemName\":\"s3:x-amz-server-side-encryption\"},\n {\"id\":58,\"itemName\":\"s3:x-amz-server-side-encryption-aws-kms-key-id\"},\n {\"id\":59,\"itemName\":\"s3:x-amz-storage-class\"},\n {\"id\":60,\"itemName\":\"s3:x-amz-website-redirect-location\"}\n ];\n\n this.dropdownConditionKeySettings = {\n \t\tsingleSelection: true,\n \t\ttext:\"Select Condition Key\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n }\n\n switchAdvanced(){\n if(this.advancedInterface){\n this.advancedInterface = false;\n this.advancedInterfaceLabel = \"Advanced\"\n }else{\n this.advancedInterface = true;\n this.advancedInterfaceLabel = \"Basic\"\n }\n }\n\n\tonActionItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedActions);\n\t}\n\tonActionItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedActions);\n\t}\n\tonActionSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonActionDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n\tonAdminItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedAdmins);\n\t}\n\tonAdminItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedAdmins);\n\t}\n\tonAdminSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonAdminDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n\n //condition select actions\n onConditionItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedCondition);\n\t}\n\tonConditionItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedCondition);\n\t}\n\tonConditionSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonConditionDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n //condition key select actions\n onConditionKeyItemSelect(item:any){\n console.log(item);\n console.log(this.selectedConditionKey);\n }\n onConditionKeyItemDeSelect(item:any){\n console.log(item);\n console.log(this.selectedConditionKey);\n }\n onConditionKeySelectAll(items: any){\n console.log(items);\n }\n onConditionKeyDeSelectAll(items: any){\n console.log(items);\n }\n\n\n searchItems() {\n console.log(this.searchText)\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.policies = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.policies = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n private resetPloicyForm(removeName){\n \tconsole.log(removeName);\n \tthis.selectedActions = [];\n \tthis.selectedAdmins = []\n \tif(!removeName){\n \t\tthis.newPolicy.effect = \"Allow\"\n\t\t this.newPolicy.bucket = \"\"\n \t}else{\n \t\tthis.newPolicy.name = \"\",\n \t\tthis.newPolicy.effect = \"Allow\"\n \t\tthis.newPolicy.bucket = \"\"\n \t}\n\n this.newStatement = {\n Action: [],\n Effect: \"\",\n Resource: [],\n Condition: {},\n Principal: \"\"\n }\n\n }\n\n private getPolicies(){\n \tthis.apiService.getPolicies().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.policiesRaw = data;\n const arrayOfPolicies = Object.entries(data).map((e) => ( { [e[0]]: e[1] } ));\n this.policies = arrayOfPolicies;\n this.mdbTable.setDataSource(arrayOfPolicies);\n console.log(arrayOfPolicies)\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n private deletePolicy(){\n \tthis.apiService.deletePolicy(this.policyToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.getPolicies();\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.policyToDelete+' has been deleted', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while deleting policy');\n }\n });\n }\n\n private downloadPolicy(jsonObj) {\n var theJSON = JSON.stringify(jsonObj);\n console.log(\"theJSON>>>>>>>>>>>\",theJSON);\n var uri = this.sanitizer.bypassSecurityTrustUrl(\"data:text/json;charset=UTF-8,\" + encodeURIComponent(theJSON));\n this.downloadJsonHref = uri;\n }\n\n private rawPrepare(obj){\n \tthis.rawView = obj;\n }\n\n private deletePolicyPrepare(policy){\n \tthis.policyToDelete = policy\n }\n\n private prepareNewPolicyRaw(){\n \tthis.newPolicyRaw = {\n\t \tVersion:\"2012-10-17\",\n\t \tStatement: []\n \t}\n }\n\n private removeCondition(valueId,keyName,conditionName){\n console.log(this.newStatement)\n console.log(valueId,keyName,conditionName)\n this.newStatement.Condition[conditionName][keyName].splice(valueId,1)\n }\n\n private addCondition(){\n console.log(this.selectedCondition[0].itemName)\n console.log(this.selectedConditionKey[0].itemName)\n console.log(this.newConditionValue)\n if(!this.newStatement.Condition){\n this.newStatement.Condition = {}\n }\n if(this.newStatement.Condition[this.selectedCondition[0].itemName]){\n if(this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName]){\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }else{\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName] = []\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }\n }else{\n this.newStatement.Condition[this.selectedCondition[0].itemName] = {}\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName] = []\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }\n\n this.selectedCondition = []\n this.selectedConditionKey = []\n this.newConditionValue = \"\"\n console.log(this.newStatement.Condition)\n }\n\n\n private addStatement(){\n console.log(\"called add statement\");\n\n if(this.selectedActions.length>0){\n \tif(this.selectedActions.length == this.dropdownActionList.length){\n \t\tthis.newStatement.Action.push(\"s3:*\")\n \t}else{\n \t \tfor (var i = 0; i < this.selectedActions.length; i++) {\n \t \t\tthis.newStatement.Action.push(this.selectedActions[i].itemName)\n \t \t}\n \t }\n }else{\n if(this.selectedAdmins.length == this.dropdownAdminList.length){\n \t\tthis.newStatement.Action.push(\"admin:*\")\n \t}else{\n \t \tfor (var i = 0; i < this.selectedAdmins.length; i++) {\n \t \t\tthis.newStatement.Action.push(this.selectedAdmins[i].itemName)\n \t \t}\n \t }\n }\n \tthis.newStatement.Effect = this.newPolicy.effect\n\n \tconsole.log(this.newStatement)\n if(this.newStatement.Condition && Object.entries(this.newStatement.Condition).length === 0 && this.newStatement.Condition.constructor === Object){\n console.log(\"Condition removed cause empty\")\n delete this.newStatement.Condition\n }else{\n if(!this.newStatement.Principal || this.newStatement.Principal == \"\"){\n console.log(\"Principal set to * cause condition not empty\")\n this.newStatement.Principal = \"*\"\n }\n }\n\n \tthis.newPolicyRaw.Statement.push(this.newStatement);\n \tconsole.log(this.newPolicyRaw)\n\n \tthis.resetPloicyForm(false);\n }\n\n private editStatement(i){\n console.log(\"called Edit Statement\");\n\n this.newStatement = this.newPolicyRaw.Statement[i]\n this.newPolicy.effect = this.newPolicyRaw.Statement[i].Effect\n\n switch ((this.newStatement.Action[0]).substring(0, 3)) {\n case \"s3:\":\n if(this.newStatement.Action[0] == \"s3:*\"){\n for (var g = 0; g < this.dropdownActionList.length; g++) {\n this.selectedActions.push({\"id\":this.dropdownActionList[g].id,\"itemName\":this.dropdownActionList[g].itemName})\n }\n }else{\n for (var g = 0; g < this.newStatement.Action.length; g++) {\n this.selectedActions.push({\"id\":g,\"itemName\":this.newStatement.Action[g]})\n }\n }\n break;\n case \"adm\":\n if(this.newStatement.Action[0] == \"admin:*\"){\n for (var g = 0; g < this.dropdownAdminList.length; g++) {\n this.selectedAdmins.push({\"id\":this.dropdownAdminList[g].id,\"itemName\":this.dropdownAdminList[g].itemName})\n }\n }else{\n for (var g = 0; g < this.newStatement.Action.length; g++) {\n this.selectedAdmins.push({\"id\":g,\"itemName\":this.newStatement.Action[g]})\n }\n }\n break;\n }\n\n\n this.newStatement.Action = []\n this.newPolicyRaw.Statement.splice(i,1)\n }\n\n private addBucketStatement(){\n this.newStatement.Resource.push(\"arn:aws:s3:::\"+this.newPolicy.bucket)\n this.newPolicy.bucket = ''\n }\n\n private removeStatement(i){\n \tthis.newPolicyRaw.Statement.splice(i,1)\n }\n\n private removeBucketStatement(i){\n this.newStatement.Resource.splice(i,1)\n }\n\n private fileChanged(e) {\n console.log(\"eventTriggered\");\n\n this.uploadPolicyFile = e.target.files[0];\n this.uploadPolicyFileName = e.target.files[0].name;\n }\n\n private uploadPolicy(){\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n console.log(fileReader.result);\n let policyFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n this.apiService.addPolicy(this.uploadPolicyName,policyFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newPolicy.name+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n this.getPolicies();\n });\n }\n fileReader.readAsText(this.uploadPolicyFile);\n }\n\n private resetUploadForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadPolicyFile;\n this.uploadPolicyName = \"\";\n this.uploadPolicyFileName = \"\";\n }\n\n private createPolicy(){\n \tconsole.log(this.newPolicy, this.newPolicyRaw)\n\n \tlet policyString = JSON.stringify(this.newPolicyRaw);\n\n \tthis.apiService.addPolicy(this.newPolicy.name,policyString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newPolicy.name+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n this.getPolicies();\n });\n }\n\n private isEditMode(state){\n this.modalEditMode = state;\n if(state){\n this.modalCreateEditTitle = \"Edit policy\"\n this.modalCreateEditButtonText = \"Update\"\n }else{\n this.modalCreateEditTitle = \"Build up new policy\"\n this.modalCreateEditButtonText = \"Create\"\n }\n }\n\n private isNowCopyMode(){\n this.modalCreateEditTitle = \"Copy policy\"\n this.modalCreateEditButtonText = \"Copy\"\n }\n\n private updatePolicyPrepare(policy){\n this.policyToUpdate = policy\n this.prepareNewPolicyRaw()\n this.resetPloicyForm(false)\n this.newPolicy.name = policy;\n\n var oldPolicy = this.policiesRaw[policy]\n this.newPolicyRaw.Statement = oldPolicy.Statement;\n }\n\n}\n","export default \"
\\n\\t

Server statistics {{server.endpoint}}

\\n\\t
\\n\\t\\tView Raw JSON 
\\n\\t\\tminio version: {{server.version}}
\\n\\t\\tuptime: {{math.round(server.uptime/60)}} min.
\\n\\t\\tnetwork: {{server.network[server.endpoint]}}\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t

Storage

\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
TotalUsedStatePath
{{math.round((disk.totalspace/1024/1024/1024)*100)/100}} Gb{{math.round((disk.usedspace/1024/1024/1024)*100)/100}} Gb{{disk.state}}{{disk.path}}
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t

Disk usage info

\\n\\t\\t\\t
\\n\\t\\t\\t\\t

Last update: {{diskUsageInfo?.lastUpdate.split('T').join(' ').split('.')[0]}}

\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
Objects countObjects total sizeBuckets count
{{diskUsageInfo.objectsCount}}{{math.round((diskUsageInfo.objectsTotalSize/1024/1024/1024)*100)/100}} Gb{{diskUsageInfo.bucketsCount}}
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
0\\\">\\n\\t\\t
\\n\\t\\t\\t

Bucket sizes chart

\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
0\\\">\\n\\t\\t
\\n\\t \\t

Object sizes histogram

\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Server Info

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwb2xpY2llcy5jb21wb25lbnQuc2NzcyJ9 */\";","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class EnvService {\n\n // The values that are defined here are the default values that can\n // be overridden by env.js\n\n // API url\n public apiBaseUrl = '';\n public apiMultiBackend = false;\n public apiBackends = '';\n\n constructor() {\n }\n\n}\n","export default \"
\\n\\t
\\n\\t
\\n\\t\\t

List of users

\\n\\t
\\n\\t
\\n\\t\\t\\n\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t \\n\\t\\t \\n\\t\\t
\\n\\t
\\n
\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t \\n\\t\\n\\t
User namePolicyStatusAction
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectKeys(users[key])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectValues(users[key])[0].policyName}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t \\n\\t\\t \\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n
\\n
\\n
\\n\\n\\n
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t

Remove User

\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\tAre you shure?
After you click on \\\"Delete\\\" button user {{userToDelete}} will be removed.\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t

Edit User

\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tInput invalid\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tInput valid\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t

\\n\\t\\t\\t\\t\\t\\tGenerate new secret\\n\\t\\t\\t\\t\\t

\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n
\\n\\t
\\n\\t
\\n\\t\\t

Create new user

\\n\\t\\t\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput invalid\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput valid\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput invalid\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput valid\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t

\\n\\t\\t\\t\\t\\tGenerate new access\\\\secret pair\\n\\t\\t\\t

\\n\\t\\t\\t
\\n\\t
\\n\\t \\n\\t
\\n
\\n
\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { UsersComponent } from './users/users.component';\nimport { ServerComponent } from './server/server.component';\nimport { PoliciesComponent } from './policies/policies.component';\nimport { BucketsComponent } from './buckets/buckets.component';\nimport { GroupsComponent } from './groups/groups.component';\n\nconst routes: Routes = [\n\t{path:'users', component: UsersComponent},\n\t{path:'server', component: ServerComponent},\n\t{path:'policies', component: PoliciesComponent},\n\t{path:'groups', component: GroupsComponent},\n\t{path:'', component: BucketsComponent}\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Router } from \"@angular/router\";\nimport { EnvService } from './env.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n\n constructor(private httpClient: HttpClient, private router: Router, private env: EnvService) {\n if(env.apiBaseUrl) {\n console.log('apiBaseUrl', env.apiBaseUrl);\n }\n if(env.apiMultiBackend) {\n console.log('apiMultiBackend', env.apiMultiBackend);\n }\n if(env.apiBackends) {\n console.log('apiBackends', env.apiBackends);\n }\n\n }\n\n\n multiBackend = this.env.apiMultiBackend;\n backendsUrls = this.env.apiBackends;\n baseUrl = this.getCurrentBackend();\n\n private getCurrentBackend(){\n let envDefaultBackend = this.env.apiBaseUrl;\n if(this.multiBackend && this.multiBackend == true) {\n let savedBackend = localStorage.getItem('currentBackend');\n\n let activeBackend = \"\";\n\n if(savedBackend && savedBackend != \"\"){\n activeBackend = savedBackend;\n }else{\n activeBackend = envDefaultBackend;\n }\n return activeBackend;\n } else {\n return envDefaultBackend;\n }\n }\n\n public overrideBackend(newBackend){\n localStorage.setItem('currentBackend', newBackend);\n this.baseUrl = newBackend;\n\n this.router.onSameUrlNavigation = 'reload';\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\n return false;\n };\n\n this.router.navigate([this.router.url])\n this.router.onSameUrlNavigation = 'ignore';\n }\n\n public getMultiBackendStatus(){\n return this.multiBackend;\n }\n\n public getBackendsUrls(){\n return this.backendsUrls;\n }\n\n public validateAuthInResponse(data){\n if(data != null && typeof data.oauth != \"undefined\" && typeof data.auth != \"undefined\" && data.oauth != false && data.auth != true){\n window.location.href = this.env.apiBaseUrl+'/auth/?state='+window.location.href;\n }\n }\n\n public serverInfo(){\n return this.httpClient.get(this.baseUrl+'/api/v2/server/common-info');\n }\n\n public diskInfo(){\n return this.httpClient.get(this.baseUrl+'/api/v2/server/disk-info');\n }\n\n public getUsers(){\n return this.httpClient.get(this.baseUrl+'/api/v2/users/list');\n }\n\n public addUser(access,secret){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/create', form)\n }\n\n public addUserExtended(access,secret,policy){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n form.append('policyName', policy);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/create-extended', form)\n }\n\n public updateUser(access,secret,policy,status){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n form.append('policyName', policy);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/update', form)\n }\n\n\n public setStatusUser(access,status){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/set-status', form)\n }\n\n public deleteUser(access){\n let form = new FormData();\n\n form.append('accessKey', access);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/delete', form)\n }\n\n public getPolicies(){\n return this.httpClient.get(this.baseUrl+'/api/v2/policies/list');\n }\n\n public deletePolicy(policy){\n let form = new FormData();\n\n form.append('policyName', policy);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/delete', form)\n }\n\n public addPolicy(policyName, policyString){\n let form = new FormData();\n\n form.append('policyName', policyName);\n form.append('policyString', policyString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/create', form)\n }\n\n public getBuckets(){\n return this.httpClient.get(this.baseUrl+'/api/v2/buckets/list');\n }\n\n public getBucketsExtended(){\n return this.httpClient.get(this.baseUrl+'/api/v2/buckets/list-extended');\n }\n\n public enableNotificationForBucket(bucket, stsARN, eventTypes, filterPrefix, filterSuffix){\n //put,get,delete\n let form = new FormData();\n\n form.append('bucket', bucket);\n form.append('stsARN', stsARN);\n form.append('eventTypes', eventTypes);\n form.append('filterPrefix', filterPrefix);\n form.append('filterSuffix', filterSuffix);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-events', form)\n }\n\n public getBucketEvents(bucket){\n let form = new FormData();\n\n form.append('bucket', bucket);\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-events',form)\n }\n\n public removeBucketEvents(bucket){\n let form = new FormData();\n\n form.append('bucket', bucket);\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/remove-events',form)\n }\n\n public deleteBucket(bucket){\n let form = new FormData();\n\n form.append('bucketName', bucket);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/delete', form)\n }\n\n public createBucket(bucket){\n let form = new FormData();\n\n form.append('newBucket', bucket);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/create', form)\n }\n\n public getGroups(){\n return this.httpClient.get(this.baseUrl+'/api/v2/groups/list');\n }\n\n public updateMembersGroup(group,members,IsRemove){\n let form = new FormData();\n\n form.append('group', group);\n form.append('members', members);\n form.append('IsRemove', IsRemove);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/update-members', form);\n }\n\n public getGroupDescription(group){\n let form = new FormData();\n\n form.append('group', group);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/get-description', form);\n }\n\n public setStatusGroup(group,status){\n let form = new FormData();\n\n form.append('group', group);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/set-status', form);\n }\n\n public setPolicy(policyName,entityName,isGroup){\n let form = new FormData();\n\n form.append('policyName', policyName);\n form.append('entityName', entityName);\n form.append('isGroup', isGroup);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/update', form);\n }\n\n public setLifecycle(bucketName,lifecycle){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('lifecycle', lifecycle);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-lifecycle', form);\n }\n\n\n public getLifecycle(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-lifecycle', form);\n }\n\n public checkAuthStatus(){\n return this.httpClient.get(this.baseUrl+'/auth/check');\n }\n\n public getBucketQuota(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-quota', form);\n }\n\n public setBucketQuota(bucketName, quotaType, quotaValue){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('quotaType', quotaType);\n form.append('quotaValue', quotaValue);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-quota', form);\n }\n\n public removeBucketQuota(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/remove-quota', form);\n }\n\n public setBucketTag(bucketName,tagsString){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('bucketTags', tagsString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-tags', form);\n }\n\n public getBucketTag(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-tags', form);\n }\n\n public setBucketPolicy(bucketName,policyString){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('bucketPolicy', policyString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-policy', form);\n }\n\n public getBucketPolicy(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-policy', form);\n }\n\n public getBucketEncryption(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-encryption', form);\n }\n\n public setBucketEncryption(bucketName, encType, encMasterKeyID){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('bucketEncryptionType', encType);\n form.append('kmsMasterKey', encMasterKeyID);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-encryption', form);\n }\n\n public removeBucketEncryption(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/remove-encryption', form);\n }\n\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAuY29tcG9uZW50LnNjc3MifQ== */\";","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/dist/minio-ng/main-es5.js b/dist/minio-ng/main-es5.js index 367c0eb..5096d4f 100644 --- a/dist/minio-ng/main-es5.js +++ b/dist/minio-ng/main-es5.js @@ -368,16 +368,21 @@ this.objectKeys = Object.keys; this.isNaN = Number.isNaN; this.buckets = {}; + this.updateEncryptionTypeChanged = false; this.newBucketName = ""; this.uiShowQuota = false; this.newBucketQuotaType = ""; this.newBucketQuota = ""; this.quotaTypes = ["fifo", "hard"]; + this.newBucketEncryption = ""; + this.encryptionTypes = ["sse-s3", "sse-kms"]; + this.newBucketMasterKeyID = ""; this.newBucketEventARN = ""; this.updateBucketEventARN = ""; this.updateBucketEventFilterPrefix = ""; this.updateBucketEventFilterSuffix = ""; this.updateBucketQuotaObj = {}; + this.updateBucketEncryptionObj = {}; this.updateQuotaTypeChanged = false; this.updateQuotaChanged = false; this.newBucketPolicy = "none"; // updateBucketPolicy = "none" @@ -554,6 +559,28 @@ _this5.newBucketTagsList = data; } }); + this.apiService.getBucketEncryption(bucketName).subscribe(function (data) { + _this5.apiService.validateAuthInResponse(data); + + console.log(Object.keys(data)); + console.log(data); + var dataKeys = Object.keys(data); + console.log("Bucket Encryption >>", dataKeys[1]); + + if (dataKeys[1] == "Rules") { + _this5.updateBucketEncryptionObj = data; + var dataVals = Object.values(data); + console.log("Enc datavals", dataVals[1][0]['Apply']['KmsMasterKeyID']); + + if (dataVals[1][0]['Apply']['KmsMasterKeyID'] == "") { + _this5.updateBucketEncryptionObj = "sse-s3"; + } else { + _this5.updateBucketEncryptionObj = "sse-kms"; + } + } else { + _this5.updateBucketEncryptionObj = ""; + } + }); this.apiService.getBucketQuota(bucketName).subscribe(function (data) { _this5.apiService.validateAuthInResponse(data); @@ -594,11 +621,21 @@ value: function updatePolicyType() { this.updatePolicyTypeChanged = true; } + }, { + key: "updateEncryptionType", + value: function updateEncryptionType() { + this.updateEncryptionTypeChanged = true; + } }, { key: "updateQuota", value: function updateQuota() { this.updateQuotaChanged = true; } + }, { + key: "deleteBucketEncryptionPrepare", + value: function deleteBucketEncryptionPrepare(bucketName) { + this.bucketToRemoveEncryption = bucketName; + } }, { key: "deleteBucket", value: function deleteBucket() { @@ -623,6 +660,9 @@ value: function resetForm() { this.newBucketName = ""; this.newBucketEventARN = ""; + this.newBucketEncryption = ""; + this.newBucketMasterKeyID = ""; + this.updateEncryptionTypeChanged = false; this.newBucketEventFilterPrefix = ""; this.newBucketEventFilterSuffix = ""; this.selectedEventTypes = []; @@ -640,10 +680,14 @@ key: "resetUpdateForm", value: function resetUpdateForm() { this.updateBucketEventARN = ""; + this.newBucketEncryption = ""; + this.newBucketMasterKeyID = ""; + this.updateEncryptionTypeChanged = false; this.selectedEventTypes = []; this.updateBucketEventFilterPrefix = ""; this.updateBucketEventFilterSuffix = ""; this.updateBucketQuotaObj = {}; + this.updateBucketEncryptionObj = ""; this.updateQuotaTypeChanged = false; this.updateQuotaChanged = false; this.tagListChanged = false; @@ -722,11 +766,11 @@ for (var i = 0; i < bucketsArr.length; i++) { if (bucketsArr[i] != '') { - this.createBucketSimple(bucketsArr[i], this.newBucketEventARN, this.newBucketQuotaType, this.newBucketQuota, this.newBucketPolicy, bucketsArr.length, i + 1); + this.createBucketSimple(bucketsArr[i], this.newBucketEventARN, this.newBucketQuotaType, this.newBucketQuota, this.newBucketPolicy, this.newBucketEncryption, this.newBucketMasterKeyID, bucketsArr.length, i + 1); } } } else { - this.createBucketSimple(this.newBucketName, this.newBucketEventARN, this.newBucketQuotaType, this.newBucketQuota, this.newBucketPolicy, 1, 1); + this.createBucketSimple(this.newBucketName, this.newBucketEventARN, this.newBucketQuotaType, this.newBucketQuota, this.newBucketPolicy, this.newBucketEncryption, this.newBucketMasterKeyID, 1, 1); } } }, { @@ -768,6 +812,10 @@ if (this.updatePolicyTypeChanged) { this.setPolicy(this.editBucketName, true); } + + if (this.updateEncryptionTypeChanged) { + this.setBucketEncryption(this.editBucketName, this.updateBucketEncryptionObj, this.newBucketMasterKeyID, true); + } } }, { key: "enableNotificationForBucket", @@ -854,40 +902,83 @@ }); } }, { - key: "createBucketSimple", - value: function createBucketSimple(bucket, eventARN, quotaType, quotaVal, policy, numberOfBuckets, currentBucketNumber) { + key: "removeBucketEncryption", + value: function removeBucketEncryption() { var _this12 = this; - this.apiService.createBucket(bucket).subscribe(function (data) { + var bucket = this.bucketToRemoveEncryption; + this.apiService.removeBucketEncryption(bucket).subscribe(function (data) { _this12.apiService.validateAuthInResponse(data); console.log(data); if (data["Success"]) { - _this12.toastr.success('Bucket: ' + bucket + ' has been created', 'Success'); + _this12.toastr.success('Encryption for bucket ' + bucket + ' has been removed', 'Success'); + } else { + _this12.toastr.error(JSON.stringify(data), 'Error while removing bucket encryption'); + } + + _this12.getBuckets(); + }); + } + }, { + key: "setBucketEncryption", + value: function setBucketEncryption(bucket, encType, masterKeyID, reloadBucketList) { + var _this13 = this; + + this.apiService.setBucketEncryption(bucket, encType, masterKeyID).subscribe(function (data) { + _this13.apiService.validateAuthInResponse(data); + + if (data["Success"]) { + _this13.toastr.success('Encryption for bucket ' + bucket + ' has been set', 'Success'); + } else { + _this13.toastr.error(JSON.stringify(data), 'Error while set encryption for bucket'); + } + + if (reloadBucketList) { + _this13.getBuckets(); + } + }); + } + }, { + key: "createBucketSimple", + value: function createBucketSimple(bucket, eventARN, quotaType, quotaVal, policy, encryption, masterKeyID, numberOfBuckets, currentBucketNumber) { + var _this14 = this; + + this.apiService.createBucket(bucket).subscribe(function (data) { + _this14.apiService.validateAuthInResponse(data); + + console.log(data); + + if (data["Success"]) { + _this14.toastr.success('Bucket: ' + bucket + ' has been created', 'Success'); if (eventARN != "") { - _this12.enableNotificationForBucket(bucket, eventARN, _this12.selectedEventTypes, _this12.newBucketEventFilterPrefix, _this12.newBucketEventFilterSuffix, false); + _this14.enableNotificationForBucket(bucket, eventARN, _this14.selectedEventTypes, _this14.newBucketEventFilterPrefix, _this14.newBucketEventFilterSuffix, false); } if (quotaType != "" && quotaVal != "" && quotaVal >= 0) { - _this12.setQuotaForBucket(bucket, quotaType, quotaVal, false); + _this14.setQuotaForBucket(bucket, quotaType, quotaVal, false); + } + + if (Object.keys(_this14.newBucketTagsList).length > 0) { + _this14.setTagsForBucket(bucket, false); } - if (Object.keys(_this12.newBucketTagsList).length > 0) { - _this12.setTagsForBucket(bucket, false); + if (_this14.updatePolicyTypeChanged) { + _this14.setPolicy(bucket, false); } - if (_this12.updatePolicyTypeChanged) { - _this12.setPolicy(bucket, false); + if (encryption != "") { + _this14.setBucketEncryption(bucket, encryption, masterKeyID, false); } } else { - _this12.toastr.error(JSON.stringify(data), 'Error while creating bucket'); + _this14.toastr.error(JSON.stringify(data), 'Error while creating bucket'); } if (numberOfBuckets == currentBucketNumber) { setTimeout(function () { - _this12.getBuckets(); + _this14.getBuckets(); }, 500); } }); @@ -911,22 +1002,23 @@ }, { key: "downloadLifecycle", value: function downloadLifecycle(bucket) { - var _this13 = this; + var _this15 = this; this.apiService.getLifecycle(bucket).subscribe(function (data) { - _this13.apiService.validateAuthInResponse(data); // console.log(bucket, data); + _this15.apiService.validateAuthInResponse(data); // console.log(bucket, data); if (data["error"]) { - _this13.toastr.error(JSON.stringify(data), 'Error while getting lifecycle'); + _this15.toastr.error(JSON.stringify(data), 'Error while getting lifecycle'); } else { if (data == "") {// this.toastr.error("Bucket has no lifecycle", 'Error while getting lifecycle'); } else { - _this13.downloadLifecycleAvailable = 1; + _this15.downloadLifecycleAvailable = 1; + console.log("Lifecycle>>>>", JSON.stringify(data)); - var uri = _this13.sanitizer.bypassSecurityTrustUrl("data:text/xml;charset=UTF-8," + encodeURIComponent(data.toString())); + var uri = _this15.sanitizer.bypassSecurityTrustUrl("data:text/json;charset=UTF-8," + encodeURIComponent(JSON.stringify(data))); - _this13.downloadJsonHref = uri; + _this15.downloadJsonHref = uri; } } }); @@ -934,22 +1026,22 @@ }, { key: "uploadLifecycle", value: function uploadLifecycle() { - var _this14 = this; + var _this16 = this; var fileReader = new FileReader(); fileReader.onload = function (e) { var lifecycleFileString = fileReader.result.toString().replace(/\n/g, ' ').replace(/\r/g, ' '); - _this14.apiService.setLifecycle(_this14.lifecycleBucketName, lifecycleFileString).subscribe(function (data) { - _this14.apiService.validateAuthInResponse(data); + _this16.apiService.setLifecycle(_this16.lifecycleBucketName, lifecycleFileString).subscribe(function (data) { + _this16.apiService.validateAuthInResponse(data); console.log(data); if (data["Success"]) { - _this14.toastr.success('Lifecycyle has been uploaded for bucket: ' + _this14.lifecycleBucketName + '', 'Success'); + _this16.toastr.success('Lifecycyle has been uploaded for bucket: ' + _this16.lifecycleBucketName + '', 'Success'); } else { - _this14.toastr.error(JSON.stringify(data), 'Error while uploading lifecycyle'); + _this16.toastr.error(JSON.stringify(data), 'Error while uploading lifecycyle'); } }); }; @@ -959,7 +1051,7 @@ }, { key: "setTagsForBucket", value: function setTagsForBucket(bucket, reloadBucketList) { - var _this15 = this; + var _this17 = this; var tagsObj = this.newBucketTagsList; var tagsKeys = this.objectKeys(tagsObj); @@ -973,34 +1065,34 @@ var tagString = tagArr.join("&"); console.log("TAG STRING >>>>", tagString); this.apiService.setBucketTag(bucket, tagString).subscribe(function (data) { - _this15.apiService.validateAuthInResponse(data); + _this17.apiService.validateAuthInResponse(data); if (data["Success"]) { - _this15.toastr.success('Tags for bucket ' + bucket + ' has been set', 'Success'); + _this17.toastr.success('Tags for bucket ' + bucket + ' has been set', 'Success'); } else { - _this15.toastr.error(JSON.stringify(data), 'Error while set tags for bucket'); + _this17.toastr.error(JSON.stringify(data), 'Error while set tags for bucket'); } if (reloadBucketList) { - _this15.getBuckets(); + _this17.getBuckets(); } }); } }, { key: "downloadPolicy", value: function downloadPolicy(bucket, fileName) { - var _this16 = this; + var _this18 = this; this.apiService.getBucketPolicy(bucket).subscribe(function (data) { - _this16.apiService.validateAuthInResponse(data); + _this18.apiService.validateAuthInResponse(data); console.log("download policy >>> ", bucket, data); if (data["error"]) { - _this16.toastr.error(JSON.stringify(data), 'Error while getting policy'); + _this18.toastr.error(JSON.stringify(data), 'Error while getting policy'); } else { if (data == "") { - _this16.toastr.error("Bucket has no policy", 'Error while getting policy'); + _this18.toastr.error("Bucket has no policy", 'Error while getting policy'); } else { var link = document.createElement('a'); link.href = "data:text/json;charset=UTF-8," + encodeURIComponent(data["policy"].toString()); @@ -1178,27 +1270,27 @@ }, { key: "serverInfo", value: function serverInfo() { - var _this17 = this; + var _this19 = this; this.apiService.serverInfo().subscribe(function (data) { - _this17.apiService.validateAuthInResponse(data); + _this19.apiService.validateAuthInResponse(data); - _this17.serviceInfo = data; + _this19.serviceInfo = data; }); } }, { key: "diskInfo", value: function diskInfo() { - var _this18 = this; + var _this20 = this; this.apiService.diskInfo().subscribe(function (data) { - _this18.apiService.validateAuthInResponse(data); + _this20.apiService.validateAuthInResponse(data); console.log("Disk Usage >>>>>>>>>>>>", data); - _this18.diskUsageInfo = data; + _this20.diskUsageInfo = data; if (data.hasOwnProperty('objectsSizesHistogram')) { - var objectsSizesHistogram = _this18.diskUsageInfo.objectsSizesHistogram; + var objectsSizesHistogram = _this20.diskUsageInfo.objectsSizesHistogram; var histogramKeysRawArr = []; var histogramValsRawArr = []; @@ -1207,22 +1299,22 @@ histogramValsRawArr = Object.values(objectsSizesHistogram); } - _this18.hgChartDatasets[0].data = histogramValsRawArr; - _this18.hgChartLabels = []; + _this20.hgChartDatasets[0].data = histogramValsRawArr; + _this20.hgChartLabels = []; for (var i = 0; i < histogramKeysRawArr.length; i++) { var histogramLabel = histogramKeysRawArr[i].split('_').join(' '); - _this18.hgChartLabels.push(histogramLabel); + _this20.hgChartLabels.push(histogramLabel); } } - if (data.hasOwnProperty('bucketsSizes') && _this18.diskUsageInfo.bucketsSizes != {} && _this18.diskUsageInfo.bucketsSizes != null) { - var objectBucketSizes = _this18.diskUsageInfo.bucketsSizes; + if (data.hasOwnProperty('bucketsSizes') && _this20.diskUsageInfo.bucketsSizes != {} && _this20.diskUsageInfo.bucketsSizes != null) { + var objectBucketSizes = _this20.diskUsageInfo.bucketsSizes; var bucketSizesKeysRawArr = Object.keys(objectBucketSizes); var bucketSizesValsRawArr = Object.values(objectBucketSizes); - _this18.szChartDatasets[0].data = bucketSizesValsRawArr; - _this18.szChartLabels = bucketSizesKeysRawArr; + _this20.szChartDatasets[0].data = bucketSizesValsRawArr; + _this20.szChartLabels = bucketSizesKeysRawArr; } }); } @@ -1336,12 +1428,12 @@ }, { key: "checkAuthStatus", value: function checkAuthStatus() { - var _this19 = this; + var _this21 = this; this.apiService.checkAuthStatus().subscribe(function (data) { console.log("DATA AUTH>>>", data); - _this19.apiService.validateAuthInResponse(data); + _this21.apiService.validateAuthInResponse(data); }); } }]); @@ -1399,7 +1491,7 @@ /* harmony default export */ - __webpack_exports__["default"] = "\n\n\n\n \n Adminio UI \n\n \n \n\n \n \n \n \n
\n \n \n\t\t\t\t\t\n
\n
\n \n\n
\n\n\n\n\n\n\n\n\n"; + __webpack_exports__["default"] = "\n\n\n\n \n Adminio UI \n\n \n \n\n \n \n \n \n
\n \n \n\t\t\t\t\t\n
\n
\n \n\n
\n\n\n\n\n\n\n\n\n"; /***/ }, @@ -1894,48 +1986,48 @@ }, { key: "getGroups", value: function getGroups() { - var _this20 = this; + var _this22 = this; this.groups = {}; this.groupsWithMembers = []; this.previous = ""; this.apiService.getGroups().subscribe(function (data) { - _this20.apiService.validateAuthInResponse(data); + _this22.apiService.validateAuthInResponse(data); console.log(data); if (data !== null) { - _this20.groups = data; + _this22.groups = data; - for (var i = 0; i < _this20.objectKeys(data).length; i++) { + for (var i = 0; i < _this22.objectKeys(data).length; i++) { var tempGroupName = data[i]; - _this20.apiService.getGroupDescription(tempGroupName).subscribe(function (data) { + _this22.apiService.getGroupDescription(tempGroupName).subscribe(function (data) { if (data !== null) { - _this20.groupsWithMembers.push(data); + _this22.groupsWithMembers.push(data); - _this20.mdbTable.setDataSource(_this20.groupsWithMembers); + _this22.mdbTable.setDataSource(_this22.groupsWithMembers); - _this20.previous = _this20.mdbTable.getDataSource(); + _this22.previous = _this22.mdbTable.getDataSource(); } }); } - console.log(_this20.groupsWithMembers); - _this20.groups = _this20.groupsWithMembers; + console.log(_this22.groupsWithMembers); + _this22.groups = _this22.groupsWithMembers; } }); } }, { key: "getListOfUsers", value: function getListOfUsers() { - var _this21 = this; + var _this23 = this; this.apiService.getUsers().subscribe(function (data) { - _this21.apiService.validateAuthInResponse(data); + _this23.apiService.validateAuthInResponse(data); if (data !== null) { - _this21.dropdownList = Object.entries(data).map(function (e) { + _this23.dropdownList = Object.entries(data).map(function (e) { return { "id": e[0], "itemName": e[0] @@ -1947,22 +2039,22 @@ }, { key: "getGroupDescription", value: function getGroupDescription(group) { - var _this22 = this; + var _this24 = this; this.isEditMode(true); console.log(group); this.apiService.getGroupDescription(group).subscribe(function (data) { if (data !== null) { console.log(data); - _this22.groupToUpdate = data; - _this22.newGroupName = data["name"]; - _this22.newGroupPolicy = data["policy"]; - _this22.newGroupStatus = data["status"]; + _this24.groupToUpdate = data; + _this24.newGroupName = data["name"]; + _this24.newGroupPolicy = data["policy"]; + _this24.newGroupStatus = data["status"]; for (var i = 0; i < data["members"].length; i++) { var tempMember = data["members"][i]; - _this22.selectedItems.push({ + _this24.selectedItems.push({ "id": tempMember, "itemName": tempMember }); @@ -1973,13 +2065,13 @@ }, { key: "getListOfPolicies", value: function getListOfPolicies() { - var _this23 = this; + var _this25 = this; this.apiService.getPolicies().subscribe(function (data) { - _this23.apiService.validateAuthInResponse(data); + _this25.apiService.validateAuthInResponse(data); - _this23.policies = Object.keys(data); - _this23.rawPolicies = data; + _this25.policies = Object.keys(data); + _this25.rawPolicies = data; }); } }, { @@ -1999,59 +2091,59 @@ }, { key: "deleteGroup", value: function deleteGroup() { - var _this24 = this; + var _this26 = this; console.log("GROUP TO DELETE >>>", this.groupToDelete); this.apiService.updateMembersGroup(this.groupToDelete, [], "true").subscribe(function (data) { - _this24.apiService.validateAuthInResponse(data); + _this26.apiService.validateAuthInResponse(data); if (data["Success"]) { - _this24.toastr.success('Group: ' + _this24.newGroupName + ' has been removed', 'Success'); + _this26.toastr.success('Group: ' + _this26.newGroupName + ' has been removed', 'Success'); - _this24.usersToRemove = []; + _this26.usersToRemove = []; - _this24.refreshList(); + _this26.refreshList(); - _this24.groupToDelete = ""; + _this26.groupToDelete = ""; } else { - _this24.toastr.error(JSON.stringify(data), 'Error while removing group'); + _this26.toastr.error(JSON.stringify(data), 'Error while removing group'); - _this24.refreshList(); + _this26.refreshList(); - _this24.groupToDelete = ""; + _this26.groupToDelete = ""; } }); } }, { key: "wipeGroupMembers", value: function wipeGroupMembers() { - var _this25 = this; + var _this27 = this; this.apiService.updateMembersGroup(this.newGroupName, this.usersToRemove, "true").subscribe(function (data) { - _this25.apiService.validateAuthInResponse(data); + _this27.apiService.validateAuthInResponse(data); if (data["Success"]) { - _this25.toastr.success('Group: ' + _this25.newGroupName + ' members has been removed', 'Success'); + _this27.toastr.success('Group: ' + _this27.newGroupName + ' members has been removed', 'Success'); - _this25.usersToRemove = []; + _this27.usersToRemove = []; } else { - _this25.toastr.error(JSON.stringify(data), 'Error while removing members from group'); + _this27.toastr.error(JSON.stringify(data), 'Error while removing members from group'); } }); } }, { key: "updatePolicy", value: function updatePolicy() { - var _this26 = this; + var _this28 = this; if (this.newGroupPolicy !== null && this.newGroupPolicy != "") { this.apiService.setPolicy(this.newGroupPolicy, this.newGroupName, "true").subscribe(function (data) { - _this26.apiService.validateAuthInResponse(data); + _this28.apiService.validateAuthInResponse(data); if (data["Success"]) { - _this26.toastr.success('Group: ' + _this26.newGroupName + ' policy has been set to ' + _this26.newGroupPolicy, 'Success'); + _this28.toastr.success('Group: ' + _this28.newGroupName + ' policy has been set to ' + _this28.newGroupPolicy, 'Success'); } else { - _this26.toastr.error(JSON.stringify(data), 'Error while setting policy to group'); + _this28.toastr.error(JSON.stringify(data), 'Error while setting policy to group'); } }); } @@ -2059,16 +2151,16 @@ }, { key: "updateStatus", value: function updateStatus() { - var _this27 = this; + var _this29 = this; if (this.newGroupStatus !== null && this.newGroupStatus != "") { this.apiService.setStatusGroup(this.newGroupName, this.newGroupStatus).subscribe(function (data) { - _this27.apiService.validateAuthInResponse(data); + _this29.apiService.validateAuthInResponse(data); if (data["Success"]) { - _this27.toastr.success('Group: ' + _this27.newGroupName + ' status has been set to ' + _this27.newGroupStatus, 'Success'); + _this29.toastr.success('Group: ' + _this29.newGroupName + ' status has been set to ' + _this29.newGroupStatus, 'Success'); } else { - _this27.toastr.error(JSON.stringify(data), 'Error while setting status to group'); + _this29.toastr.error(JSON.stringify(data), 'Error while setting status to group'); } }); } @@ -2083,7 +2175,7 @@ }, { key: "createGroup", value: function createGroup() { - var _this28 = this; + var _this30 = this; console.log("CREATE GROUP CALLED"); var newMembers = []; @@ -2104,15 +2196,15 @@ if (newMembers.length > 0) { this.apiService.updateMembersGroup(this.newGroupName, newMembers, "false").subscribe(function (data) { - _this28.apiService.validateAuthInResponse(data); + _this30.apiService.validateAuthInResponse(data); if (data["Success"]) { - _this28.toastr.success('Group: ' + _this28.newGroupName + ' has been created', 'Success'); + _this30.toastr.success('Group: ' + _this30.newGroupName + ' has been created', 'Success'); } else { - _this28.toastr.error(JSON.stringify(data), 'Error while creating group'); + _this30.toastr.error(JSON.stringify(data), 'Error while creating group'); } - _this28.refreshList(); + _this30.refreshList(); }); } else { this.refreshList(); @@ -2242,7 +2334,7 @@ /* harmony default export */ - __webpack_exports__["default"] = "
\n
\n
\n

Buckets

\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n\t\n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n \n\t \n\t \t \n\t \n\t \n \n \n \n \n \n\t
NameTagsCreation DateSizeQuotaEventOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n {{buckets[b].name}}\n {{buckets[b].policy}}\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n 0\">\n
    \n
  • {{tag}}: {{buckets[b].tags[tag]}}
  • \n
\n
\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">{{buckets[b].info.creationDate | date : \"dd/MM/yy HH:mm:ss\" }}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\">\n \n {{(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)+'').length > 3 ? math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024/1024)+' Gb' : isNaN(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)) ? '–' : math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024) +' Mb'}}\n \n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\">\n \n {{buckets[b].quota?.quotatype}}\n {{buckets[b].quota?.quotatype}}\n \n 0\" mdbTooltip=\"{{buckets[b].quota?.quota}} bytes\" placement=\"top\">\n {{(math.round(buckets[b].quota?.quota/1024/1024)+'').length > 3 ? math.round(buckets[b].quota?.quota/1024/1024/1024)+' Gb' : isNaN(math.round(buckets[b].quota?.quota/1024/1024)) ? '–' : math.round(buckets[b].quota?.quota/1024/1024) +' Mb'}}\n \n \n ∞\n \n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && serviceInfo?.sqsARN\">\n \n Lambda:\n \n {{c.Lambda}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n \n Topic:\n \n {{c.Topic}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n \n Queue:\n \n {{c.Queue}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t \t \t \n\t \t \t \n\t \t \t \n\t \t \t \n \n\t \t
\n \n
\n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Bucket Lifecycyle

\n
\n
\n
\n
\n
\n This bucket already have a lifecycyle policy, you can dowload it by clicking on \"dowload icon\" >\n \n
\n Or override it by upload a new lifecycle policy.\n
\n
\n Lifecycle policy is structrured xml file. You can use examples from Minio\n documentation. Or use an AWS S3 documentation\n Object Lifecycle Management\n
\n
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket

\n
\n
\n Are you shure?
After you click on \"Delete\" button bucket {{bucketToDelete}} will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket Notifications

\n
\n
\n Are you shure?
After you click on \"remove\" button bucket {{bucketToDelete}} notifications will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket Quota Limits

\n
\n
\n Are you shure?
After you click on \"remove\" button quota for bucket {{bucketToDelete}} will be removed.\n
\n \n
\n
\n
\n\n\n\n\n
\n
\n
\n
\n \n

Create Bucket

\n
\n
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n You can pass multiple names with \",\" delimiter\n
\n
Policy
\n
\n \n
\n
\n
\n \n \n
\n
\n
Tags
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \t\t\t\t
\n
\n {{tag}}: {{newBucketTagsList[tag]}}\n
\n
Quota
\n \n\n
\n \n \t\t\t\t\t\t\t
\n\n
\n \n In \"fifo\" mode - old data automatically will be removed when you reach quota limit.
\n In \"hard\" mode - you can't add new data to bucket if quota limit reached.\n
\n\n
\n \t\t\t\t\t\n
\n
Bytes
\n
\n
\n
\n
\n
Events section
\n

\n
\n \t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Update Bucket

\n
\n
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
Policy
\n
\n \n
\n
\n
\n \n \n
\n
\n
Tags
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \t\t\t\t
\n
\n {{tag}}: {{newBucketTagsList[tag]}}\n
\n
\n
Quota section
\n \n
\n \n \t\t\t\t\t\t\t
\n\n
\n \n In \"fifo\" mode - old data automatically will be removed when you reach quota limit.
\n In \"hard\" mode - you can't add new data to bucket if quota limit reached.\n
\n\n
\n \t\t\t\t\t\n
\n
Bytes
\n
\n
\n
\n
\n
Events section
\n

\n
\n \t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n"; + __webpack_exports__["default"] = "
\n
\n
\n

Buckets

\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n\t\n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n \n\t \n\t \t \n\t \n\t \n \n \n \n \n \n\t
NameTagsCreation DateSizeQuotaEventOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n {{buckets[b].name}}\n   \n {{buckets[b].policy}}\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n 0\">\n
    \n
  • {{tag}}: {{buckets[b].tags[tag]}}
  • \n
\n
\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">{{buckets[b].info.creationDate | date : \"dd/MM/yy HH:mm:ss\" }}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\">\n \n {{(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)+'').length > 3 ? math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024/1024)+' Gb' : isNaN(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)) ? '–' : math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024) +' Mb'}}\n \n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\">\n \n {{buckets[b].quota?.quotatype}}\n {{buckets[b].quota?.quotatype}}\n \n 0\" mdbTooltip=\"{{buckets[b].quota?.quota}} bytes\" placement=\"top\">\n {{(math.round(buckets[b].quota?.quota/1024/1024)+'').length > 3 ? math.round(buckets[b].quota?.quota/1024/1024/1024)+' Gb' : isNaN(math.round(buckets[b].quota?.quota/1024/1024)) ? '–' : math.round(buckets[b].quota?.quota/1024/1024) +' Mb'}}\n \n \n ∞\n \n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && serviceInfo?.sqsARN\">\n \n Lambda:\n \n {{c.Lambda}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n \n Topic:\n \n {{c.Topic}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n \n Queue:\n \n {{c.Queue}}
\n
    \n
  • \n {{e}}\n
  • \n
\n
\n
\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t \t \t \n\t \t \t \n\t \t \t \n\t \t \t \n \n \n\t \t
\n \n
\n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Bucket Lifecycyle

\n
\n
\n
\n
\n
\n This bucket already have a lifecycyle policy, you can export it as JSON by clicking on \"dowload icon\" >\n \n
\n Or override it by upload a new lifecycle policy.\n
\n
\n Lifecycle policy is structrured xml file. You can use examples from Minio\n documentation. Or use an AWS S3 documentation\n Object Lifecycle Management\n
\n
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket

\n
\n
\n Are you shure?
After you click on \"Delete\" button bucket {{bucketToDelete}} will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket Notifications

\n
\n
\n Are you shure?
After you click on \"remove\" button bucket {{bucketToRemoveNotifications}} notifications will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Bucket Quota Limits

\n
\n
\n Are you shure?
After you click on \"remove\" button quota for bucket {{bucketToRemoveQuota}} will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Encryption

\n
\n
\n Are you shure?
After you click on \"remove\" button encryption for bucket {{bucketToRemoveEncryption}} will be removed.\n
\n \n
\n
\n
\n\n\n\n\n
\n
\n
\n
\n \n

Create Bucket

\n
\n
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n You can pass multiple names with \",\" delimiter\n
\n
Policy
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
Encryption
\n

\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
Tags
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \t\t\t\t
\n
\n {{tag}}: {{newBucketTagsList[tag]}}\n
\n
Quota
\n \n\n
\n \n \t\t\t\t\t\t\t
\n\n
\n \n In \"fifo\" mode - old data automatically will be removed when you reach quota limit.
\n In \"hard\" mode - you can't add new data to bucket if quota limit reached.\n
\n\n
\n \t\t\t\t\t\n
\n
Bytes
\n
\n
\n
\n
\n
Events section
\n

\n
\n \t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Update Bucket

\n
\n
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
Policy
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
Encryption
\n

\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
Tags
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \t\t\t\t
\n
\n {{tag}}: {{newBucketTagsList[tag]}}\n
\n
\n
Quota section
\n \n
\n \n \t\t\t\t\t\t\t
\n\n
\n \n In \"fifo\" mode - old data automatically will be removed when you reach quota limit.
\n In \"hard\" mode - you can't add new data to bucket if quota limit reached.\n
\n\n
\n \t\t\t\t\t\n
\n
Bytes
\n
\n
\n
\n
\n
Events section
\n

\n
\n \t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n \t\t\t\t\t\n \t\t\t\t
\n
\n
\n
\n \n
\n
\n
\n"; /***/ }, @@ -2299,14 +2391,14 @@ var LoaderComponent = /*#__PURE__*/function () { function LoaderComponent(loaderService) { - var _this29 = this; + var _this31 = this; _classCallCheck(this, LoaderComponent); this.loaderService = loaderService; this.loaderService.isLoading.subscribe(function (v) { - _this29.loading = v; - _this29.error = _this29.loaderService.isError; + _this31.loading = v; + _this31.error = _this31.loaderService.isError; }); } @@ -2348,7 +2440,7 @@ /* harmony default export */ - __webpack_exports__["default"] = "
\n\t
\n\t\t
\n\t\t

Policies

\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t     \n\t\t\t\t\n\t\t\t
\n\t\t
\n\t
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t
\n\t
\n\t\n\t\t\n\t\t\t\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t
NameActionPrincipalEffectResourceConditionsOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">{{objectKeys(policies[pol])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
    • {{action}}
    • \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
\n\t\t\t\t\t\t{{policies[pol].Statement.Principal}}\n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • {{st.Effect}}
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • {{resource}}
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t
      • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t
          \n\t\t\t\t\t\t\t\t\t\t\t\t
        • \n\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}\n\t\t\t\t\t\t\t\t\t\t\t
        • \n\t\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t \t\t \n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t \n\t\t\t\t
\n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Policy

\n
\n
\n Are you shure?
After you click on \"Delete\" button policy {{policyToDelete}} will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Upload Policy

\n
\n
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Raw Policy

\n
\n
\n \t\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

{{modalCreateEditTitle}}

\n
\n
\n \t\n \t\t
\n\t\t\t\t\t
 
\n\t\t\t\t\t
\n\n\t\t\t\t \t
\n In Edit mode you can make a copy of policy - Just rename it!\n
\n\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t Principal\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
Buckets section
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t arn:aws:s3:::\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t /\" [(ngModel)]=\"newPolicy.bucket\" aria-label=\"Recipient's username\"\n\t\t\t\t\t\t\t\t\t aria-describedby=\"s3-prefix\">\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
BucketOptions
{{bst}}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
Conditions section
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
Condition and options
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}  \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
 
\n\t\t\t\t\t
\n\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
EffectActionResourceConditionsOptions
{{st.Effect}}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • {{action}}
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • {{resource}}
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t  \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n \n
\n \n
\n
\n
\n"; + __webpack_exports__["default"] = "
\n\t
\n\t\t
\n\t\t

Policies

\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t     \n\t\t\t\t\n\t\t\t
\n\t\t
\n\t
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t
\n\t
\n\t\n\t\t\n\t\t\t\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t
NameActionPrincipalEffectResourceConditionsOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">{{objectKeys(policies[pol])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
    • {{action}}
    • \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
\n\t\t\t\t\t\t{{policies[pol].Statement.Principal}}\n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • {{st.Effect}}
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • {{resource}}
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t
      • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t
          \n\t\t\t\t\t\t\t\t\t\t\t\t
        • \n\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}\n\t\t\t\t\t\t\t\t\t\t\t
        • \n\t\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\">\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t \t\t \n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t \n\t\t\t\t
\n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Remove Policy

\n
\n
\n Are you shure?
After you click on \"Delete\" button policy {{policyToDelete}} will be removed.\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Upload Policy

\n
\n
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

Raw Policy

\n
\n
\n \t\n
\n \n
\n
\n
\n\n\n\n
\n
\n
\n
\n \n

{{modalCreateEditTitle}}

Switch to interface
\n
\n
\n \t\n \t\t
\n\t\t\t\t\t
 
\n\t\t\t\t\t
\n\n\t\t\t\t \t
\n In Edit mode you can make a copy of policy - Just rename it!\n
\n\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
0\">\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
0\">\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t Principal\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
Buckets section
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t arn:aws:s3:::\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t /\" [(ngModel)]=\"newPolicy.bucket\" aria-label=\"Recipient's username\"\n\t\t\t\t\t\t\t\t\t aria-describedby=\"s3-prefix\">\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
BucketOptions
{{bst}}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
Conditions section
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
Condition and options
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}  \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
 
\n\t\t\t\t\t
\n\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
EffectActionResourceConditionsOptions
{{st.Effect}}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • {{action}}
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • {{resource}}
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t\t{{condition}}\n\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    • {{con}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
        \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{conKeyVal}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      • \n\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t  \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n \n
\n \n
\n
\n
\n"; /***/ }, @@ -2512,39 +2604,39 @@ }, { key: "getListOfUsers", value: function getListOfUsers() { - var _this30 = this; + var _this32 = this; this.apiService.getUsers().subscribe(function (data) { - _this30.apiService.validateAuthInResponse(data); + _this32.apiService.validateAuthInResponse(data); console.log(data); - _this30.usersRaw = data; + _this32.usersRaw = data; var arrayOfUsers = Object.entries(data).map(function (e) { return _defineProperty({}, e[0], e[1]); }); - _this30.users = arrayOfUsers; + _this32.users = arrayOfUsers; - _this30.mdbTable.setDataSource(arrayOfUsers); + _this32.mdbTable.setDataSource(arrayOfUsers); console.log(arrayOfUsers); - _this30.previous = _this30.mdbTable.getDataSource(); + _this32.previous = _this32.mdbTable.getDataSource(); }); } }, { key: "getListOfPolicies", value: function getListOfPolicies() { - var _this31 = this; + var _this33 = this; this.apiService.getPolicies().subscribe(function (data) { - _this31.apiService.validateAuthInResponse(data); + _this33.apiService.validateAuthInResponse(data); - _this31.policies = Object.keys(data); + _this33.policies = Object.keys(data); }); } }, { key: "createUser", value: function createUser() { - var _this32 = this; + var _this34 = this; var userAccess = this.newUserAccess.value; var userSecret = this.newUserSecret.value; @@ -2553,30 +2645,30 @@ if (userPolicy != '') { this.apiService.addUserExtended(userAccess, userSecret, userPolicy).subscribe(function (data) { - _this32.apiService.validateAuthInResponse(data); + _this34.apiService.validateAuthInResponse(data); console.log(data); - _this32.getListOfUsers(); + _this34.getListOfUsers(); if (data["Success"]) { - _this32.toastr.success('User: ' + userAccess + ' with policy ' + userPolicy + ' has been created', 'Success'); + _this34.toastr.success('User: ' + userAccess + ' with policy ' + userPolicy + ' has been created', 'Success'); } else { - _this32.toastr.error(JSON.stringify(data), 'Error while creating user'); + _this34.toastr.error(JSON.stringify(data), 'Error while creating user'); } }); } else { this.apiService.addUser(userAccess, userSecret).subscribe(function (data) { - _this32.apiService.validateAuthInResponse(data); + _this34.apiService.validateAuthInResponse(data); console.log(data); - _this32.getListOfUsers(); + _this34.getListOfUsers(); if (data["Success"]) { - _this32.toastr.success('User: ' + userAccess + ' has been created', 'Success'); + _this34.toastr.success('User: ' + userAccess + ' has been created', 'Success'); } else { - _this32.toastr.error(JSON.stringify(data), 'Error while creating user'); + _this34.toastr.error(JSON.stringify(data), 'Error while creating user'); } }); } @@ -2584,7 +2676,7 @@ }, { key: "setStatusUser", value: function setStatusUser(accessKey, status) { - var _this33 = this; + var _this35 = this; if (status == 'enabled') { status = 'disabled'; @@ -2593,17 +2685,17 @@ } this.apiService.setStatusUser(accessKey, status).subscribe(function (data) { - _this33.apiService.validateAuthInResponse(data); + _this35.apiService.validateAuthInResponse(data); console.log(data); if (data["Success"]) { - _this33.toastr.success('User: ' + accessKey + ' status has changed to ' + status, 'Success'); + _this35.toastr.success('User: ' + accessKey + ' status has changed to ' + status, 'Success'); } else { - _this33.toastr.error(JSON.stringify(data), 'Error while changing state for user'); + _this35.toastr.error(JSON.stringify(data), 'Error while changing state for user'); } - _this33.getListOfUsers(); + _this35.getListOfUsers(); }); } }, { @@ -2643,42 +2735,42 @@ }, { key: "updateUserSave", value: function updateUserSave() { - var _this34 = this; + var _this36 = this; var updatedSecret = this.updateUser.value.secretKeyUpdate; var updatedPolicy = this.updateUser.value.policyUpdate; var updatedStatus = this.updateUser.value.statusUpdate; this.apiService.updateUser(this.userToUpdate, updatedSecret, updatedPolicy, updatedStatus).subscribe(function (data) { - _this34.apiService.validateAuthInResponse(data); + _this36.apiService.validateAuthInResponse(data); console.log(data); - _this34.getListOfUsers(); + _this36.getListOfUsers(); if (data["Success"]) { - _this34.toastr.success('User: ' + _this34.userToUpdate + ' has been updated', 'Success'); + _this36.toastr.success('User: ' + _this36.userToUpdate + ' has been updated', 'Success'); } else { - _this34.toastr.error(JSON.stringify(data), 'Error while updating user'); + _this36.toastr.error(JSON.stringify(data), 'Error while updating user'); } }); } }, { key: "deleteUser", value: function deleteUser() { - var _this35 = this; + var _this37 = this; this.apiService.deleteUser(this.userToDelete).subscribe(function (data) { - _this35.apiService.validateAuthInResponse(data); + _this37.apiService.validateAuthInResponse(data); console.log(data); if (data["Success"]) { - _this35.toastr.success('User: ' + _this35.userToDelete + ' has been deleted', 'Success'); + _this37.toastr.success('User: ' + _this37.userToDelete + ' has been deleted', 'Success'); } - _this35.updateUserFrom(); + _this37.updateUserFrom(); - _this35.getListOfUsers(); + _this37.getListOfUsers(); }); } }, { @@ -2840,14 +2932,19 @@ this.rawView = ''; this.jsn = JSON; this.dropdownActionList = []; + this.dropdownAdminList = []; this.dropdownConditionList = []; this.dropdownConditionKeyList = []; this.selectedActions = []; + this.selectedAdmins = []; this.selectedCondition = []; this.selectedConditionKey = []; this.dropdownActionSettings = {}; + this.dropdownAdminSettings = {}; this.dropdownConditionSettings = {}; this.dropdownConditionKeySettings = {}; + this.advancedInterface = false; + this.advancedInterfaceLabel = "advanced"; this.newPolicy = { name: "", effect: "allow", @@ -3047,6 +3144,98 @@ unSelectAllText: 'UnSelect All', enableSearchFilter: true }; + this.dropdownAdminList = [{ + "id": 1, + "itemName": "admin:ConfigUpdate" + }, { + "id": 2, + "itemName": "admin:CreateUser" + }, { + "id": 3, + "itemName": "admin:DeleteUser" + }, { + "id": 4, + "itemName": "admin:ListUsers" + }, { + "id": 5, + "itemName": "admin:EnableUser" + }, { + "id": 6, + "itemName": "admin:DisableUser" + }, { + "id": 7, + "itemName": "admin:GetUser" + }, { + "id": 8, + "itemName": "admin:ServerInfo" + }, { + "id": 9, + "itemName": "admin:ServerUpdate" + }, { + "id": 10, + "itemName": "admin:StorageInfo" + }, { + "id": 11, + "itemName": "admin:DataUsageInfo" + }, { + "id": 12, + "itemName": "admin:TopLocks" + }, { + "id": 13, + "itemName": "admin:OBDInfo" + }, { + "id": 14, + "itemName": "admin:Profiling" + }, { + "id": 15, + "itemName": "admin:ServerTrace" + }, { + "id": 16, + "itemName": "admin:ConsoleLog" + }, { + "id": 17, + "itemName": "admin:KMSKeyStatus" + }, { + "id": 18, + "itemName": "admin:AddUserToGroup" + }, { + "id": 19, + "itemName": "admin:RemoveUserFromGroup" + }, { + "id": 20, + "itemName": "admin:GetGroup" + }, { + "id": 21, + "itemName": "admin:ListGroups" + }, { + "id": 22, + "itemName": "admin:EnableGroup" + }, { + "id": 23, + "itemName": "admin:DisableGroup" + }, { + "id": 24, + "itemName": "admin:CreatePolicy" + }, { + "id": 25, + "itemName": "admin:DeletePolicy" + }, { + "id": 26, + "itemName": "admin:GetPolicy" + }, { + "id": 27, + "itemName": "admin:AttachUserOrGroupPolicy" + }, { + "id": 28, + "itemName": "admin:ListUserPolicies" + }]; + this.dropdownAdminSettings = { + singleSelection: false, + text: "Select Admin actions for statement", + selectAllText: 'Select All', + unSelectAllText: 'UnSelect All', + enableSearchFilter: true + }; this.dropdownConditionList = [{ "id": 1, "itemName": "ArnEquals" @@ -3409,6 +3598,17 @@ enableSearchFilter: true }; } + }, { + key: "switchAdvanced", + value: function switchAdvanced() { + if (this.advancedInterface) { + this.advancedInterface = false; + this.advancedInterfaceLabel = "Advanced"; + } else { + this.advancedInterface = true; + this.advancedInterfaceLabel = "Basic"; + } + } }, { key: "onActionItemSelect", value: function onActionItemSelect(item) { @@ -3430,6 +3630,28 @@ key: "onActionDeSelectAll", value: function onActionDeSelectAll(items) { console.log(items); + } + }, { + key: "onAdminItemSelect", + value: function onAdminItemSelect(item) { + console.log(item); + console.log(this.selectedAdmins); + } + }, { + key: "onAdminItemDeSelect", + value: function onAdminItemDeSelect(item) { + console.log(item); + console.log(this.selectedAdmins); + } + }, { + key: "onAdminSelectAll", + value: function onAdminSelectAll(items) { + console.log(items); + } + }, { + key: "onAdminDeSelectAll", + value: function onAdminDeSelectAll(items) { + console.log(items); } //condition select actions }, { @@ -3506,6 +3728,7 @@ value: function resetPloicyForm(removeName) { console.log(removeName); this.selectedActions = []; + this.selectedAdmins = []; if (!removeName) { this.newPolicy.effect = "Allow"; @@ -3526,40 +3749,40 @@ }, { key: "getPolicies", value: function getPolicies() { - var _this36 = this; + var _this38 = this; this.apiService.getPolicies().subscribe(function (data) { - _this36.apiService.validateAuthInResponse(data); + _this38.apiService.validateAuthInResponse(data); console.log(data); - _this36.policiesRaw = data; + _this38.policiesRaw = data; var arrayOfPolicies = Object.entries(data).map(function (e) { return _defineProperty({}, e[0], e[1]); }); - _this36.policies = arrayOfPolicies; + _this38.policies = arrayOfPolicies; - _this36.mdbTable.setDataSource(arrayOfPolicies); + _this38.mdbTable.setDataSource(arrayOfPolicies); console.log(arrayOfPolicies); - _this36.previous = _this36.mdbTable.getDataSource(); + _this38.previous = _this38.mdbTable.getDataSource(); }); } }, { key: "deletePolicy", value: function deletePolicy() { - var _this37 = this; + var _this39 = this; this.apiService.deletePolicy(this.policyToDelete).subscribe(function (data) { - _this37.apiService.validateAuthInResponse(data); + _this39.apiService.validateAuthInResponse(data); console.log(data); - _this37.getPolicies(); + _this39.getPolicies(); if (data["Success"]) { - _this37.toastr.success('Policy ' + _this37.policyToDelete + ' has been deleted', 'Success'); + _this39.toastr.success('Policy ' + _this39.policyToDelete + ' has been deleted', 'Success'); } else { - _this37.toastr.error(JSON.stringify(data), 'Error while deleting policy'); + _this39.toastr.error(JSON.stringify(data), 'Error while deleting policy'); } }); } @@ -3628,16 +3851,27 @@ }, { key: "addStatement", value: function addStatement() { - if (this.selectedActions.length == this.dropdownActionList.length) { - this.newStatement.Action.push("s3:*"); + console.log("called add statement"); + + if (this.selectedActions.length > 0) { + if (this.selectedActions.length == this.dropdownActionList.length) { + this.newStatement.Action.push("s3:*"); + } else { + for (var i = 0; i < this.selectedActions.length; i++) { + this.newStatement.Action.push(this.selectedActions[i].itemName); + } + } } else { - for (var i = 0; i < this.selectedActions.length; i++) { - this.newStatement.Action.push(this.selectedActions[i].itemName); + if (this.selectedAdmins.length == this.dropdownAdminList.length) { + this.newStatement.Action.push("admin:*"); + } else { + for (var i = 0; i < this.selectedAdmins.length; i++) { + this.newStatement.Action.push(this.selectedAdmins[i].itemName); + } } } - this.newStatement.Effect = this.newPolicy.effect; // this.newStatement.Resource = "arn:aws:s3:::"+this.newPolicy.bucket - + this.newStatement.Effect = this.newPolicy.effect; console.log(this.newStatement); if (this.newStatement.Condition && Object.entries(this.newStatement.Condition).length === 0 && this.newStatement.Condition.constructor === Object) { @@ -3657,23 +3891,48 @@ }, { key: "editStatement", value: function editStatement(i) { + console.log("called Edit Statement"); this.newStatement = this.newPolicyRaw.Statement[i]; this.newPolicy.effect = this.newPolicyRaw.Statement[i].Effect; - if (this.newStatement.Action[0] == "s3:*") { - for (var g = 0; g < this.dropdownActionList.length; g++) { - this.selectedActions.push({ - "id": this.dropdownActionList[g].id, - "itemName": this.dropdownActionList[g].itemName - }); - } - } else { - for (var g = 0; g < this.newStatement.Action.length; g++) { - this.selectedActions.push({ - "id": g, - "itemName": this.newStatement.Action[g] - }); - } + switch (this.newStatement.Action[0].substring(0, 3)) { + case "s3:": + if (this.newStatement.Action[0] == "s3:*") { + for (var g = 0; g < this.dropdownActionList.length; g++) { + this.selectedActions.push({ + "id": this.dropdownActionList[g].id, + "itemName": this.dropdownActionList[g].itemName + }); + } + } else { + for (var g = 0; g < this.newStatement.Action.length; g++) { + this.selectedActions.push({ + "id": g, + "itemName": this.newStatement.Action[g] + }); + } + } + + break; + + case "adm": + if (this.newStatement.Action[0] == "admin:*") { + for (var g = 0; g < this.dropdownAdminList.length; g++) { + this.selectedAdmins.push({ + "id": this.dropdownAdminList[g].id, + "itemName": this.dropdownAdminList[g].itemName + }); + } + } else { + for (var g = 0; g < this.newStatement.Action.length; g++) { + this.selectedAdmins.push({ + "id": g, + "itemName": this.newStatement.Action[g] + }); + } + } + + break; } this.newStatement.Action = []; @@ -3705,7 +3964,7 @@ }, { key: "uploadPolicy", value: function uploadPolicy() { - var _this38 = this; + var _this40 = this; var fileReader = new FileReader(); @@ -3713,18 +3972,18 @@ console.log(fileReader.result); var policyFileString = fileReader.result.toString().replace(/\n/g, ' ').replace(/\r/g, ' '); - _this38.apiService.addPolicy(_this38.uploadPolicyName, policyFileString).subscribe(function (data) { - _this38.apiService.validateAuthInResponse(data); + _this40.apiService.addPolicy(_this40.uploadPolicyName, policyFileString).subscribe(function (data) { + _this40.apiService.validateAuthInResponse(data); console.log(data); if (data["Success"]) { - _this38.toastr.success('Policy ' + _this38.newPolicy.name + ' has been created', 'Success'); + _this40.toastr.success('Policy ' + _this40.newPolicy.name + ' has been created', 'Success'); } else { - _this38.toastr.error(JSON.stringify(data), 'Error while creating policy'); + _this40.toastr.error(JSON.stringify(data), 'Error while creating policy'); } - _this38.getPolicies(); + _this40.getPolicies(); }); }; @@ -3741,22 +4000,22 @@ }, { key: "createPolicy", value: function createPolicy() { - var _this39 = this; + var _this41 = this; console.log(this.newPolicy, this.newPolicyRaw); var policyString = JSON.stringify(this.newPolicyRaw); this.apiService.addPolicy(this.newPolicy.name, policyString).subscribe(function (data) { - _this39.apiService.validateAuthInResponse(data); + _this41.apiService.validateAuthInResponse(data); console.log(data); if (data["Success"]) { - _this39.toastr.success('Policy ' + _this39.newPolicy.name + ' has been created', 'Success'); + _this41.toastr.success('Policy ' + _this41.newPolicy.name + ' has been created', 'Success'); } else { - _this39.toastr.error(JSON.stringify(data), 'Error while creating policy'); + _this41.toastr.error(JSON.stringify(data), 'Error while creating policy'); } - _this39.getPolicies(); + _this41.getPolicies(); }); } }, { @@ -4409,6 +4668,29 @@ form.append('bucketName', bucketName); return this.httpClient.post(this.baseUrl + '/api/v2/bucket/get-policy', form); } + }, { + key: "getBucketEncryption", + value: function getBucketEncryption(bucketName) { + var form = new FormData(); + form.append('bucketName', bucketName); + return this.httpClient.post(this.baseUrl + '/api/v2/bucket/get-encryption', form); + } + }, { + key: "setBucketEncryption", + value: function setBucketEncryption(bucketName, encType, encMasterKeyID) { + var form = new FormData(); + form.append('bucketName', bucketName); + form.append('bucketEncryptionType', encType); + form.append('kmsMasterKey', encMasterKeyID); + return this.httpClient.post(this.baseUrl + '/api/v2/bucket/set-encryption', form); + } + }, { + key: "removeBucketEncryption", + value: function removeBucketEncryption(bucketName) { + var form = new FormData(); + form.append('bucketName', bucketName); + return this.httpClient.post(this.baseUrl + '/api/v2/bucket/remove-encryption', form); + } }]); return ApiService; diff --git a/dist/minio-ng/main-es5.js.map b/dist/minio-ng/main-es5.js.map index 309d16b..3f484ce 100644 --- a/dist/minio-ng/main-es5.js.map +++ b/dist/minio-ng/main-es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///src/app/loader/loader.component.html","webpack:///src/app/loader.service.ts","webpack:///src/app/loader.interceptor.ts","webpack:///src/app/loader/loader.component.scss","webpack:///src/app/groups/groups.component.scss","webpack:///src/environments/environment.ts","webpack:///src/app/buckets/buckets.component.ts","webpack:///src/app/server/server.component.ts","webpack:///src/app/groups/groups.component.html","webpack:///src/app/app.component.ts","webpack:///src/app/server/server.component.scss","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/buckets/buckets.component.scss","webpack:///src/app/env.service.provider.ts","webpack:///src/app/users/users.component.scss","webpack:///src/app/groups/groups.component.ts","webpack:///src/app/filter.pipe.ts","webpack:///src/app/buckets/buckets.component.html","webpack:///src/app/loader/loader.component.ts","webpack:///src/app/policies/policies.component.html","webpack:///src/app/users/users.component.ts","webpack:///src/app/policies/policies.component.ts","webpack:///src/app/server/server.component.html","webpack:///src/app/policies/policies.component.scss","webpack:///src/app/env.service.ts","webpack:///src/app/users/users.component.html","webpack:///src/app/app-routing.module.ts","webpack:///src/app/api.service.ts","webpack:///src/app/app.component.scss","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["LoaderService","isError","isLoading","providedIn","LoaderInterceptor","loaderService","requests","req","i","indexOf","splice","next","length","clone","withCredentials","push","create","observer","subscription","handle","subscribe","event","removeRequest","err","error","complete","unsubscribe","environment","production","BucketsComponent","apiService","cdRef","toastr","sanitizer","math","Math","objectKeys","Object","keys","isNaN","Number","buckets","newBucketName","uiShowQuota","newBucketQuotaType","newBucketQuota","quotaTypes","newBucketEventARN","updateBucketEventARN","updateBucketEventFilterPrefix","updateBucketEventFilterSuffix","updateBucketQuotaObj","updateQuotaTypeChanged","updateQuotaChanged","newBucketPolicy","policyTypes","updatePolicyTypeChanged","dropdownEventTypesList","selectedEventTypes","dropdownEventTypesSettings","newBucketEventFilterPrefix","newBucketEventFilterSuffix","newBucketTagName","newBucketTagValue","newBucketTagsList","tagListChanged","downloadLifecycleAvailable","searchText","undefined","target","searchItems","getBuckets","getServerInfo","getDiskInfo","singleSelection","text","selectAllText","unSelectAllText","enableSearchFilter","classes","item","console","log","items","serverInfo","data","validateAuthInResponse","serviceInfo","diskInfo","diskUsageInfo","prev","mdbTable","getDataSource","setDataSource","previous","searchLocalDataBy","mdbTablePagination","setMaxVisibleItemsNumberTo","calculateFirstItemIndex","calculateLastItemIndex","detectChanges","getBucketsExtended","bucketName","bucketToDelete","bucketToRemoveNotifications","currentQuota","currentQtype","currentTags","editBucketName","getBucketTag","dataKeys","getBucketQuota","emptyData","quotatype","getBucketPolicy","bucketToRemoveQuota","deleteBucket","success","JSON","stringify","resetUploadForm","e","uploadPolicyFile","files","uploadPolicyFileName","name","uploadFileInput","nativeElement","value","uploadPolicyName","updateListAfter","setBucketPolicy","fileReader","FileReader","onload","result","policyFileString","toString","replace","readAsText","bucketsArr","split","createBucketSimple","bucket","lifecycleBucketName","tagName","quotaType","quotaVal","enableNotificationForBucket","setTagsForBucket","setQuotaForBucket","setPolicy","stsARN","eventTypes","filterPrefix","filterSuffix","eventTypesArr","itemName","join","reloadBucketList","setBucketQuota","removeBucketEvents","removeBucketQuota","eventARN","policy","numberOfBuckets","currentBucketNumber","createBucket","setTimeout","uploadLifecycleFile","uploadLifecycleFileName","uploadLifecycleName","getLifecycle","uri","bypassSecurityTrustUrl","encodeURIComponent","downloadJsonHref","lifecycleFileString","setLifecycle","tagsObj","tagsKeys","tagArr","tagString","setBucketTag","fileName","link","document","createElement","href","download","click","selector","template","ServerComponent","objectValues","values","rawView","bucketSizes","hgChartDatasets","label","hgChartLabels","hgChartType","hgChartColors","backgroundColor","borderColor","borderWidth","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","hgChartOptions","responsive","szChartDatasets","szChartLabels","szChartType","szChartColors","szChartOptions","hasOwnProperty","objectsSizesHistogram","histogramKeysRawArr","histogramValsRawArr","histogramLabel","bucketsSizes","objectBucketSizes","bucketSizesKeysRawArr","bucketSizesValsRawArr","obj","AppComponent","title","checkAuthStatus","AppModule","declarations","imports","forRoot","providers","provide","useClass","multi","bootstrap","EnvServiceFactory","env","browserWindow","window","browserWindowEnv","key","EnvServiceProvider","useFactory","deps","GroupsComponent","jsn","groups","groupsWithMembers","users","rawPolicies","groupToUpdate","newGroupName","newGroupPolicy","newGroupStatus","updateStatusValues","modalEditMode","usersToRemove","groupToDelete","dropdownList","selectedItems","dropdownSettings","isEditMode","isNowCopyMode","getGroups","getListOfUsers","getListOfPolicies","state","modalCreateEditTitle","modalCreateEditButtonText","arr","str","parse","atob","b64unpack","tempGroupName","getGroupDescription","getUsers","entries","map","group","tempMember","getPolicies","policies","updateMembersGroup","refreshList","setStatusGroup","updatePolicy","updateStatus","newMembers","wipeGroupMembers","FilterPipe","searchPolicy","toLocaleLowerCase","filter","it","includes","LoaderComponent","v","loading","UsersComponent","usersRaw","resetForm","updateUserFrom","charset","retVal","n","charAt","floor","random","updateUser","accessKeyUpdate","disabled","required","secretKeyUpdate","policyUpdate","statusUpdate","validatingForm","newUserAccess","generatePassword","minLength","newUserSecret","newUserPolicy","arrayOfUsers","userAccess","userSecret","userPolicy","addUserExtended","addUser","accessKey","status","setStatusUser","userToDelete","userToUpdate","patchValue","updatedSecret","updatedPolicy","updatedStatus","deleteUser","get","PoliciesComponent","policiesRaw","dropdownActionList","dropdownConditionList","dropdownConditionKeyList","selectedActions","selectedCondition","selectedConditionKey","dropdownActionSettings","dropdownConditionSettings","dropdownConditionKeySettings","newPolicy","effect","newPolicyRaw","Version","Statement","newStatement","Action","Effect","Resource","Condition","Principal","newConditionValue","policyToUpdate","removeName","arrayOfPolicies","deletePolicy","policyToDelete","jsonObj","theJSON","valueId","keyName","conditionName","constructor","resetPloicyForm","g","id","addPolicy","policyString","prepareNewPolicyRaw","oldPolicy","EnvService","apiBaseUrl","apiMultiBackend","apiBackends","routes","path","component","AppRoutingModule","exports","ApiService","httpClient","router","multiBackend","backendsUrls","baseUrl","getCurrentBackend","envDefaultBackend","savedBackend","localStorage","getItem","activeBackend","newBackend","setItem","onSameUrlNavigation","routeReuseStrategy","shouldReuseRoute","navigate","url","oauth","auth","location","access","secret","form","FormData","append","post","policyName","members","IsRemove","entityName","isGroup","lifecycle","quotaValue","tagsString","bootstrapModule","webpackEmptyAsyncContext","Promise","resolve","then","Error","code","module"],"mappings":"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","file":"main-es5.js","sourcesContent":["export default \"
\\n\\t
\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t\\t
\\n\\t\\t Loading...\\n\\t\\t
\\n\\t
\\n
\\n\\n
\\n\\t
\\n\\t\\t\\n\\t\\t
\\n\\t\\t
\\n\\t\\tSeems backend unreachable\\n\\t
\\n
\\n\";","//loader.service.ts\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderService {\n public isError = false\n public isLoading = new BehaviorSubject(false);\n constructor() { }\n}\n","// loader.interceptors.ts\nimport { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse,\n HttpResponse,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { LoaderService } from './loader.service';\n\n@Injectable()\nexport class LoaderInterceptor implements HttpInterceptor {\n private requests: HttpRequest[] = [];\n\n constructor(private loaderService: LoaderService) { }\n\n removeRequest(req: HttpRequest) {\n const i = this.requests.indexOf(req);\n if (i >= 0) {\n this.requests.splice(i, 1);\n }\n this.loaderService.isLoading.next(this.requests.length > 0);\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n req = req.clone({\n withCredentials: true\n });\n this.requests.push(req);\n this.loaderService.isLoading.next(true);\n this.loaderService.isError = false;\n return Observable.create(observer => {\n const subscription = next.handle(req)\n .subscribe(\n event => {\n if (event instanceof HttpResponse) {\n this.removeRequest(req);\n observer.next(event);\n }\n },\n err => {\n this.loaderService.isError = true;\n this.removeRequest(req);\n observer.error(err);\n },\n () => {\n this.removeRequest(req);\n observer.complete();\n });\n // remove request from queue when cancelled\n return () => {\n this.removeRequest(req);\n subscription.unsubscribe();\n };\n });\n }\n}\n","export default \"dialog {\\n width: 300px;\\n}\\n\\ndialog::-webkit-backdrop {\\n background: rgba(0, 0, 0, 0.7);\\n}\\n\\ndialog::backdrop {\\n background: rgba(0, 0, 0, 0.7);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xvYWRlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFlBQUE7QUFDSjs7QUFDRztFQUNDLDhCQUFBO0FBRUo7O0FBSEc7RUFDQyw4QkFBQTtBQUVKIiwiZmlsZSI6ImxvYWRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImRpYWxvZyB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgfVxuICAgZGlhbG9nOjpiYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjcpO1xuICAgfSJdfQ== */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJncm91cHMuY29tcG9uZW50LnNjc3MifQ== */\";","export const environment = {\n production: false\n};\n","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n\n@Component({\n selector: 'app-buckets',\n templateUrl: './buckets.component.html',\n styleUrls: ['./buckets.component.scss']\n})\nexport class BucketsComponent implements OnInit, AfterViewInit {\n math = Math;\n objectKeys = Object.keys;\n isNaN: Function = Number.isNaN;\n buckets = {};\n bucketToDelete;\n bucketToRemoveNotifications;\n bucketToRemoveQuota;\n editBucketName;\n newBucketName = \"\";\n uiShowQuota = false;\n newBucketQuotaType = \"\";\n newBucketQuota = \"\";\n quotaTypes = [\"fifo\", \"hard\"]\n serviceInfo;\n diskUsageInfo;\n newBucketEventARN = \"\";\n updateBucketEventARN = \"\";\n updateBucketEventFilterPrefix = \"\";\n updateBucketEventFilterSuffix = \"\";\n updateBucketQuotaObj = {};\n updateQuotaTypeChanged = false;\n updateQuotaChanged = false;\n\n newBucketPolicy = \"none\";\n // updateBucketPolicy = \"none\"\n policyTypes = [\"none\", \"upload\", \"download\", \"public\", \"custom\"]\n updatePolicyTypeChanged = false;\n uploadPolicyName;\n uploadPolicyFile;\n uploadPolicyFileName;\n\n dropdownEventTypesList = [];\n selectedEventTypes = [];\n dropdownEventTypesSettings = {};\n newBucketEventFilterPrefix = \"\";\n newBucketEventFilterSuffix = \"\";\n newBucketTagName = \"\";\n newBucketTagValue = \"\";\n newBucketTagsList = {};\n\n tagListChanged = false;\n\n uploadLifecycleName;\n uploadLifecycleFile;\n uploadLifecycleFileName;\n lifecycleBucketName;\n downloadJsonHref;\n downloadLifecycleAvailable = 0;\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService, private sanitizer: DomSanitizer) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n }\n\n @ViewChild('uploadLifecycleFile', { static: true })\n uploadFileInput: any;\n\n ngOnInit() {\n \tthis.getBuckets()\n this.getServerInfo()\n this.getDiskInfo()\n\n this.dropdownEventTypesList = [\n\t {\"id\":1,\"itemName\":\"put\"},\n\t {\"id\":2,\"itemName\":\"get\"},\n\t {\"id\":3,\"itemName\":\"delete\"},\n ];\n\n this.dropdownEventTypesSettings = {\n \t\tsingleSelection: false,\n \t\ttext:\"Select Event Types\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true,\n classes: \"dropdownFix\"\n\t };\n }\n\n //condition select actions\n onEventTypesItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedEventTypes);\n\t}\n\tonEventTypesItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedEventTypes);\n\t}\n\tonEventTypesSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonEventTypesDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n private toggleShowQuota(){\n (this.uiShowQuota) ? this.uiShowQuota = false : this.uiShowQuota = true;\n }\n\n // private toggleUpdateShowQuota(){\n // (this.updateUiShowQuota) ? this.updateUiShowQuota = false : this.updateUiShowQuota = true;\n // }\n\n private getServerInfo(){\n this.apiService.serverInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.serviceInfo = data;\n });\n }\n\n private getDiskInfo(){\n \tthis.apiService.diskInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.diskUsageInfo = data;\n });\n }\n\n private searchItems() {\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.buckets = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.buckets = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n private getBuckets(){\n \tthis.apiService.getBucketsExtended().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"BUCKETS >>>>>>\",data);\n if(data!==null){\n this.buckets = data;\n }else{\n this.buckets = {};\n }\n this.mdbTable.setDataSource(this.buckets);\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n private deleteBucketPrepare(bucketName){\n \tthis.bucketToDelete = bucketName;\n }\n\n private removeBucketNotificationPrepare(bucketName){\n \tthis.bucketToRemoveNotifications = bucketName;\n }\n\n private updateBucketPrepare(bucketName, currentQuota, currentQtype, currentTags){\n this.editBucketName = bucketName;\n\n this.apiService.getBucketTag(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n\n var dataKeys = Object.keys(data);\n console.log(dataKeys[0]);\n if(dataKeys[0]!=\"error\"){\n this.newBucketTagsList = data;\n }\n });\n\n this.apiService.getBucketQuota(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n\n var dataKeys = Object.keys(data);\n console.log(dataKeys[0]);\n if(dataKeys[0]!=\"error\"){\n this.updateBucketQuotaObj = data;\n }else{\n var emptyData = {\n quotatype: \"\"\n };\n this.updateBucketQuotaObj = emptyData;\n }\n });\n\n this.apiService.getBucketPolicy(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n this.newBucketPolicy = data[\"name\"];\n });\n }\n\n private deleteBucketQuotaPrepare(bucketName){\n this.bucketToRemoveQuota = bucketName;\n }\n\n private updateQuotaType(){\n this.updateQuotaTypeChanged = true;\n }\n\n private updatePolicyType(){\n this.updatePolicyTypeChanged = true;\n }\n\n private updateQuota(){\n this.updateQuotaChanged = true;\n }\n\n private deleteBucket(){\n \tthis.apiService.deleteBucket(this.bucketToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Bucket has been deleted', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while deleting bucket');\n }\n this.getBuckets();\n });\n }\n\n private resetForm(){\n \tthis.newBucketName = \"\";\n this.newBucketEventARN = \"\";\n this.newBucketEventFilterPrefix = \"\";\n this.newBucketEventFilterSuffix = \"\";\n this.selectedEventTypes = [];\n this.newBucketQuotaType = \"\";\n this.newBucketPolicy = \"none\";\n this.newBucketQuota = \"\";\n this.newBucketTagName = \"\";\n this.newBucketTagValue = \"\";\n this.newBucketTagsList = {};\n this.updatePolicyTypeChanged = false;\n this.tagListChanged = false;\n this.resetUploadForm();\n }\n\n private resetUpdateForm() {\n this.updateBucketEventARN = \"\";\n this.selectedEventTypes = [];\n this.updateBucketEventFilterPrefix = \"\";\n this.updateBucketEventFilterSuffix = \"\";\n this.updateBucketQuotaObj = {};\n this.updateQuotaTypeChanged = false;\n this.updateQuotaChanged = false;\n this.tagListChanged = false;\n this.updatePolicyTypeChanged = false;\n this.resetUploadForm();\n }\n\n private filePolicyChanged(e) {\n console.log(\"file event\");\n\n this.uploadPolicyFile = e.target.files[0];\n this.uploadPolicyFileName = e.target.files[0].name;\n }\n\n private resetUploadForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadPolicyFile;\n this.uploadPolicyName = \"\";\n this.uploadPolicyFileName = \"\";\n }\n\n private setPolicy(bucketName, updateListAfter){\n if(this.newBucketPolicy!=\"custom\"){\n this.apiService.setBucketPolicy(bucketName, this.newBucketPolicy).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newBucketPolicy+' has been append to '+bucketName, 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n });\n } else {\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n console.log(\"Policy>>>>\",fileReader.result);\n\n let policyFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n console.log(\"Policy2>>>>\",policyFileString);\n this.apiService.setBucketPolicy(bucketName, policyFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy custom has been append to '+bucketName, 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n });\n\n }\n fileReader.readAsText(this.uploadPolicyFile);\n }\n }\n\n\n private createBucket(){\n \tif(this.newBucketName.indexOf(',')>-1){\n \t\tvar bucketsArr = this.newBucketName.split(',')\n \t\tfor (var i = 0; i < bucketsArr.length; i++) {\n \t\t\tif(bucketsArr[i]!=''){\n \t\t\t\tthis.createBucketSimple(bucketsArr[i],this.newBucketEventARN,this.newBucketQuotaType,this.newBucketQuota,this.newBucketPolicy,bucketsArr.length,i+1)\n \t\t\t}\n \t\t}\n \t}else{\n \t\tthis.createBucketSimple(this.newBucketName,this.newBucketEventARN,this.newBucketQuotaType,this.newBucketQuota,this.newBucketPolicy,1,1)\n \t}\n }\n\n private bucketLifecycle(bucket){\n this.lifecycleBucketName = bucket;\n }\n\n private createFormAddTag() {\n if(this.newBucketTagName != \"\" && this.newBucketTagValue != \"\"){\n this.newBucketTagsList[this.newBucketTagName] = this.newBucketTagValue;\n this.newBucketTagName = \"\";\n this.newBucketTagValue = \"\";\n this.tagListChanged = true;\n }\n }\n\n private createFormRemoveTag(tagName) {\n delete this.newBucketTagsList[tagName];\n this.tagListChanged = true;\n }\n\n private updateBucket(quotaType, quotaVal) {\n if(this.updateBucketEventARN != \"\"){\n this.enableNotificationForBucket(this.editBucketName, this.updateBucketEventARN, this.selectedEventTypes, this.updateBucketEventFilterPrefix, this.updateBucketEventFilterSuffix, true)\n }\n\n if(this.tagListChanged){\n this.setTagsForBucket(this.editBucketName,true)\n }\n\n if(this.updateQuotaTypeChanged || this.updateQuotaChanged){\n this.setQuotaForBucket(this.editBucketName, quotaType, quotaVal, true)\n }\n if(this.updatePolicyTypeChanged){\n this.setPolicy(this.editBucketName, true)\n }\n }\n\n private enableNotificationForBucket(bucket, stsARN, eventTypes, filterPrefix, filterSuffix, updateListAfter){\n var eventTypesArr = []\n for (var i = 0; i < eventTypes.length; i++) {\n eventTypesArr.push(eventTypes[i].itemName)\n }\n this.apiService.enableNotificationForBucket(bucket, stsARN, eventTypesArr.join(','), filterPrefix, filterSuffix).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Events for bucket: '+bucket+' has been enabled', 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while enabling events for bucket'+bucket );\n }\n });\n }\n\n private setQuotaForBucket(bucket, quotaType, quotaVal, reloadBucketList){\n this.apiService.setBucketQuota(bucket, quotaType, quotaVal).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Quota for bucket '+bucket+' has been set', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while set quota for bucket');\n }\n if(reloadBucketList){\n this.getBuckets();\n }\n });\n }\n\n private removeBucketEvents(){\n var bucket = this.bucketToRemoveNotifications;\n this.apiService.removeBucketEvents(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Events for bucket '+bucket+' has been removed', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while removing bucket events');\n }\n this.getBuckets();\n });\n }\n\n private removeBucketQuota(){\n var bucket = this.bucketToRemoveQuota;\n this.apiService.removeBucketQuota(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Quota for bucket '+bucket+' has been removed', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while removing bucket quota');\n }\n this.getBuckets();\n });\n }\n\n private createBucketSimple(bucket, eventARN, quotaType, quotaVal, policy, numberOfBuckets, currentBucketNumber){\n \tthis.apiService.createBucket(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Bucket: '+bucket+' has been created', 'Success');\n if(eventARN != \"\"){\n this.enableNotificationForBucket(bucket, eventARN, this.selectedEventTypes, this.newBucketEventFilterPrefix, this.newBucketEventFilterSuffix, false);\n }\n if(quotaType != \"\" && quotaVal != \"\" && quotaVal >= 0){\n this.setQuotaForBucket(bucket, quotaType, quotaVal, false);\n }\n if(Object.keys(this.newBucketTagsList).length > 0){\n this.setTagsForBucket(bucket, false)\n }\n if(this.updatePolicyTypeChanged){\n this.setPolicy(bucket, false)\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating bucket');\n }\n if(numberOfBuckets == currentBucketNumber){\n setTimeout(()=>{\n this.getBuckets();\n }, 500);\n }\n });\n }\n\n private fileChanged(e) {\n console.log(\"eventTriggered\");\n\n this.uploadLifecycleFile = e.target.files[0];\n this.uploadLifecycleFileName = e.target.files[0].name;\n }\n\n private resetLifecycleForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadLifecycleFile;\n this.uploadLifecycleName = \"\";\n this.uploadLifecycleFileName = \"\";\n this.downloadLifecycleAvailable = 0;\n }\n\n private downloadLifecycle(bucket) {\n this.apiService.getLifecycle(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n // console.log(bucket, data);\n if(data[\"error\"]){\n this.toastr.error(JSON.stringify(data), 'Error while getting lifecycle');\n }else{\n if(data==\"\"){\n // this.toastr.error(\"Bucket has no lifecycle\", 'Error while getting lifecycle');\n }else{\n this.downloadLifecycleAvailable = 1;\n var uri = this.sanitizer.bypassSecurityTrustUrl(\"data:text/xml;charset=UTF-8,\" + encodeURIComponent(data.toString()));\n this.downloadJsonHref = uri;\n }\n }\n });\n }\n\n private uploadLifecycle(){\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n let lifecycleFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n this.apiService.setLifecycle(this.lifecycleBucketName,lifecycleFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Lifecycyle has been uploaded for bucket: '+this.lifecycleBucketName+'', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while uploading lifecycyle');\n }\n });\n }\n fileReader.readAsText(this.uploadLifecycleFile);\n }\n\n private setTagsForBucket(bucket,reloadBucketList){\n var tagsObj = this.newBucketTagsList;\n var tagsKeys = this.objectKeys(tagsObj);\n var tagArr = [];\n for (let i = 0; i < tagsKeys.length; i++) {\n var tagString = tagsKeys[i]+\"=\"+tagsObj[tagsKeys[i]]\n tagArr.push(tagString)\n }\n var tagString = tagArr.join(\"&\");\n console.log(\"TAG STRING >>>>\", tagString)\n this.apiService.setBucketTag(bucket, tagString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Tags for bucket '+bucket+' has been set', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while set tags for bucket');\n }\n if(reloadBucketList){\n this.getBuckets();\n }\n });\n }\n\n private downloadPolicy(bucket,fileName) {\n this.apiService.getBucketPolicy(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"download policy >>> \", bucket, data);\n if(data[\"error\"]){\n this.toastr.error(JSON.stringify(data), 'Error while getting policy');\n }else{\n if(data==\"\"){\n this.toastr.error(\"Bucket has no policy\", 'Error while getting policy');\n }else{\n var link = document.createElement('a');\n link.href = \"data:text/json;charset=UTF-8,\" + encodeURIComponent(data[\"policy\"].toString());\n link.download = fileName\n link.click();\n }\n }\n });\n }\n\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ApiService } from '../api.service';\n\n@Component({\n selector: 'app-server',\n templateUrl: './server.component.html',\n styleUrls: ['./server.component.scss']\n})\nexport class ServerComponent implements OnInit {\n\n objectKeys = Object.keys;\n objectValues = Object.values;\n math = Math;\n rawView = '';\n serviceInfo;\n diskUsageInfo;\n bucketSizes=[];\n hgChartDatasets=[{data: [], label: 'Number of objects'}];\n hgChartLabels=[];\n hgChartType = 'radar';\n hgChartColors = [\n {\n backgroundColor: 'rgba(151,187,205,0.9)',\n borderColor: 'rgba(151,187,205,1)',\n borderWidth: 2,\n pointBackgroundColor: 'rgba(151,187,205,1)',\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: 'rgba(151,187,205,1)'\n }\n ];\n hgChartOptions = {\n responsive: true\n };\n\n szChartDatasets=[{data: [], label: 'Size of bucket in Bytes'}];\n szChartLabels=[];\n szChartType = 'bar';\n szChartColors = [\n {\n backgroundColor: 'rgba(151,187,205,0.9)',\n borderColor: 'rgba(151,187,205,1)',\n borderWidth: 2,\n pointBackgroundColor: 'rgba(151,187,205,1)',\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: 'rgba(151,187,205,1)'\n }\n ];\n szChartOptions = {\n responsive: true\n };\n\n constructor(private apiService: ApiService) { }\n\n ngOnInit() {\n \tthis.serverInfo()\n this.diskInfo()\n }\n\n public hgChartClicked(e: any): void {\n }\n\n public hgChartHovered(e: any): void {\n }\n\n public szChartClicked(e: any): void {\n }\n\n public szChartHovered(e: any): void {\n }\n\n private serverInfo(){\n \tthis.apiService.serverInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.serviceInfo = data;\n });\n }\n\n private diskInfo(){\n \tthis.apiService.diskInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"Disk Usage >>>>>>>>>>>>\",data);\n this.diskUsageInfo = data;\n if(data.hasOwnProperty('objectsSizesHistogram')){\n var objectsSizesHistogram = this.diskUsageInfo.objectsSizesHistogram;\n var histogramKeysRawArr = [];\n var histogramValsRawArr = [];\n if(objectsSizesHistogram){\n histogramKeysRawArr = Object.keys(objectsSizesHistogram)\n histogramValsRawArr = Object.values(objectsSizesHistogram)\n }\n this.hgChartDatasets[0].data = histogramValsRawArr;\n\n this.hgChartLabels = [];\n for (let i = 0; i < histogramKeysRawArr.length; i++) {\n var histogramLabel = histogramKeysRawArr[i].split('_').join(' ');\n this.hgChartLabels.push(histogramLabel)\n }\n }\n\n if(data.hasOwnProperty('bucketsSizes') && this.diskUsageInfo.bucketsSizes != {} && this.diskUsageInfo.bucketsSizes != null ){\n var objectBucketSizes = this.diskUsageInfo.bucketsSizes;\n const bucketSizesKeysRawArr = Object.keys(objectBucketSizes)\n const bucketSizesValsRawArr = Object.values(objectBucketSizes)\n this.szChartDatasets[0].data = bucketSizesValsRawArr;\n this.szChartLabels= bucketSizesKeysRawArr;\n }\n });\n }\n\n private rawPrepare(obj){\n this.rawView = obj;\n }\n\n}\n","export default \"
\\n
\\n
\\n

Groups

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\t\\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\t \\n\\t \\n\\t \\n \\n \\n \\n \\n \\n\\t
NamePolicyStatusMembersOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].name}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].policy}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].status}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n
    \\n
  • {{member}}
  • \\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t \\t \\t\\n\\t \\t \\t\\n\\t \\t \\t 0\\\" mdbTooltip=\\\"You can delete only groups whit no memebers\\\" placement=\\\"top\\\">\\n\\t \\t
\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

{{modalCreateEditTitle}}

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t \\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t \\n \\t\\t\\t\\t
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Group

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button group {{groupToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Policy

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\";","import { Component, OnInit } from '@angular/core';\nimport { ApiService } from './api.service';\nimport { environment } from './../environments/environment';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit {\n title = 'Adminio-UI';\n\n constructor(private apiService: ApiService) { }\n\n ngOnInit() {\n \tthis.checkAuthStatus()\n }\n\n private checkAuthStatus(){\n this.apiService.checkAuthStatus().subscribe((data)=>{\n console.log(\"DATA AUTH>>>\", data);\n this.apiService.validateAuthInResponse(data)\n });\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzZXJ2ZXIuY29tcG9uZW50LnNjc3MifQ== */\";","export default \"\\n\\n\\n\\n \\n Adminio UI \\n\\n \\n \\n\\n \\n \\n \\n \\n
\\n \\n \\n\\t\\t\\t\\t\\t\\n
\\n
\\n \\n\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\";","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { MDBBootstrapModule } from 'angular-bootstrap-md';\nimport { UsersComponent } from './users/users.component';\nimport { FormsModule, FormControl, FormGroup, Validators, ReactiveFormsModule} from \"@angular/forms\";\nimport { ServerComponent } from './server/server.component';\nimport { FilterPipe } from './filter.pipe';\nimport { PoliciesComponent } from './policies/policies.component';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { AngularMultiSelectModule } from 'angular2-multiselect-dropdown';\nimport { LoaderComponent } from './loader/loader.component';\nimport { LoaderService } from './loader.service';\nimport { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';\nimport { LoaderInterceptor } from './loader.interceptor';\nimport { BucketsComponent } from './buckets/buckets.component';\nimport { CommonModule } from '@angular/common';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ToastrModule } from 'ngx-toastr';\nimport { GroupsComponent } from './groups/groups.component';\nimport { EnvServiceProvider } from './env.service.provider';\n\n\n\n@NgModule({\n declarations: [\n AppComponent,\n UsersComponent,\n ServerComponent,\n FilterPipe,\n PoliciesComponent,\n LoaderComponent,\n BucketsComponent,\n GroupsComponent,\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n MDBBootstrapModule.forRoot(),\n HttpClientModule,\n ReactiveFormsModule,\n NgxJsonViewerModule,\n AngularMultiSelectModule,\n FormsModule,\n CommonModule,\n BrowserAnimationsModule,\n ToastrModule.forRoot()\n ],\n providers: [\n EnvServiceProvider,\n LoaderService,\n { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJidWNrZXRzLmNvbXBvbmVudC5zY3NzIn0= */\";","import { EnvService } from './env.service';\n\nexport const EnvServiceFactory = () => {\n // Create env\n const env = new EnvService();\n\n // Read environment variables from browser window\n const browserWindow = window || {};\n const browserWindowEnv = browserWindow['__env'] || {};\n\n // Assign environment variables from browser window to env\n // In the current implementation, properties from env.js overwrite defaults from the EnvService.\n // If needed, a deep merge can be performed here to merge properties instead of overwriting them.\n for (const key in browserWindowEnv) {\n if (browserWindowEnv.hasOwnProperty(key)) {\n env[key] = window['__env'][key];\n }\n }\n\n return env;\n};\n\nexport const EnvServiceProvider = {\n provide: EnvService,\n useFactory: EnvServiceFactory,\n deps: [],\n};\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ1c2Vycy5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n@Component({\n\tselector: 'app-groups',\n\ttemplateUrl: './groups.component.html',\n\tstyleUrls: ['./groups.component.scss']\n})\n\nexport class GroupsComponent implements OnInit, AfterViewInit {\n\tobjectKeys = Object.keys;\n\tjsn = JSON;\n\tgroups = {};\n\tgroupsWithMembers = [];\n\tusers = {};\n\trawPolicies = {};\n\tgroupToUpdate = {};\n\tnewGroupName = \"\";\n\tnewGroupPolicy = \"\";\n\tnewGroupStatus = \"\";\n\tpolicies;\n\tupdateStatusValues = ['enabled','disabled'];\n\tmodalCreateEditTitle;\n\tmodalCreateEditButtonText;\n\tmodalEditMode = false;\n\trawView = \"\";\n\tusersToRemove = [];\n\tgroupToDelete = \"\";\n\n\n\n\tdropdownList = [];\n\tselectedItems = [];\n\tdropdownSettings = {};\n\n\n\n\t@ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n\t@ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n\n\tprevious: string;\n\tsearchText: string = '';\n\n \tconstructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService) { }\n\n \t@HostListener('input') oninput() {\n\t\tif(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n\t\t this.searchItems();\n\t\t}\n\t\tif(event && event['target'] !== undefined && event.target[\"name\"] !== undefined && event.target[\"name\"] == \"newGroupName\"){\n\t if(this.modalEditMode){\n\t if(this.newGroupName == this.groupToUpdate[\"name\"]){\n\t console.log('hit')\n\t this.isEditMode(true)\n\t }else{\n\t this.isNowCopyMode();\n\t }\n\t }\n\t }\n\t}\n\n\tngOnInit() {\n\t\tthis.getGroups()\n\t\tthis.getListOfUsers()\n\t\tthis.getListOfPolicies()\n\t\tthis.isEditMode(false)\n\n\t\tthis.dropdownList = [\n\t\t {\"id\":1,\"itemName\":\"wait! i'm getting policies ASAP\"}\n\t ];\n\n\t this.dropdownSettings = {\n\t\t\tsingleSelection: false,\n\t\t\ttext:\"Select Members\",\n\t\t\tselectAllText:'Select All',\n\t\t\tunSelectAllText:'UnSelect All',\n\t\t\tenableSearchFilter: true\n\t\t};\n\t}\n\n\tonItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedItems);\n\t}\n\tOnItemDeSelect(item:any){\n\t\tthis.usersToRemove.push(item[\"itemName\"])\n\t console.log(item);\n\t console.log(this.selectedItems);\n\t}\n\tonSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonDeSelectAll(items: any){\n\n\t\t\tfor (let i = 0; i < this.selectedItems.length; i++) {\n\t\t\t\tthis.usersToRemove.push(this.selectedItems[i][\"itemName\"])\n\t\t\t}\n\n\t this.selectedItems = [];\n\t}\n\n\tprivate searchItems() {\n\t\tconst prev = this.mdbTable.getDataSource();\n\n\t\tif (!this.searchText) {\n\t\t this.mdbTable.setDataSource(this.previous);\n\t\t this.groups = this.mdbTable.getDataSource();\n\t\t}\n\n\t\tif (this.searchText) {\n\t\t this.groups = this.mdbTable.searchLocalDataBy(this.searchText);\n\t\t this.mdbTable.setDataSource(prev);\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n\t this.mdbTablePagination.calculateFirstItemIndex();\n\t this.mdbTablePagination.calculateLastItemIndex();\n\t this.cdRef.detectChanges();\n\t}\n\n\tprivate isEditMode(state){\n\t\tthis.modalEditMode = state;\n\t\tif(state){\n\t\t this.modalCreateEditTitle = \"Edit group\"\n\t\t this.modalCreateEditButtonText = \"Update\"\n\t\t}else{\n\t\t this.modalCreateEditTitle = \"Create group\"\n\t\t this.modalCreateEditButtonText = \"Create\"\n\t\t}\n\t}\n\n\tprivate isNowCopyMode(){\n\t\tthis.modalCreateEditTitle = \"Copy group\"\n\t\tthis.modalCreateEditButtonText = \"Copy\"\n\t}\n\n\tprivate commaToBr(arr) {\n\t\t// console.log(arr)\n\t var str = arr.join('\\n\\r');\n\t return str;\n\t}\n\n\tpublic b64unpack(str){\n\t// console.log(JSON.parse(atob(str)))\n\t\treturn JSON.parse(atob(str));\n\t}\n\n\tprivate rawPrepare(str){\n\t\tconsole.log(this.rawPolicies[str])\n\t\tthis.rawView = this.b64unpack(this.rawPolicies[str]);\n\t}\n\n\n\tprivate getGroups(){\n\t\tthis.groups = {};\n\t\tthis.groupsWithMembers = [];\n\t\tthis.previous = \"\";\n\t\tthis.apiService.getGroups().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t console.log(data);\n\t\t if(data!==null){\n\t\t this.groups = data;\n\t\t for (var i = 0; i < this.objectKeys(data).length; i++) {\n\t\t\t\t\tlet tempGroupName = data[i]\n\t\t\t\t\tthis.apiService.getGroupDescription(tempGroupName).subscribe((data)=>{\n\t\t\t\t\t\tif(data!==null){\n\t\t\t\t\t\t\tthis.groupsWithMembers.push(data)\n\t\t\t\t\t\t\tthis.mdbTable.setDataSource(this.groupsWithMembers);\n\t\t \t\t\t\t\tthis.previous = this.mdbTable.getDataSource();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\tconsole.log(this.groupsWithMembers)\n\t\t\tthis.groups = this.groupsWithMembers;\n\t\t }\n\n\n\t\t});\n\t}\n\tprivate getListOfUsers(){\n\t\tthis.apiService.getUsers().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t\tif(data!==null){\n\t\t\t\tthis.dropdownList = Object.entries(data).map((e) => ( { \"id\":e[0],\"itemName\":e[0] } ));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getGroupDescription(group){\n\t\tthis.isEditMode(true);\n\t\tconsole.log(group)\n\t\tthis.apiService.getGroupDescription(group).subscribe((data)=>{\n\t\t\tif(data!==null){\n\t\t\t\tconsole.log(data)\n\t\t\t\tthis.groupToUpdate = data;\n\t\t\t\tthis.newGroupName = data[\"name\"]\n\t\t\t\tthis.newGroupPolicy = data[\"policy\"]\n\t\t\t\tthis.newGroupStatus = data[\"status\"]\n\t\t\t\tfor (var i = 0; i < data[\"members\"].length; i++) {\n\t\t\t\t\tvar tempMember = data[\"members\"][i];\n\t\t\t\t\tthis.selectedItems.push({\"id\":tempMember,\"itemName\":tempMember})\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getListOfPolicies(){\n\t\tthis.apiService.getPolicies().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t this.policies = Object.keys(data);\n\t\t this.rawPolicies = data;\n\t\t});\n\t}\n\n\tprivate resetForm(){\n\t\tthis.newGroupName = \"\";\n\t\tthis.selectedItems = [];\n\t\tthis.newGroupPolicy = \"\";\n\t\tthis.newGroupStatus = \"\";\n\t}\n\n\tprivate markGroupToDelete(group){\n\t\tconsole.log(\"GROUP TO DELETE\", group);\n\n\t\tthis.groupToDelete = group\n\t}\n\n\tprivate deleteGroup(){\n\t\tconsole.log(\"GROUP TO DELETE >>>\", this.groupToDelete);\n\n\t\tthis.apiService.updateMembersGroup(this.groupToDelete,[],\"true\").subscribe((data)=>{\n\t\t\t this.apiService.validateAuthInResponse(data)\n\t if(data[\"Success\"]){\n\t this.toastr.success('Group: '+this.newGroupName+' has been removed', 'Success');\n\t this.usersToRemove = [];\n\t\t\t\t\tthis.refreshList();\n\t\t\t\t\tthis.groupToDelete = \"\";\n\t }else{\n\t this.toastr.error(JSON.stringify(data), 'Error while removing group');\n\t\t\t\t\tthis.refreshList();\n\t\t\t\t\tthis.groupToDelete = \"\";\n\t }\n\t });\n\t}\n\n\tprivate wipeGroupMembers(){\n\n\t\tthis.apiService.updateMembersGroup(this.newGroupName,this.usersToRemove,\"true\").subscribe((data)=>{\n\t\t\t this.apiService.validateAuthInResponse(data)\n\t if(data[\"Success\"]){\n\t this.toastr.success('Group: '+this.newGroupName+' members has been removed', 'Success');\n\t this.usersToRemove = [];\n\t }else{\n\t this.toastr.error(JSON.stringify(data), 'Error while removing members from group');\n\t }\n\t });\n\t}\n\n\tprivate updatePolicy(){\n\t\tif(this.newGroupPolicy !== null && this.newGroupPolicy != \"\"){\n\t \tthis.apiService.setPolicy(this.newGroupPolicy,this.newGroupName,\"true\").subscribe((data)=>{\n\t\t\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' policy has been set to '+this.newGroupPolicy, 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while setting policy to group');\n\t\t }\n\t\t });\n\t }\n\t}\n\n\tprivate updateStatus(){\n\t\tif(this.newGroupStatus !== null && this.newGroupStatus != \"\"){\n\t \tthis.apiService.setStatusGroup(this.newGroupName,this.newGroupStatus).subscribe((data)=>{\n\t\t\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' status has been set to '+this.newGroupStatus, 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while setting status to group');\n\t\t }\n\t\t });\n\t }\n\t}\n\n\tprivate refreshList(){\n\t\tthis.updatePolicy();\n\t\tthis.updateStatus();\n\t\tthis.getGroups();\n\t}\n\n\tprivate createGroup(){\n\t\tconsole.log(\"CREATE GROUP CALLED\")\n\t\tlet newMembers = []\n\t\tfor (var i = 0; i < this.selectedItems.length; i++) {\n\t\t\tnewMembers.push(this.selectedItems[i].itemName)\n\t\t}\n\n\t\t//remove users from group\n\t\tconsole.log(\"grouptoUpdate\",this.groupToUpdate);\n\n\t\tif(this.groupToUpdate!==null && this.groupToUpdate!=\"\" && this.groupToUpdate){\n\t\t\tif(this.usersToRemove.length > 0){\n\t\t\t\tthis.wipeGroupMembers()\n\t\t\t}\n\t\t}\n\n\t\t//add all new users to group\n\t\tif(newMembers.length > 0){\n\t\t\tthis.apiService.updateMembersGroup(this.newGroupName,newMembers,\"false\").subscribe((data)=>{\n\t\t\t\t this.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' has been created', 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while creating group');\n\t\t }\n\t\t this.refreshList();\n\t\t });\n\t\t}else{\n\t\t\tthis.refreshList();\n\t\t}\n this.isEditMode(false);\n this.groupToUpdate = {};\n\t}\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(items: any[], searchPolicy: string): any[] {\n\n if (!items) {\n return [];\n }\n if (!searchPolicy) {\n return items;\n }\n searchPolicy = searchPolicy.toLocaleLowerCase();\n\n return items.filter(it => {\n return it.toLocaleLowerCase().includes(searchPolicy);\n });\n }\n\n}\n","export default \"
\\n
\\n
\\n

Buckets

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\t\\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n \\n\\t \\n\\t \\t \\n\\t \\n\\t \\n \\n \\n \\n \\n \\n\\t
NameTagsCreation DateSizeQuotaEventOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n {{buckets[b].name}}\\n {{buckets[b].policy}}\\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n 0\\\">\\n
    \\n
  • {{tag}}: {{buckets[b].tags[tag]}}
  • \\n
\\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{buckets[b].info.creationDate | date : \\\"dd/MM/yy HH:mm:ss\\\" }}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\\\">\\n \\n {{(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)+'').length > 3 ? math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024/1024)+' Gb' : isNaN(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)) ? '–' : math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024) +' Mb'}}\\n \\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\\\">\\n \\n {{buckets[b].quota?.quotatype}}\\n {{buckets[b].quota?.quotatype}}\\n \\n 0\\\" mdbTooltip=\\\"{{buckets[b].quota?.quota}} bytes\\\" placement=\\\"top\\\">\\n {{(math.round(buckets[b].quota?.quota/1024/1024)+'').length > 3 ? math.round(buckets[b].quota?.quota/1024/1024/1024)+' Gb' : isNaN(math.round(buckets[b].quota?.quota/1024/1024)) ? '–' : math.round(buckets[b].quota?.quota/1024/1024) +' Mb'}}\\n \\n \\n ∞\\n \\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && serviceInfo?.sqsARN\\\">\\n \\n Lambda:\\n \\n {{c.Lambda}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n \\n Topic:\\n \\n {{c.Topic}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n \\n Queue:\\n \\n {{c.Queue}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t \\t \\t \\n\\t \\t \\t \\n\\t \\t \\t \\n\\t \\t \\t \\n \\n\\t \\t
\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Bucket Lifecycyle

\\n
\\n
\\n
\\n
\\n
\\n This bucket already have a lifecycyle policy, you can dowload it by clicking on \\\"dowload icon\\\" >\\n \\n
\\n Or override it by upload a new lifecycle policy.\\n
\\n
\\n Lifecycle policy is structrured xml file. You can use examples from Minio\\n documentation. Or use an AWS S3 documentation\\n Object Lifecycle Management\\n
\\n
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button bucket {{bucketToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket Notifications

\\n
\\n
\\n Are you shure?
After you click on \\\"remove\\\" button bucket {{bucketToDelete}} notifications will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket Quota Limits

\\n
\\n
\\n Are you shure?
After you click on \\\"remove\\\" button quota for bucket {{bucketToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Create Bucket

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n You can pass multiple names with \\\",\\\" delimiter\\n
\\n
Policy
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
Tags
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\t\\t\\t\\t
\\n
\\n {{tag}}: {{newBucketTagsList[tag]}}\\n
\\n
Quota
\\n \\n\\n
\\n \\n \\t\\t\\t\\t\\t\\t\\t
\\n\\n
\\n \\n In \\\"fifo\\\" mode - old data automatically will be removed when you reach quota limit.
\\n In \\\"hard\\\" mode - you can't add new data to bucket if quota limit reached.\\n
\\n\\n
\\n \\t\\t\\t\\t\\t\\n
\\n
Bytes
\\n
\\n
\\n
\\n
\\n
Events section
\\n

\\n
\\n \\t\\t\\t\\t\\t\\t\\t\\t\\t\\n \\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Update Bucket

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
Policy
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
Tags
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\t\\t\\t\\t
\\n
\\n {{tag}}: {{newBucketTagsList[tag]}}\\n
\\n
\\n
Quota section
\\n \\n
\\n \\n \\t\\t\\t\\t\\t\\t\\t
\\n\\n
\\n \\n In \\\"fifo\\\" mode - old data automatically will be removed when you reach quota limit.
\\n In \\\"hard\\\" mode - you can't add new data to bucket if quota limit reached.\\n
\\n\\n
\\n \\t\\t\\t\\t\\t\\n
\\n
Bytes
\\n
\\n
\\n
\\n
\\n
Events section
\\n

\\n
\\n \\t\\t\\t\\t\\t\\t\\t\\t\\t\\n \\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\";","//loader.interceptor.ts\nimport { Component, OnInit } from '@angular/core';\nimport { LoaderService } from '../loader.service';\n\n@Component({\nselector: 'app-loading',\ntemplateUrl: './loader.component.html',\nstyleUrls: ['./loader.component.scss']\n})\nexport class LoaderComponent implements OnInit {\n\nloading: boolean;\nerror: boolean;\nconstructor(private loaderService: LoaderService) {\n this.loaderService.isLoading.subscribe((v) => {\n this.loading = v;\n this.error = this.loaderService.isError;\n });\n}\nngOnInit() {\n}\n\n}\n","export default \"
\\n\\t
\\n\\t\\t
\\n\\t\\t

Policies

\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t     \\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t
NameActionPrincipalEffectResourceConditionsOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectKeys(policies[pol])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • {{action}}
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t{{policies[pol].Statement.Principal}}\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • {{st.Effect}}
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • {{resource}}
    • \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
          \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t \\n\\t\\t \\t\\t \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Policy

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button policy {{policyToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Upload Policy

\\n
\\n
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Policy

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

{{modalCreateEditTitle}}

\\n
\\n
\\n \\t\\n \\t\\t
\\n\\t\\t\\t\\t\\t
 
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t \\t
\\n In Edit mode you can make a copy of policy - Just rename it!\\n
\\n\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t Principal\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
Buckets section
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t arn:aws:s3:::\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t /\\\" [(ngModel)]=\\\"newPolicy.bucket\\\" aria-label=\\\"Recipient's username\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t aria-describedby=\\\"s3-prefix\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
BucketOptions
{{bst}}
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
Conditions section
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
Condition and options
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}  \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
 
\\n\\t\\t\\t\\t\\t
\\n\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t
EffectActionResourceConditionsOptions
{{st.Effect}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{action}}
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{resource}}
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t  \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n \\n
\\n \\n
\\n
\\n
\\n\";","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { ApiService } from '../api.service';\nimport { FormControl, FormGroup, Validators, ReactiveFormsModule } from \"@angular/forms\";\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n@Component({\n selector: 'app-users',\n templateUrl: './users.component.html',\n styleUrls: ['./users.component.scss']\n})\nexport class UsersComponent implements OnInit, AfterViewInit {\n validatingForm: FormGroup;\n updateUser: FormGroup;\n users = {};\n usersRaw = {};\n userToDelete;\n userToUpdate;\n objectKeys = Object.keys;\n objectValues = Object.values;\n jsn = JSON;\n policies;\n updateStatusValues = ['enabled','disabled'];\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n }\n\n ngOnInit() {\n \tthis.getListOfUsers()\n \tthis.getListOfPolicies()\n this.resetForm()\n this.updateUserFrom()\n }\n\n searchItems() {\n console.log(this.searchText)\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.users = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.users = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n get newUserAccess() {\n\treturn this.validatingForm.get('newUserAccess');\n }\n\n get newUserSecret() {\n\treturn this.validatingForm.get('newUserSecret');\n }\n\n get newUserPolicy() {\n\treturn this.validatingForm.get('newUserPolicy');\n }\n\n private generatePassword(length) {\n var charset = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n var retVal = \"\";\n for (var i = 0, n = charset.length; i < length; ++i) {\n retVal += charset.charAt(Math.floor(Math.random() * n));\n }\n\n return retVal;\n }\n\n get accessKeyUpdate() {\n return this.updateUser.get('accessKeyUpdate');\n }\n\n get secretKeyUpdate() {\n return this.updateUser.get('secretKeyUpdate');\n }\n\n get policyUpdate() {\n return this.updateUser.get('policyUpdate');\n }\n\n get statusUpdate() {\n return this.updateUser.get('statusUpdate');\n }\n\n private updateUserFrom(){\n this.updateUser = new FormGroup({\n accessKeyUpdate: new FormControl({value: '', disabled: true}, Validators.required),\n secretKeyUpdate: new FormControl(''),\n policyUpdate: new FormControl('', Validators.required),\n statusUpdate: new FormControl('', Validators.required)\n });\n }\n\n private resetForm(){\n \tthis.validatingForm = new FormGroup({\n newUserAccess: new FormControl(this.generatePassword(16), Validators.minLength(5)),\n newUserSecret: new FormControl(this.generatePassword(24), Validators.minLength(10)),\n newUserPolicy: new FormControl('',Validators.minLength(0))\n });\n }\n\n private getListOfUsers(){\n \tthis.apiService.getUsers().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data)\n this.usersRaw = data;\n const arrayOfUsers = Object.entries(data).map((e) => ( { [e[0]]: e[1] } ));\n this.users = arrayOfUsers;\n this.mdbTable.setDataSource(arrayOfUsers);\n console.log(arrayOfUsers)\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n\n private getListOfPolicies(){\n \tthis.apiService.getPolicies().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.policies = Object.keys(data);\n });\n }\n\n private createUser(){\n \tvar userAccess = this.newUserAccess.value;\n \tvar userSecret = this.newUserSecret.value;\n \tvar userPolicy = this.newUserPolicy.value;\n\n \tconsole.log(userPolicy)\n\n \tif(userPolicy!=''){\n \t\tthis.apiService.addUserExtended(userAccess,userSecret,userPolicy).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n\t console.log(data);\n\t this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+userAccess+' with policy '+userPolicy+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating user');\n }\n\t });\n \t}else{\n \t\tthis.apiService.addUser(userAccess,userSecret).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n\t console.log(data);\n\t this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+userAccess+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating user');\n }\n\t });\n \t}\n }\n\n private setStatusUser(accessKey,status){\n \tif(status == 'enabled'){\n \t\tstatus = 'disabled'\n \t}else{\n \t\tstatus = 'enabled'\n \t}\n \tthis.apiService.setStatusUser(accessKey,status).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('User: '+accessKey+' status has changed to '+status, 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while changing state for user');\n }\n this.getListOfUsers();\n });\n }\n\n private deleteUserPrepare(accessKey){\n \tthis.userToDelete = accessKey\n }\n\n private updateUserPrepare(accessKey){\n this.userToUpdate = accessKey\n this.updateUser.patchValue({'accessKeyUpdate': accessKey});\n if(this.usersRaw[accessKey]['policyName']){\n this.updateUser.patchValue({'policyUpdate': this.usersRaw[accessKey]['policyName']});\n }\n if(this.usersRaw[accessKey]['status']){\n this.updateUser.patchValue({'statusUpdate': this.usersRaw[accessKey]['status']});\n }\n console.log(this.usersRaw[accessKey])\n }\n\n private updateGenNewPassword(){\n this.updateUser.patchValue({'secretKeyUpdate': this.generatePassword(24)});\n }\n\n private updateUserSave(){\n var updatedSecret = this.updateUser.value.secretKeyUpdate;\n var updatedPolicy = this.updateUser.value.policyUpdate;\n var updatedStatus = this.updateUser.value.statusUpdate;\n\n this.apiService.updateUser(this.userToUpdate,updatedSecret,updatedPolicy,updatedStatus).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+this.userToUpdate+' has been updated', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while updating user');\n }\n });\n }\n\n\n private deleteUser(){\n \tthis.apiService.deleteUser(this.userToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('User: '+this.userToDelete+' has been deleted', 'Success');\n }\n this.updateUserFrom();\n this.getListOfUsers();\n });\n }\n\n}\n","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'app-policies',\n templateUrl: './policies.component.html',\n styleUrls: ['./policies.component.scss']\n})\nexport class PoliciesComponent implements OnInit {\n objectKeys = Object.keys;\n objectValues = Object.values;\n policies = {};\n policiesRaw = {};\n b64decode;\n rawView = '';\n policyToDelete;\n policyToUpdate;\n modalEditMode;\n jsn = JSON;\n uploadPolicyName;\n uploadPolicyFile;\n uploadPolicyFileName;\n downloadJsonHref;\n modalCreateEditTitle;\n modalCreateEditButtonText;\n\n dropdownActionList = [];\n dropdownConditionList = [];\n dropdownConditionKeyList = [];\n\n selectedActions = [];\n selectedCondition = [];\n selectedConditionKey = [];\n\n dropdownActionSettings = {};\n dropdownConditionSettings = {};\n dropdownConditionKeySettings = {};\n\n newPolicy = {\n \tname:\"\",\n \teffect:\"allow\",\n \tbucket:\"\",\n };\n\n newPolicyRaw = {\n \tVersion:\"\",\n \tStatement: []\n }\n\n newStatement = {\n Action: [],\n Effect: \"\",\n Resource: [],\n Condition: {},\n Principal: \"\"\n }\n\n newConditionValue = \"\"\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService, private sanitizer: DomSanitizer) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n if(event && event['target'] !== undefined && event.target[\"name\"] !== undefined && event.target[\"name\"] == \"newPolicyName\"){\n if(this.modalEditMode){\n if(this.newPolicy.name == this.policyToUpdate){\n this.isEditMode(true)\n }else{\n this.isNowCopyMode();\n }\n }\n }\n\n }\n\n @ViewChild('uploadPolicyFile', { static: true })\n uploadFileInput: any;\n\n ngOnInit() {\n \tthis.getPolicies()\n\n\n \tthis.dropdownActionList = [\n {\"id\":1,\"itemName\":\"s3:AbortMultipartUpload\"},\n {\"id\":2,\"itemName\":\"s3:CreateBucket\"},\n {\"id\":3,\"itemName\":\"s3:DeleteBucket\"},\n {\"id\":4,\"itemName\":\"s3:ForceDeleteBucket\"},\n {\"id\":5,\"itemName\":\"s3:DeleteBucketPolicy\"},\n {\"id\":6,\"itemName\":\"s3:DeleteObject\"},\n {\"id\":7,\"itemName\":\"s3:GetBucketLocation\"},\n {\"id\":8,\"itemName\":\"s3:GetBucketNotification\"},\n {\"id\":9,\"itemName\":\"s3:GetBucketPolicy\"},\n {\"id\":10,\"itemName\":\"s3:GetObject\"},\n {\"id\":11,\"itemName\":\"s3:HeadBucket\"},\n {\"id\":12,\"itemName\":\"s3:ListAllMyBuckets\"},\n {\"id\":13,\"itemName\":\"s3:ListBucket\"},\n {\"id\":14,\"itemName\":\"s3:ListBucketVersions\"},\n {\"id\":15,\"itemName\":\"s3:ListBucketMultipartUploads\"},\n {\"id\":16,\"itemName\":\"s3:ListenNotification\"},\n {\"id\":17,\"itemName\":\"s3:ListenBucketNotification\"},\n {\"id\":18,\"itemName\":\"s3:ListMultipartUploadParts\"},\n {\"id\":19,\"itemName\":\"s3:PutLifecycleConfiguration\"},\n {\"id\":20,\"itemName\":\"s3:GetLifecycleConfiguration\"},\n {\"id\":21,\"itemName\":\"s3:PutBucketNotification\"},\n {\"id\":22,\"itemName\":\"s3:PutBucketPolicy\"},\n {\"id\":23,\"itemName\":\"s3:PutObject\"},\n {\"id\":24,\"itemName\":\"s3:DeleteObjectVersion\"},\n {\"id\":25,\"itemName\":\"s3:DeleteObjectVersionTagging\"},\n {\"id\":26,\"itemName\":\"s3:GetObjectVersion\"},\n {\"id\":27,\"itemName\":\"s3:GetObjectVersionTagging\"},\n {\"id\":28,\"itemName\":\"s3:PutObjectVersionTagging\"},\n {\"id\":29,\"itemName\":\"s3:BypassGovernanceRetention\"},\n {\"id\":30,\"itemName\":\"s3:PutObjectRetention\"},\n {\"id\":31,\"itemName\":\"s3:GetObjectRetention\"},\n {\"id\":32,\"itemName\":\"s3:GetObjectLegalHold\"},\n {\"id\":33,\"itemName\":\"s3:PutObjectLegalHold\"},\n {\"id\":34,\"itemName\":\"s3:GetBucketObjectLockConfiguration\"},\n {\"id\":35,\"itemName\":\"s3:PutBucketObjectLockConfiguration\"},\n {\"id\":36,\"itemName\":\"s3:GetBucketTagging\"},\n {\"id\":37,\"itemName\":\"s3:PutBucketTagging\"},\n {\"id\":38,\"itemName\":\"s3:GetObjectTagging\"},\n {\"id\":39,\"itemName\":\"s3:PutObjectTagging\"},\n {\"id\":40,\"itemName\":\"s3:DeleteObjectTagging\"},\n {\"id\":41,\"itemName\":\"s3:PutEncryptionConfiguration\"},\n {\"id\":42,\"itemName\":\"s3:GetEncryptionConfiguration\"},\n {\"id\":43,\"itemName\":\"s3:PutBucketVersioning\"},\n {\"id\":44,\"itemName\":\"s3:GetBucketVersioning\"},\n {\"id\":45,\"itemName\":\"s3:GetReplicationConfiguration\"},\n {\"id\":46,\"itemName\":\"s3:PutReplicationConfiguration\"},\n {\"id\":47,\"itemName\":\"s3:ReplicateObject\"},\n {\"id\":48,\"itemName\":\"s3:ReplicateDelete\"},\n {\"id\":49,\"itemName\":\"s3:ReplicateTags\"},\n {\"id\":50,\"itemName\":\"s3:GetObjectVersionForReplication\"}\n ];\n\n this.dropdownActionSettings = {\n \t\tsingleSelection: false,\n \t\ttext:\"Select Actions\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n\n \tthis.dropdownConditionList = [\n {\"id\":1,\"itemName\":\"ArnEquals\"},\n {\"id\":2,\"itemName\":\"ArnEqualsIfExists\"},\n {\"id\":3,\"itemName\":\"ArnLike\"},\n {\"id\":4,\"itemName\":\"ArnLikeIfExists\"},\n {\"id\":5,\"itemName\":\"ArnNotEquals\"},\n {\"id\":6,\"itemName\":\"ArnNotEqualsIfExists\"},\n {\"id\":7,\"itemName\":\"ArnNotLike\"},\n {\"id\":8,\"itemName\":\"ArnNotLikeIfExists\"},\n {\"id\":9,\"itemName\":\"BinaryEquals\"},\n {\"id\":10,\"itemName\":\"BinaryEqualsIfExists\"},\n {\"id\":11,\"itemName\":\"BinaryNotEquals\"},\n {\"id\":12,\"itemName\":\"BinaryNotEqualsIfExists\"},\n {\"id\":13,\"itemName\":\"Bool\"},\n {\"id\":14,\"itemName\":\"BoolIfExists\"},\n {\"id\":15,\"itemName\":\"DateEquals\"},\n {\"id\":16,\"itemName\":\"DateEqualsIfExists\"},\n {\"id\":17,\"itemName\":\"DateGreaterThan\"},\n {\"id\":18,\"itemName\":\"DateGreaterThanEquals\"},\n {\"id\":19,\"itemName\":\"DateGreaterThanEqualsIfExists\"},\n {\"id\":20,\"itemName\":\"DateGreaterThanIfExists\"},\n {\"id\":21,\"itemName\":\"DateLessThan\"},\n {\"id\":22,\"itemName\":\"DateLessThanEquals\"},\n {\"id\":23,\"itemName\":\"DateLessThanEqualsIfExists\"},\n {\"id\":24,\"itemName\":\"DateLessThanIfExists\"},\n {\"id\":25,\"itemName\":\"DateNotEquals\"},\n {\"id\":26,\"itemName\":\"DateNotEqualsIfExists\"},\n {\"id\":27,\"itemName\":\"IpAddress\"},\n {\"id\":28,\"itemName\":\"IpAddressIfExists\"},\n {\"id\":29,\"itemName\":\"NotIpAddress\"},\n {\"id\":30,\"itemName\":\"NotIpAddressIfExists\"},\n {\"id\":31,\"itemName\":\"Null\"},\n {\"id\":32,\"itemName\":\"NumericEquals\"},\n {\"id\":33,\"itemName\":\"NumericEqualsIfExists\"},\n {\"id\":34,\"itemName\":\"NumericGreaterThan\"},\n {\"id\":35,\"itemName\":\"NumericGreaterThanEquals\"},\n {\"id\":36,\"itemName\":\"NumericGreaterThanEqualsIfExists\"},\n {\"id\":37,\"itemName\":\"NumericGreaterThanIfExists\"},\n {\"id\":38,\"itemName\":\"NumericLessThan\"},\n {\"id\":39,\"itemName\":\"NumericLessThanEquals\"},\n {\"id\":40,\"itemName\":\"NumericLessThanEqualsIfExists\"},\n {\"id\":41,\"itemName\":\"NumericLessThanIfExists\"},\n {\"id\":42,\"itemName\":\"NumericNotEquals\"},\n {\"id\":43,\"itemName\":\"NumericNotEqualsIfExists\"},\n {\"id\":44,\"itemName\":\"StringEquals\"},\n {\"id\":45,\"itemName\":\"StringEqualsIfExists\"},\n {\"id\":46,\"itemName\":\"StringEqualsIgnoreCase\"},\n {\"id\":47,\"itemName\":\"StringEqualsIgnoreCaseIfExists\"},\n {\"id\":48,\"itemName\":\"StringLike\"},\n {\"id\":49,\"itemName\":\"StringLikeIfExists\"},\n {\"id\":50,\"itemName\":\"StringNotEquals\"},\n {\"id\":51,\"itemName\":\"StringNotEqualsIfExists\"},\n {\"id\":52,\"itemName\":\"StringNotEqualsIgnoreCase\"},\n {\"id\":53,\"itemName\":\"StringNotEqualsIgnoreCaseIfExists\"},\n {\"id\":54,\"itemName\":\"StringNotLike\"},\n {\"id\":55,\"itemName\":\"StringNotLikeIfExists\"}\n ];\n\n this.dropdownConditionSettings = {\n \t\tsingleSelection: true,\n \t\ttext:\"Select Condition\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n\n \tthis.dropdownConditionKeyList = [\n {\"id\":1,\"itemName\":\"aws:CurrentTime\"},\n {\"id\":2,\"itemName\":\"aws:EpochTime\"},\n {\"id\":3,\"itemName\":\"aws:MultiFactorAuthAge\"},\n {\"id\":4,\"itemName\":\"aws:MultiFactorAuthPresent\"},\n {\"id\":5,\"itemName\":\"aws:PrincipalArn\"},\n {\"id\":6,\"itemName\":\"aws:PrincipalOrgID\"},\n {\"id\":7,\"itemName\":\"aws:PrincipalTag/${TagKey}\"},\n {\"id\":8,\"itemName\":\"aws:PrincipalType\"},\n {\"id\":9,\"itemName\":\"aws:Referer\"},\n {\"id\":10,\"itemName\":\"aws:RequestTag/${TagKey}\"},\n {\"id\":11,\"itemName\":\"aws:RequestedRegion\"},\n {\"id\":12,\"itemName\":\"aws:SecureTransport\"},\n {\"id\":13,\"itemName\":\"aws:SourceAccount\"},\n {\"id\":14,\"itemName\":\"aws:SourceArn\"},\n {\"id\":15,\"itemName\":\"aws:SourceIp\"},\n {\"id\":16,\"itemName\":\"aws:SourceVpc\"},\n {\"id\":17,\"itemName\":\"aws:SourceVpce\"},\n {\"id\":18,\"itemName\":\"aws:TagKeys\"},\n {\"id\":19,\"itemName\":\"aws:TokenIssueTime\"},\n {\"id\":20,\"itemName\":\"aws:UserAgent\"},\n {\"id\":21,\"itemName\":\"aws:userid\"},\n {\"id\":22,\"itemName\":\"aws:username\"},\n {\"id\":23,\"itemName\":\"s3:AccessPointNetworkOrigin\"},\n {\"id\":24,\"itemName\":\"s3:DataAccessPointAccount\"},\n {\"id\":25,\"itemName\":\"s3:DataAccessPointArn\"},\n {\"id\":26,\"itemName\":\"s3:ExistingJobOperation\"},\n {\"id\":27,\"itemName\":\"s3:ExistingJobPriority\"},\n {\"id\":28,\"itemName\":\"s3:ExistingObjectTag/\"},\n {\"id\":29,\"itemName\":\"s3:JobSuspendedCause\"},\n {\"id\":30,\"itemName\":\"s3:LocationConstraint\"},\n {\"id\":31,\"itemName\":\"s3:RequestJobOperation\"},\n {\"id\":32,\"itemName\":\"s3:RequestJobPriority\"},\n {\"id\":33,\"itemName\":\"s3:RequestObjectTag/\"},\n {\"id\":34,\"itemName\":\"s3:RequestObjectTagKeys\"},\n {\"id\":35,\"itemName\":\"s3:VersionId\"},\n {\"id\":36,\"itemName\":\"s3:authtype\"},\n {\"id\":37,\"itemName\":\"s3:delimiter\"},\n {\"id\":38,\"itemName\":\"s3:locationconstraint\"},\n {\"id\":39,\"itemName\":\"s3:max-keys\"},\n {\"id\":40,\"itemName\":\"s3:object-lock-legal-hold\"},\n {\"id\":41,\"itemName\":\"s3:object-lock-mode\"},\n {\"id\":42,\"itemName\":\"s3:object-lock-remaining-retention-days\"},\n {\"id\":43,\"itemName\":\"s3:object-lock-retain-until-date\"},\n {\"id\":44,\"itemName\":\"s3:prefix\"},\n {\"id\":45,\"itemName\":\"s3:signatureage\"},\n {\"id\":46,\"itemName\":\"s3:signatureversion\"},\n {\"id\":47,\"itemName\":\"s3:versionid\"},\n {\"id\":48,\"itemName\":\"s3:x-amz-acl\"},\n {\"id\":49,\"itemName\":\"s3:x-amz-content-sha256\"},\n {\"id\":50,\"itemName\":\"s3:x-amz-copy-source\"},\n {\"id\":51,\"itemName\":\"s3:x-amz-grant-full-control\"},\n {\"id\":52,\"itemName\":\"s3:x-amz-grant-read\"},\n {\"id\":53,\"itemName\":\"s3:x-amz-grant-read-acp\"},\n {\"id\":54,\"itemName\":\"s3:x-amz-grant-write\"},\n {\"id\":55,\"itemName\":\"s3:x-amz-grant-write-acp\"},\n {\"id\":56,\"itemName\":\"s3:x-amz-metadata-directive\"},\n {\"id\":57,\"itemName\":\"s3:x-amz-server-side-encryption\"},\n {\"id\":58,\"itemName\":\"s3:x-amz-server-side-encryption-aws-kms-key-id\"},\n {\"id\":59,\"itemName\":\"s3:x-amz-storage-class\"},\n {\"id\":60,\"itemName\":\"s3:x-amz-website-redirect-location\"}\n ];\n\n this.dropdownConditionKeySettings = {\n \t\tsingleSelection: true,\n \t\ttext:\"Select Condition Key\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n }\n\n\tonActionItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedActions);\n\t}\n\tonActionItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedActions);\n\t}\n\tonActionSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonActionDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n\n //condition select actions\n onConditionItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedCondition);\n\t}\n\tonConditionItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedCondition);\n\t}\n\tonConditionSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonConditionDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n //condition key select actions\n onConditionKeyItemSelect(item:any){\n console.log(item);\n console.log(this.selectedConditionKey);\n }\n onConditionKeyItemDeSelect(item:any){\n console.log(item);\n console.log(this.selectedConditionKey);\n }\n onConditionKeySelectAll(items: any){\n console.log(items);\n }\n onConditionKeyDeSelectAll(items: any){\n console.log(items);\n }\n\n\n searchItems() {\n console.log(this.searchText)\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.policies = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.policies = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n private resetPloicyForm(removeName){\n \tconsole.log(removeName)\n \tthis.selectedActions = []\n \tif(!removeName){\n \t\tthis.newPolicy.effect = \"Allow\"\n\t\t this.newPolicy.bucket = \"\"\n \t}else{\n \t\tthis.newPolicy.name = \"\",\n \t\tthis.newPolicy.effect = \"Allow\"\n \t\tthis.newPolicy.bucket = \"\"\n \t}\n\n this.newStatement = {\n Action: [],\n Effect: \"\",\n Resource: [],\n Condition: {},\n Principal: \"\"\n }\n\n }\n\n private getPolicies(){\n \tthis.apiService.getPolicies().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.policiesRaw = data;\n const arrayOfPolicies = Object.entries(data).map((e) => ( { [e[0]]: e[1] } ));\n this.policies = arrayOfPolicies;\n this.mdbTable.setDataSource(arrayOfPolicies);\n console.log(arrayOfPolicies)\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n private deletePolicy(){\n \tthis.apiService.deletePolicy(this.policyToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.getPolicies();\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.policyToDelete+' has been deleted', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while deleting policy');\n }\n });\n }\n\n private downloadPolicy(jsonObj) {\n var theJSON = JSON.stringify(jsonObj);\n console.log(\"theJSON>>>>>>>>>>>\",theJSON);\n var uri = this.sanitizer.bypassSecurityTrustUrl(\"data:text/json;charset=UTF-8,\" + encodeURIComponent(theJSON));\n this.downloadJsonHref = uri;\n }\n\n private rawPrepare(obj){\n \tthis.rawView = obj;\n }\n\n private deletePolicyPrepare(policy){\n \tthis.policyToDelete = policy\n }\n\n private prepareNewPolicyRaw(){\n \tthis.newPolicyRaw = {\n\t \tVersion:\"2012-10-17\",\n\t \tStatement: []\n \t}\n }\n\n private removeCondition(valueId,keyName,conditionName){\n console.log(this.newStatement)\n console.log(valueId,keyName,conditionName)\n this.newStatement.Condition[conditionName][keyName].splice(valueId,1)\n }\n\n private addCondition(){\n console.log(this.selectedCondition[0].itemName)\n console.log(this.selectedConditionKey[0].itemName)\n console.log(this.newConditionValue)\n if(!this.newStatement.Condition){\n this.newStatement.Condition = {}\n }\n if(this.newStatement.Condition[this.selectedCondition[0].itemName]){\n if(this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName]){\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }else{\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName] = []\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }\n }else{\n this.newStatement.Condition[this.selectedCondition[0].itemName] = {}\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName] = []\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }\n\n this.selectedCondition = []\n this.selectedConditionKey = []\n this.newConditionValue = \"\"\n console.log(this.newStatement.Condition)\n }\n\n\n private addStatement(){\n\n \tif(this.selectedActions.length == this.dropdownActionList.length){\n \t\tthis.newStatement.Action.push(\"s3:*\")\n \t}else{\n\t \tfor (var i = 0; i < this.selectedActions.length; i++) {\n\t \t\tthis.newStatement.Action.push(this.selectedActions[i].itemName)\n\t \t}\n\t }\n \tthis.newStatement.Effect = this.newPolicy.effect\n \t// this.newStatement.Resource = \"arn:aws:s3:::\"+this.newPolicy.bucket\n \tconsole.log(this.newStatement)\n if(this.newStatement.Condition && Object.entries(this.newStatement.Condition).length === 0 && this.newStatement.Condition.constructor === Object){\n console.log(\"Condition removed cause empty\")\n delete this.newStatement.Condition\n }else{\n if(!this.newStatement.Principal || this.newStatement.Principal == \"\"){\n console.log(\"Principal set to * cause condition not empty\")\n this.newStatement.Principal = \"*\"\n }\n }\n\n \tthis.newPolicyRaw.Statement.push(this.newStatement);\n \tconsole.log(this.newPolicyRaw)\n\n \tthis.resetPloicyForm(false);\n }\n\n private editStatement(i){\n this.newStatement = this.newPolicyRaw.Statement[i]\n this.newPolicy.effect = this.newPolicyRaw.Statement[i].Effect\n if(this.newStatement.Action[0] == \"s3:*\"){\n for (var g = 0; g < this.dropdownActionList.length; g++) {\n this.selectedActions.push({\"id\":this.dropdownActionList[g].id,\"itemName\":this.dropdownActionList[g].itemName})\n }\n }else{\n for (var g = 0; g < this.newStatement.Action.length; g++) {\n this.selectedActions.push({\"id\":g,\"itemName\":this.newStatement.Action[g]})\n }\n }\n this.newStatement.Action = []\n this.newPolicyRaw.Statement.splice(i,1)\n }\n\n private addBucketStatement(){\n this.newStatement.Resource.push(\"arn:aws:s3:::\"+this.newPolicy.bucket)\n this.newPolicy.bucket = ''\n }\n\n private removeStatement(i){\n \tthis.newPolicyRaw.Statement.splice(i,1)\n }\n\n private removeBucketStatement(i){\n this.newStatement.Resource.splice(i,1)\n }\n\n private fileChanged(e) {\n console.log(\"eventTriggered\");\n\n this.uploadPolicyFile = e.target.files[0];\n this.uploadPolicyFileName = e.target.files[0].name;\n }\n\n private uploadPolicy(){\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n console.log(fileReader.result);\n let policyFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n this.apiService.addPolicy(this.uploadPolicyName,policyFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newPolicy.name+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n this.getPolicies();\n });\n }\n fileReader.readAsText(this.uploadPolicyFile);\n }\n\n private resetUploadForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadPolicyFile;\n this.uploadPolicyName = \"\";\n this.uploadPolicyFileName = \"\";\n }\n\n private createPolicy(){\n \tconsole.log(this.newPolicy, this.newPolicyRaw)\n\n \tlet policyString = JSON.stringify(this.newPolicyRaw);\n\n \tthis.apiService.addPolicy(this.newPolicy.name,policyString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newPolicy.name+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n this.getPolicies();\n });\n }\n\n private isEditMode(state){\n this.modalEditMode = state;\n if(state){\n this.modalCreateEditTitle = \"Edit policy\"\n this.modalCreateEditButtonText = \"Update\"\n }else{\n this.modalCreateEditTitle = \"Build up new policy\"\n this.modalCreateEditButtonText = \"Create\"\n }\n }\n\n private isNowCopyMode(){\n this.modalCreateEditTitle = \"Copy policy\"\n this.modalCreateEditButtonText = \"Copy\"\n }\n\n private updatePolicyPrepare(policy){\n this.policyToUpdate = policy\n this.prepareNewPolicyRaw()\n this.resetPloicyForm(false)\n this.newPolicy.name = policy;\n\n var oldPolicy = this.policiesRaw[policy]\n this.newPolicyRaw.Statement = oldPolicy.Statement;\n }\n\n}\n","export default \"
\\n\\t

Server statistics {{server.endpoint}}

\\n\\t
\\n\\t\\tView Raw JSON 
\\n\\t\\tminio version: {{server.version}}
\\n\\t\\tuptime: {{math.round(server.uptime/60)}} min.
\\n\\t\\tnetwork: {{server.network[server.endpoint]}}\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t

Storage

\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
TotalUsedStatePath
{{math.round((disk.totalspace/1024/1024/1024)*100)/100}} Gb{{math.round((disk.usedspace/1024/1024/1024)*100)/100}} Gb{{disk.state}}{{disk.path}}
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t

Disk usage info

\\n\\t\\t\\t
\\n\\t\\t\\t\\t

Last update: {{diskUsageInfo?.lastUpdate.split('T').join(' ').split('.')[0]}}

\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
Objects countObjects total sizeBuckets count
{{diskUsageInfo.objectsCount}}{{math.round((diskUsageInfo.objectsTotalSize/1024/1024/1024)*100)/100}} Gb{{diskUsageInfo.bucketsCount}}
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
0\\\">\\n\\t\\t
\\n\\t\\t\\t

Bucket sizes chart

\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
0\\\">\\n\\t\\t
\\n\\t \\t

Object sizes histogram

\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Server Info

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwb2xpY2llcy5jb21wb25lbnQuc2NzcyJ9 */\";","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class EnvService {\n\n // The values that are defined here are the default values that can\n // be overridden by env.js\n\n // API url\n public apiBaseUrl = '';\n public apiMultiBackend = false;\n public apiBackends = '';\n\n constructor() {\n }\n\n}\n","export default \"
\\n\\t
\\n\\t
\\n\\t\\t

List of users

\\n\\t
\\n\\t
\\n\\t\\t\\n\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t \\n\\t\\t \\n\\t\\t
\\n\\t
\\n
\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t \\n\\t\\n\\t
User namePolicyStatusAction
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectKeys(users[key])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectValues(users[key])[0].policyName}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t \\n\\t\\t \\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n
\\n
\\n
\\n\\n\\n
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t

Remove User

\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\tAre you shure?
After you click on \\\"Delete\\\" button user {{userToDelete}} will be removed.\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t

Edit User

\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tInput invalid\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tInput valid\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t

\\n\\t\\t\\t\\t\\t\\tGenerate new secret\\n\\t\\t\\t\\t\\t

\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n
\\n\\t
\\n\\t
\\n\\t\\t

Create new user

\\n\\t\\t\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput invalid\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput valid\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput invalid\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput valid\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t

\\n\\t\\t\\t\\t\\tGenerate new access\\\\secret pair\\n\\t\\t\\t

\\n\\t\\t\\t
\\n\\t
\\n\\t \\n\\t
\\n
\\n
\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { UsersComponent } from './users/users.component';\nimport { ServerComponent } from './server/server.component';\nimport { PoliciesComponent } from './policies/policies.component';\nimport { BucketsComponent } from './buckets/buckets.component';\nimport { GroupsComponent } from './groups/groups.component';\n\nconst routes: Routes = [\n\t{path:'users', component: UsersComponent},\n\t{path:'server', component: ServerComponent},\n\t{path:'policies', component: PoliciesComponent},\n\t{path:'groups', component: GroupsComponent},\n\t{path:'', component: BucketsComponent}\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Router } from \"@angular/router\";\nimport { EnvService } from './env.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n\n constructor(private httpClient: HttpClient, private router: Router, private env: EnvService) {\n if(env.apiBaseUrl) {\n console.log('apiBaseUrl', env.apiBaseUrl);\n }\n if(env.apiMultiBackend) {\n console.log('apiMultiBackend', env.apiMultiBackend);\n }\n if(env.apiBackends) {\n console.log('apiBackends', env.apiBackends);\n }\n\n }\n\n\n multiBackend = this.env.apiMultiBackend;\n backendsUrls = this.env.apiBackends;\n baseUrl = this.getCurrentBackend();\n\n private getCurrentBackend(){\n let envDefaultBackend = this.env.apiBaseUrl;\n if(this.multiBackend && this.multiBackend == true) {\n let savedBackend = localStorage.getItem('currentBackend');\n\n let activeBackend = \"\";\n\n if(savedBackend && savedBackend != \"\"){\n activeBackend = savedBackend;\n }else{\n activeBackend = envDefaultBackend;\n }\n return activeBackend;\n } else {\n return envDefaultBackend;\n }\n }\n\n public overrideBackend(newBackend){\n localStorage.setItem('currentBackend', newBackend);\n this.baseUrl = newBackend;\n\n this.router.onSameUrlNavigation = 'reload';\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\n return false;\n };\n\n this.router.navigate([this.router.url])\n this.router.onSameUrlNavigation = 'ignore';\n }\n\n public getMultiBackendStatus(){\n return this.multiBackend;\n }\n\n public getBackendsUrls(){\n return this.backendsUrls;\n }\n\n public validateAuthInResponse(data){\n if(data != null && typeof data.oauth != \"undefined\" && typeof data.auth != \"undefined\" && data.oauth != false && data.auth != true){\n window.location.href = this.env.apiBaseUrl+'/auth/?state='+window.location.href;\n }\n }\n\n public serverInfo(){\n return this.httpClient.get(this.baseUrl+'/api/v2/server/common-info');\n }\n\n public diskInfo(){\n return this.httpClient.get(this.baseUrl+'/api/v2/server/disk-info');\n }\n\n public getUsers(){\n return this.httpClient.get(this.baseUrl+'/api/v2/users/list');\n }\n\n public addUser(access,secret){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/create', form)\n }\n\n public addUserExtended(access,secret,policy){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n form.append('policyName', policy);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/create-extended', form)\n }\n\n public updateUser(access,secret,policy,status){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n form.append('policyName', policy);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/update', form)\n }\n\n\n public setStatusUser(access,status){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/set-status', form)\n }\n\n public deleteUser(access){\n let form = new FormData();\n\n form.append('accessKey', access);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/delete', form)\n }\n\n public getPolicies(){\n return this.httpClient.get(this.baseUrl+'/api/v2/policies/list');\n }\n\n public deletePolicy(policy){\n let form = new FormData();\n\n form.append('policyName', policy);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/delete', form)\n }\n\n public addPolicy(policyName, policyString){\n let form = new FormData();\n\n form.append('policyName', policyName);\n form.append('policyString', policyString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/create', form)\n }\n\n public getBuckets(){\n return this.httpClient.get(this.baseUrl+'/api/v2/buckets/list');\n }\n\n public getBucketsExtended(){\n return this.httpClient.get(this.baseUrl+'/api/v2/buckets/list-extended');\n }\n\n public enableNotificationForBucket(bucket, stsARN, eventTypes, filterPrefix, filterSuffix){\n //put,get,delete\n let form = new FormData();\n\n form.append('bucket', bucket);\n form.append('stsARN', stsARN);\n form.append('eventTypes', eventTypes);\n form.append('filterPrefix', filterPrefix);\n form.append('filterSuffix', filterSuffix);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-events', form)\n }\n\n public getBucketEvents(bucket){\n let form = new FormData();\n\n form.append('bucket', bucket);\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-events',form)\n }\n\n public removeBucketEvents(bucket){\n let form = new FormData();\n\n form.append('bucket', bucket);\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/remove-events',form)\n }\n\n public deleteBucket(bucket){\n let form = new FormData();\n\n form.append('bucketName', bucket);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/delete', form)\n }\n\n public createBucket(bucket){\n let form = new FormData();\n\n form.append('newBucket', bucket);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/create', form)\n }\n\n public getGroups(){\n return this.httpClient.get(this.baseUrl+'/api/v2/groups/list');\n }\n\n public updateMembersGroup(group,members,IsRemove){\n let form = new FormData();\n\n form.append('group', group);\n form.append('members', members);\n form.append('IsRemove', IsRemove);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/update-members', form);\n }\n\n public getGroupDescription(group){\n let form = new FormData();\n\n form.append('group', group);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/get-description', form);\n }\n\n public setStatusGroup(group,status){\n let form = new FormData();\n\n form.append('group', group);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/set-status', form);\n }\n\n public setPolicy(policyName,entityName,isGroup){\n let form = new FormData();\n\n form.append('policyName', policyName);\n form.append('entityName', entityName);\n form.append('isGroup', isGroup);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/update', form);\n }\n\n public setLifecycle(bucketName,lifecycle){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('lifecycle', lifecycle);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-lifecycle', form);\n }\n\n\n public getLifecycle(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-lifecycle', form);\n }\n\n public checkAuthStatus(){\n return this.httpClient.get(this.baseUrl+'/auth/check');\n }\n\n public getBucketQuota(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-quota', form);\n }\n\n public setBucketQuota(bucketName, quotaType, quotaValue){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('quotaType', quotaType);\n form.append('quotaValue', quotaValue);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-quota', form);\n }\n\n public removeBucketQuota(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/remove-quota', form);\n }\n\n public setBucketTag(bucketName,tagsString){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('bucketTags', tagsString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-tags', form);\n }\n\n public getBucketTag(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-tags', form);\n }\n\n public setBucketPolicy(bucketName,policyString){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('bucketPolicy', policyString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-policy', form);\n }\n\n\n public getBucketPolicy(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-policy', form);\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAuY29tcG9uZW50LnNjc3MifQ== */\";","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"]} \ No newline at end of file +{"version":3,"sources":["webpack:///src/app/loader/loader.component.html","webpack:///src/app/loader.service.ts","webpack:///src/app/loader.interceptor.ts","webpack:///src/app/loader/loader.component.scss","webpack:///src/app/groups/groups.component.scss","webpack:///src/environments/environment.ts","webpack:///src/app/buckets/buckets.component.ts","webpack:///src/app/server/server.component.ts","webpack:///src/app/groups/groups.component.html","webpack:///src/app/app.component.ts","webpack:///src/app/server/server.component.scss","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/buckets/buckets.component.scss","webpack:///src/app/env.service.provider.ts","webpack:///src/app/users/users.component.scss","webpack:///src/app/groups/groups.component.ts","webpack:///src/app/filter.pipe.ts","webpack:///src/app/buckets/buckets.component.html","webpack:///src/app/loader/loader.component.ts","webpack:///src/app/policies/policies.component.html","webpack:///src/app/users/users.component.ts","webpack:///src/app/policies/policies.component.ts","webpack:///src/app/server/server.component.html","webpack:///src/app/policies/policies.component.scss","webpack:///src/app/env.service.ts","webpack:///src/app/users/users.component.html","webpack:///src/app/app-routing.module.ts","webpack:///src/app/api.service.ts","webpack:///src/app/app.component.scss","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["LoaderService","isError","isLoading","providedIn","LoaderInterceptor","loaderService","requests","req","i","indexOf","splice","next","length","clone","withCredentials","push","create","observer","subscription","handle","subscribe","event","removeRequest","err","error","complete","unsubscribe","environment","production","BucketsComponent","apiService","cdRef","toastr","sanitizer","math","Math","objectKeys","Object","keys","isNaN","Number","buckets","updateEncryptionTypeChanged","newBucketName","uiShowQuota","newBucketQuotaType","newBucketQuota","quotaTypes","newBucketEncryption","encryptionTypes","newBucketMasterKeyID","newBucketEventARN","updateBucketEventARN","updateBucketEventFilterPrefix","updateBucketEventFilterSuffix","updateBucketQuotaObj","updateBucketEncryptionObj","updateQuotaTypeChanged","updateQuotaChanged","newBucketPolicy","policyTypes","updatePolicyTypeChanged","dropdownEventTypesList","selectedEventTypes","dropdownEventTypesSettings","newBucketEventFilterPrefix","newBucketEventFilterSuffix","newBucketTagName","newBucketTagValue","newBucketTagsList","tagListChanged","downloadLifecycleAvailable","searchText","undefined","target","searchItems","getBuckets","getServerInfo","getDiskInfo","singleSelection","text","selectAllText","unSelectAllText","enableSearchFilter","classes","item","console","log","items","serverInfo","data","validateAuthInResponse","serviceInfo","diskInfo","diskUsageInfo","prev","mdbTable","getDataSource","setDataSource","previous","searchLocalDataBy","mdbTablePagination","setMaxVisibleItemsNumberTo","calculateFirstItemIndex","calculateLastItemIndex","detectChanges","getBucketsExtended","bucketName","bucketToDelete","bucketToRemoveNotifications","currentQuota","currentQtype","currentTags","editBucketName","getBucketTag","dataKeys","getBucketEncryption","dataVals","values","getBucketQuota","emptyData","quotatype","getBucketPolicy","bucketToRemoveQuota","bucketToRemoveEncryption","deleteBucket","success","JSON","stringify","resetUploadForm","e","uploadPolicyFile","files","uploadPolicyFileName","name","uploadFileInput","nativeElement","value","uploadPolicyName","updateListAfter","setBucketPolicy","fileReader","FileReader","onload","result","policyFileString","toString","replace","readAsText","bucketsArr","split","createBucketSimple","bucket","lifecycleBucketName","tagName","quotaType","quotaVal","enableNotificationForBucket","setTagsForBucket","setQuotaForBucket","setPolicy","setBucketEncryption","stsARN","eventTypes","filterPrefix","filterSuffix","eventTypesArr","itemName","join","reloadBucketList","setBucketQuota","removeBucketEvents","removeBucketQuota","removeBucketEncryption","encType","masterKeyID","eventARN","policy","encryption","numberOfBuckets","currentBucketNumber","createBucket","setTimeout","uploadLifecycleFile","uploadLifecycleFileName","uploadLifecycleName","getLifecycle","uri","bypassSecurityTrustUrl","encodeURIComponent","downloadJsonHref","lifecycleFileString","setLifecycle","tagsObj","tagsKeys","tagArr","tagString","setBucketTag","fileName","link","document","createElement","href","download","click","selector","template","ServerComponent","objectValues","rawView","bucketSizes","hgChartDatasets","label","hgChartLabels","hgChartType","hgChartColors","backgroundColor","borderColor","borderWidth","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","hgChartOptions","responsive","szChartDatasets","szChartLabels","szChartType","szChartColors","szChartOptions","hasOwnProperty","objectsSizesHistogram","histogramKeysRawArr","histogramValsRawArr","histogramLabel","bucketsSizes","objectBucketSizes","bucketSizesKeysRawArr","bucketSizesValsRawArr","obj","AppComponent","title","checkAuthStatus","AppModule","declarations","imports","forRoot","providers","provide","useClass","multi","bootstrap","EnvServiceFactory","env","browserWindow","window","browserWindowEnv","key","EnvServiceProvider","useFactory","deps","GroupsComponent","jsn","groups","groupsWithMembers","users","rawPolicies","groupToUpdate","newGroupName","newGroupPolicy","newGroupStatus","updateStatusValues","modalEditMode","usersToRemove","groupToDelete","dropdownList","selectedItems","dropdownSettings","isEditMode","isNowCopyMode","getGroups","getListOfUsers","getListOfPolicies","state","modalCreateEditTitle","modalCreateEditButtonText","arr","str","parse","atob","b64unpack","tempGroupName","getGroupDescription","getUsers","entries","map","group","tempMember","getPolicies","policies","updateMembersGroup","refreshList","setStatusGroup","updatePolicy","updateStatus","newMembers","wipeGroupMembers","FilterPipe","searchPolicy","toLocaleLowerCase","filter","it","includes","LoaderComponent","v","loading","UsersComponent","usersRaw","resetForm","updateUserFrom","charset","retVal","n","charAt","floor","random","updateUser","accessKeyUpdate","disabled","required","secretKeyUpdate","policyUpdate","statusUpdate","validatingForm","newUserAccess","generatePassword","minLength","newUserSecret","newUserPolicy","arrayOfUsers","userAccess","userSecret","userPolicy","addUserExtended","addUser","accessKey","status","setStatusUser","userToDelete","userToUpdate","patchValue","updatedSecret","updatedPolicy","updatedStatus","deleteUser","get","PoliciesComponent","policiesRaw","dropdownActionList","dropdownAdminList","dropdownConditionList","dropdownConditionKeyList","selectedActions","selectedAdmins","selectedCondition","selectedConditionKey","dropdownActionSettings","dropdownAdminSettings","dropdownConditionSettings","dropdownConditionKeySettings","advancedInterface","advancedInterfaceLabel","newPolicy","effect","newPolicyRaw","Version","Statement","newStatement","Action","Effect","Resource","Condition","Principal","newConditionValue","policyToUpdate","removeName","arrayOfPolicies","deletePolicy","policyToDelete","jsonObj","theJSON","valueId","keyName","conditionName","constructor","resetPloicyForm","substring","g","id","addPolicy","policyString","prepareNewPolicyRaw","oldPolicy","EnvService","apiBaseUrl","apiMultiBackend","apiBackends","routes","path","component","AppRoutingModule","exports","ApiService","httpClient","router","multiBackend","backendsUrls","baseUrl","getCurrentBackend","envDefaultBackend","savedBackend","localStorage","getItem","activeBackend","newBackend","setItem","onSameUrlNavigation","routeReuseStrategy","shouldReuseRoute","navigate","url","oauth","auth","location","access","secret","form","FormData","append","post","policyName","members","IsRemove","entityName","isGroup","lifecycle","quotaValue","tagsString","encMasterKeyID","bootstrapModule","webpackEmptyAsyncContext","Promise","resolve","then","Error","code","module"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eCAf;;;UAOaA,aAAa,GAGxB,yBAAc;AAAA;;AAFP,aAAAC,OAAA,GAAU,KAAV;AACA,aAAAC,SAAA,GAAY,IAAI,oDAAJ,CAAoB,KAApB,CAAZ;AACU,O;;;;;;AAHNF,mBAAa,6DAHzB,iEAAW;AACVG,kBAAU,EAAE;AADF,OAAX,CAGyB,GAAbH,aAAa,CAAb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eCPb;;;UAcaI,iBAAiB;AAG1B,mCAAoBC,aAApB,EAAkD;AAAA;;AAA9B,eAAAA,aAAA,GAAAA,aAAA;AAFZ,eAAAC,QAAA,GAA+B,EAA/B;AAE6C;;AAH3B;AAAA;AAAA,wCAKZC,GALY,EAKW;AACjC,gBAAMC,CAAC,GAAG,KAAKF,QAAL,CAAcG,OAAd,CAAsBF,GAAtB,CAAV;;AACA,gBAAIC,CAAC,IAAI,CAAT,EAAY;AACR,mBAAKF,QAAL,CAAcI,MAAd,CAAqBF,CAArB,EAAwB,CAAxB;AACH;;AACD,iBAAKH,aAAL,CAAmBH,SAAnB,CAA6BS,IAA7B,CAAkC,KAAKL,QAAL,CAAcM,MAAd,GAAuB,CAAzD;AACH;AAXyB;AAAA;AAAA,oCAahBL,GAbgB,EAaOI,IAbP,EAawB;AAAA;;AAC9CJ,eAAG,GAAGA,GAAG,CAACM,KAAJ,CAAU;AACdC,6BAAe,EAAE;AADH,aAAV,CAAN;AAGA,iBAAKR,QAAL,CAAcS,IAAd,CAAmBR,GAAnB;AACA,iBAAKF,aAAL,CAAmBH,SAAnB,CAA6BS,IAA7B,CAAkC,IAAlC;AACA,iBAAKN,aAAL,CAAmBJ,OAAnB,GAA6B,KAA7B;AACA,mBAAO,gDAAWe,MAAX,CAAkB,UAAAC,QAAQ,EAAI;AACjC,kBAAMC,YAAY,GAAGP,IAAI,CAACQ,MAAL,CAAYZ,GAAZ,EAChBa,SADgB,CAEb,UAAAC,KAAK,EAAI;AACL,oBAAIA,KAAK,YAAY,iEAArB,EAAmC;AAC/B,uBAAI,CAACC,aAAL,CAAmBf,GAAnB;;AACAU,0BAAQ,CAACN,IAAT,CAAcU,KAAd;AACH;AACJ,eAPY,EAQb,UAAAE,GAAG,EAAI;AACH,qBAAI,CAAClB,aAAL,CAAmBJ,OAAnB,GAA6B,IAA7B;;AACA,qBAAI,CAACqB,aAAL,CAAmBf,GAAnB;;AACAU,wBAAQ,CAACO,KAAT,CAAeD,GAAf;AACH,eAZY,EAab,YAAM;AACF,qBAAI,CAACD,aAAL,CAAmBf,GAAnB;;AACAU,wBAAQ,CAACQ,QAAT;AACH,eAhBY,CAArB,CADiC,CAkBjC;;AACA,qBAAO,YAAM;AACT,qBAAI,CAACH,aAAL,CAAmBf,GAAnB;;AACAW,4BAAY,CAACQ,WAAb;AACH,eAHD;AAIH,aAvBM,CAAP;AAwBH;AA5CyB;;AAAA;AAAA,S;;;;gBAHrB;;;;AAGItB,uBAAiB,6DAD7B,kEAC6B,GAAjBA,iBAAiB,CAAjB;;;;;;;;;;;;;;;;ACdb;AAAe;;;AAAA;;;;;;;;;;;;;;;;ACAf;AAAe;;;AAAA;;;;;;;;;;;;;;;;ACAf;AAAA;;;AAAA;AAAA;AAAA;;AAAO,UAAMuB,WAAW,GAAG;AACzBC,kBAAU,EAAE;AADa,OAApB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCaMC,gBAAgB;AA8D3B,kCAAoBC,UAApB,EAAoDC,KAApD,EAAsFC,MAAtF,EAAqHC,SAArH,EAA8I;AAAA;;AAA1H,eAAAH,UAAA,GAAAA,UAAA;AAAgC,eAAAC,KAAA,GAAAA,KAAA;AAAkC,eAAAC,MAAA,GAAAA,MAAA;AAA+B,eAAAC,SAAA,GAAAA,SAAA;AA7DrH,eAAAC,IAAA,GAAOC,IAAP;AACA,eAAAC,UAAA,GAAaC,MAAM,CAACC,IAApB;AACA,eAAAC,KAAA,GAAkBC,MAAM,CAACD,KAAzB;AACA,eAAAE,OAAA,GAAU,EAAV;AAKA,eAAAC,2BAAA,GAA8B,KAA9B;AAEA,eAAAC,aAAA,GAAgB,EAAhB;AACA,eAAAC,WAAA,GAAc,KAAd;AACA,eAAAC,kBAAA,GAAqB,EAArB;AACA,eAAAC,cAAA,GAAiB,EAAjB;AACA,eAAAC,UAAA,GAAa,CAAC,MAAD,EAAS,MAAT,CAAb;AAGA,eAAAC,mBAAA,GAAsB,EAAtB;AACA,eAAAC,eAAA,GAAkB,CAAC,QAAD,EAAW,SAAX,CAAlB;AACA,eAAAC,oBAAA,GAAuB,EAAvB;AACA,eAAAC,iBAAA,GAAoB,EAApB;AACA,eAAAC,oBAAA,GAAuB,EAAvB;AACA,eAAAC,6BAAA,GAAgC,EAAhC;AACA,eAAAC,6BAAA,GAAgC,EAAhC;AACA,eAAAC,oBAAA,GAAuB,EAAvB;AACA,eAAAC,yBAAA,GAA4B,EAA5B;AACA,eAAAC,sBAAA,GAAyB,KAAzB;AACA,eAAAC,kBAAA,GAAqB,KAArB;AAEA,eAAAC,eAAA,GAAkB,MAAlB,CAgC8I,CA/B9I;;AACA,eAAAC,WAAA,GAAc,CAAC,MAAD,EAAS,QAAT,EAAmB,UAAnB,EAA+B,QAA/B,EAAyC,QAAzC,CAAd;AACA,eAAAC,uBAAA,GAA0B,KAA1B;AAKA,eAAAC,sBAAA,GAAyB,EAAzB;AACA,eAAAC,kBAAA,GAAqB,EAArB;AACA,eAAAC,0BAAA,GAA6B,EAA7B;AACA,eAAAC,0BAAA,GAA6B,EAA7B;AACA,eAAAC,0BAAA,GAA6B,EAA7B;AACA,eAAAC,gBAAA,GAAmB,EAAnB;AACA,eAAAC,iBAAA,GAAoB,EAApB;AACA,eAAAC,iBAAA,GAAoB,EAApB;AAEA,eAAAC,cAAA,GAAiB,KAAjB;AAOA,eAAAC,0BAAA,GAA6B,CAA7B;AAMA,eAAAC,UAAA,GAAqB,EAArB;AAEiJ;;AA9DtH;AAAA;AAAA,oCAgEM;AAC/B,gBAAGnD,KAAK,IAAIA,KAAK,CAAC,QAAD,CAAL,KAAoBoD,SAA7B,IAA0CpD,KAAK,CAACqD,MAAN,CAAa,IAAb,MAAuBD,SAAjE,IAA8EpD,KAAK,CAACqD,MAAN,CAAa,IAAb,KAAsB,QAAvG,EAAgH;AAC7G,mBAAKC,WAAL;AACF;AACF;AApE0B;AAAA;AAAA,qCAyEhB;AACV,iBAAKC,UAAL;AACC,iBAAKC,aAAL;AACA,iBAAKC,WAAL;AAEA,iBAAKhB,sBAAL,GAA8B,CAC7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAD6B,EAE7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAF6B,EAG7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAH6B,CAA9B;AAMA,iBAAKE,0BAAL,GAAkC;AAClCe,6BAAe,EAAE,KADiB;AAElCC,kBAAI,EAAC,oBAF6B;AAGlCC,2BAAa,EAAC,YAHoB;AAIlCC,6BAAe,EAAC,cAJkB;AAKlCC,gCAAkB,EAAE,IALc;AAMhCC,qBAAO,EAAE;AANuB,aAAlC;AAQD,WA5F0B,CA8F3B;;AA9F2B;AAAA;AAAA,iDA+FJC,IA/FI,EA+FI;AAC5BC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAKxB,kBAAjB;AACH;AAlG2B;AAAA;AAAA,mDAmGHsB,IAnGG,EAmGK;AAC7BC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAKxB,kBAAjB;AACH;AAtG2B;AAAA;AAAA,gDAuGNyB,KAvGM,EAuGI;AAC5BF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH;AAzG2B;AAAA;AAAA,kDA0GJA,KA1GI,EA0GM;AAC9BF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH;AA5G2B;AAAA;AAAA,4CA8GJ;AACpB,iBAAK5C,WAAN,GAAqB,KAAKA,WAAL,GAAmB,KAAxC,GAAgD,KAAKA,WAAL,GAAmB,IAAnE;AACD,WAhH0B,CAkH3B;AACA;AACA;;AApH2B;AAAA;AAAA,0CAsHN;AAAA;;AACnB,iBAAKd,UAAL,CAAgB2D,UAAhB,GAA6BrE,SAA7B,CAAuC,UAACsE,IAAD,EAAQ;AAC7C,oBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACA,oBAAI,CAACE,WAAL,GAAmBF,IAAnB;AACD,aAHD;AAID;AA3H0B;AAAA;AAAA,wCA6HR;AAAA;;AAClB,iBAAK5D,UAAL,CAAgB+D,QAAhB,GAA2BzE,SAA3B,CAAqC,UAACsE,IAAD,EAAQ;AAC1C,oBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACA,oBAAI,CAACI,aAAL,GAAqBJ,IAArB;AACD,aAHF;AAIA;AAlI0B;AAAA;AAAA,wCAoIL;AACpB,gBAAMK,IAAI,GAAG,KAAKC,QAAL,CAAcC,aAAd,EAAb;;AAEA,gBAAI,CAAC,KAAKzB,UAAV,EAAsB;AACpB,mBAAKwB,QAAL,CAAcE,aAAd,CAA4B,KAAKC,QAAjC;AACA,mBAAK1D,OAAL,GAAe,KAAKuD,QAAL,CAAcC,aAAd,EAAf;AACD;;AAED,gBAAI,KAAKzB,UAAT,EAAqB;AACnB,mBAAK/B,OAAL,GAAe,KAAKuD,QAAL,CAAcI,iBAAd,CAAgC,KAAK5B,UAArC,CAAf;AACA,mBAAKwB,QAAL,CAAcE,aAAd,CAA4BH,IAA5B;AACD;AACF;AAhJ0B;AAAA;AAAA,4CAkJT;AACd,iBAAKM,kBAAL,CAAwBC,0BAAxB,CAAmD,EAAnD;AAEA,iBAAKD,kBAAL,CAAwBE,uBAAxB;AACA,iBAAKF,kBAAL,CAAwBG,sBAAxB;AACA,iBAAKzE,KAAL,CAAW0E,aAAX;AACH;AAxJ0B;AAAA;AAAA,uCA0JT;AAAA;;AACjB,iBAAK3E,UAAL,CAAgB4E,kBAAhB,GAAqCtF,SAArC,CAA+C,UAACsE,IAAD,EAAQ;AACpD,oBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAY,gBAAZ,EAA6BG,IAA7B;;AACA,kBAAGA,IAAI,KAAG,IAAV,EAAe;AACb,sBAAI,CAACjD,OAAL,GAAeiD,IAAf;AACD,eAFD,MAEK;AACH,sBAAI,CAACjD,OAAL,GAAe,EAAf;AACD;;AACD,oBAAI,CAACuD,QAAL,CAAcE,aAAd,CAA4B,MAAI,CAACzD,OAAjC;;AACA,oBAAI,CAAC0D,QAAL,GAAgB,MAAI,CAACH,QAAL,CAAcC,aAAd,EAAhB;AACD,aAVF;AAWA;AAtK0B;AAAA;AAAA,8CAwKCU,UAxKD,EAwKW;AACrC,iBAAKC,cAAL,GAAsBD,UAAtB;AACA;AA1K0B;AAAA;AAAA,0DA4KaA,UA5Kb,EA4KuB;AACjD,iBAAKE,2BAAL,GAAmCF,UAAnC;AACA;AA9K0B;AAAA;AAAA,8CAgLCA,UAhLD,EAgLaG,YAhLb,EAgL2BC,YAhL3B,EAgLyCC,WAhLzC,EAgLoD;AAAA;;AAC7E,iBAAKC,cAAL,GAAsBN,UAAtB;AAEA,iBAAK7E,UAAL,CAAgBoF,YAAhB,CAA6BP,UAA7B,EAAyCvF,SAAzC,CAAmD,UAACsE,IAAD,EAAQ;AACzD,oBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYlD,MAAM,CAACC,IAAP,CAAYoD,IAAZ,CAAZ;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;AAEA,kBAAIyB,QAAQ,GAAG9E,MAAM,CAACC,IAAP,CAAYoD,IAAZ,CAAf;AACAJ,qBAAO,CAACC,GAAR,CAAY4B,QAAQ,CAAC,CAAD,CAApB;;AACA,kBAAGA,QAAQ,CAAC,CAAD,CAAR,IAAa,OAAhB,EAAwB;AACtB,sBAAI,CAAC9C,iBAAL,GAAyBqB,IAAzB;AACD;AACF,aAVD;AAYA,iBAAK5D,UAAL,CAAgBsF,mBAAhB,CAAoCT,UAApC,EAAgDvF,SAAhD,CAA0D,UAACsE,IAAD,EAAQ;AAChE,oBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYlD,MAAM,CAACC,IAAP,CAAYoD,IAAZ,CAAZ;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;AAEA,kBAAIyB,QAAQ,GAAG9E,MAAM,CAACC,IAAP,CAAYoD,IAAZ,CAAf;AACAJ,qBAAO,CAACC,GAAR,CAAY,sBAAZ,EAAmC4B,QAAQ,CAAC,CAAD,CAA3C;;AACA,kBAAGA,QAAQ,CAAC,CAAD,CAAR,IAAa,OAAhB,EAAwB;AACtB,sBAAI,CAAC3D,yBAAL,GAAiCkC,IAAjC;AACA,oBAAI2B,QAAQ,GAAGhF,MAAM,CAACiF,MAAP,CAAc5B,IAAd,CAAf;AACAJ,uBAAO,CAACC,GAAR,CAAY,cAAZ,EAA4B8B,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,EAAe,OAAf,EAAwB,gBAAxB,CAA5B;;AACA,oBAAGA,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,EAAe,OAAf,EAAwB,gBAAxB,KAA6C,EAAhD,EAAmD;AACjD,wBAAI,CAAC7D,yBAAL,GAAiC,QAAjC;AACD,iBAFD,MAEK;AACH,wBAAI,CAACA,yBAAL,GAAiC,SAAjC;AACD;AACF,eATD,MASK;AACH,sBAAI,CAACA,yBAAL,GAAiC,EAAjC;AACD;AACF,aAnBD;AAqBA,iBAAK1B,UAAL,CAAgByF,cAAhB,CAA+BZ,UAA/B,EAA2CvF,SAA3C,CAAqD,UAACsE,IAAD,EAAQ;AAC3D,oBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYlD,MAAM,CAACC,IAAP,CAAYoD,IAAZ,CAAZ;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;AAEA,kBAAIyB,QAAQ,GAAG9E,MAAM,CAACC,IAAP,CAAYoD,IAAZ,CAAf;AACAJ,qBAAO,CAACC,GAAR,CAAY4B,QAAQ,CAAC,CAAD,CAApB;;AACA,kBAAGA,QAAQ,CAAC,CAAD,CAAR,IAAa,OAAhB,EAAwB;AACtB,sBAAI,CAAC5D,oBAAL,GAA4BmC,IAA5B;AACD,eAFD,MAEK;AACH,oBAAI8B,SAAS,GAAG;AACdC,2BAAS,EAAE;AADG,iBAAhB;AAGA,sBAAI,CAAClE,oBAAL,GAA4BiE,SAA5B;AACD;AACF,aAfD;AAiBA,iBAAK1F,UAAL,CAAgB4F,eAAhB,CAAgCf,UAAhC,EAA4CvF,SAA5C,CAAsD,UAACsE,IAAD,EAAQ;AAC5D,oBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYlD,MAAM,CAACC,IAAP,CAAYoD,IAAZ,CAAZ;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;AACA,oBAAI,CAAC/B,eAAL,GAAuB+B,IAAI,CAAC,MAAD,CAA3B;AACD,aALD;AAMD;AA3O0B;AAAA;AAAA,mDA6OMiB,UA7ON,EA6OgB;AACzC,iBAAKgB,mBAAL,GAA2BhB,UAA3B;AACD;AA/O0B;AAAA;AAAA,4CAiPJ;AACrB,iBAAKlD,sBAAL,GAA8B,IAA9B;AACD;AAnP0B;AAAA;AAAA,6CAqPH;AACtB,iBAAKI,uBAAL,GAA+B,IAA/B;AACD;AAvP0B;AAAA;AAAA,iDAyPC;AAC1B,iBAAKnB,2BAAL,GAAmC,IAAnC;AACD;AA3P0B;AAAA;AAAA,wCA6PR;AACjB,iBAAKgB,kBAAL,GAA0B,IAA1B;AACD;AA/P0B;AAAA;AAAA,wDAiQWiD,UAjQX,EAiQqB;AAC9C,iBAAKiB,wBAAL,GAAgCjB,UAAhC;AACD;AAnQ0B;AAAA;AAAA,yCAqQP;AAAA;;AACnB,iBAAK7E,UAAL,CAAgB+F,YAAhB,CAA6B,KAAKjB,cAAlC,EAAkDxF,SAAlD,CAA4D,UAACsE,IAAD,EAAQ;AACjE,oBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,sBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,yBAApB,EAA+C,SAA/C;AACD,eAFD,MAEK;AACH,sBAAI,CAAC9F,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,6BAAxC;AACD;;AACD,oBAAI,CAACd,UAAL;AACD,aATF;AAUA;AAhR0B;AAAA;AAAA,sCAkRV;AAChB,iBAAKjC,aAAL,GAAqB,EAArB;AACC,iBAAKQ,iBAAL,GAAyB,EAAzB;AACA,iBAAKH,mBAAL,GAA2B,EAA3B;AACA,iBAAKE,oBAAL,GAA4B,EAA5B;AACA,iBAAKR,2BAAL,GAAmC,KAAnC;AACA,iBAAKuB,0BAAL,GAAkC,EAAlC;AACA,iBAAKC,0BAAL,GAAkC,EAAlC;AACA,iBAAKH,kBAAL,GAA0B,EAA1B;AACA,iBAAKlB,kBAAL,GAA0B,EAA1B;AACA,iBAAKc,eAAL,GAAuB,MAAvB;AACA,iBAAKb,cAAL,GAAsB,EAAtB;AACA,iBAAKqB,gBAAL,GAAwB,EAAxB;AACA,iBAAKC,iBAAL,GAAyB,EAAzB;AACA,iBAAKC,iBAAL,GAAyB,EAAzB;AACA,iBAAKR,uBAAL,GAA+B,KAA/B;AACA,iBAAKS,cAAL,GAAsB,KAAtB;AACA,iBAAK2D,eAAL;AACD;AApS0B;AAAA;AAAA,4CAsSD;AACxB,iBAAK7E,oBAAL,GAA4B,EAA5B;AACA,iBAAKJ,mBAAL,GAA2B,EAA3B;AACA,iBAAKE,oBAAL,GAA4B,EAA5B;AACA,iBAAKR,2BAAL,GAAmC,KAAnC;AACA,iBAAKqB,kBAAL,GAA0B,EAA1B;AACA,iBAAKV,6BAAL,GAAqC,EAArC;AACA,iBAAKC,6BAAL,GAAqC,EAArC;AACA,iBAAKC,oBAAL,GAA4B,EAA5B;AACA,iBAAKC,yBAAL,GAAiC,EAAjC;AACA,iBAAKC,sBAAL,GAA8B,KAA9B;AACA,iBAAKC,kBAAL,GAA0B,KAA1B;AACA,iBAAKY,cAAL,GAAsB,KAAtB;AACA,iBAAKT,uBAAL,GAA+B,KAA/B;AACA,iBAAKoE,eAAL;AACD;AArT0B;AAAA;AAAA,4CAuTDC,CAvTC,EAuTE;AAC3B5C,mBAAO,CAACC,GAAR,CAAY,YAAZ;AAEA,iBAAK4C,gBAAL,GAAwBD,CAAC,CAACxD,MAAF,CAAS0D,KAAT,CAAe,CAAf,CAAxB;AACA,iBAAKC,oBAAL,GAA4BH,CAAC,CAACxD,MAAF,CAAS0D,KAAT,CAAe,CAAf,EAAkBE,IAA9C;AACD;AA5T0B;AAAA;AAAA,4CA8TJ;AACrB,iBAAKC,eAAL,CAAqBC,aAArB,CAAmCC,KAAnC,GAA2C,EAA3C;AACA,iBAAKN,gBAAL;AACA,iBAAKO,gBAAL,GAAwB,EAAxB;AACA,iBAAKL,oBAAL,GAA4B,EAA5B;AACD;AAnU0B;AAAA;AAAA,oCAqUT1B,UArUS,EAqUGgC,eArUH,EAqUkB;AAAA;;AAC3C,gBAAG,KAAKhF,eAAL,IAAsB,QAAzB,EAAkC;AAChC,mBAAK7B,UAAL,CAAgB8G,eAAhB,CAAgCjC,UAAhC,EAA4C,KAAKhD,eAAjD,EAAkEvC,SAAlE,CAA4E,UAACsE,IAAD,EAAQ;AAClF,sBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,uBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,oBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,wBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,YAAU,MAAI,CAACnE,eAAf,GAA+B,sBAA/B,GAAsDgD,UAA1E,EAAsF,SAAtF;;AACA,sBAAGgC,eAAH,EAAmB;AACjB,0BAAI,CAAC/D,UAAL;AACD;AACF,iBALD,MAKK;AACH,wBAAI,CAAC5C,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,6BAAxC;AACD;AACF,eAXD;AAYD,aAbD,MAaO;AACL,kBAAImD,UAAU,GAAG,IAAIC,UAAJ,EAAjB;;AACAD,wBAAU,CAACE,MAAX,GAAoB,UAACb,CAAD,EAAO;AACzB5C,uBAAO,CAACC,GAAR,CAAY,YAAZ,EAAyBsD,UAAU,CAACG,MAApC;AAEA,oBAAIC,gBAAgB,GAAKJ,UAAU,CAACG,MAAZ,CAAoBE,QAApB,EAAD,CAAiCC,OAAjC,CAAyC,KAAzC,EAAgD,GAAhD,EAAqDA,OAArD,CAA6D,KAA7D,EAAoE,GAApE,CAAvB;AACA7D,uBAAO,CAACC,GAAR,CAAY,aAAZ,EAA0B0D,gBAA1B;;AACA,sBAAI,CAACnH,UAAL,CAAgB8G,eAAhB,CAAgCjC,UAAhC,EAA4CsC,gBAA5C,EAA8D7H,SAA9D,CAAwE,UAACsE,IAAD,EAAQ;AAC9E,wBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,yBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,sBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,0BAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,sCAAoCnB,UAAxD,EAAoE,SAApE;;AACA,wBAAGgC,eAAH,EAAmB;AACjB,4BAAI,CAAC/D,UAAL;AACD;AACF,mBALD,MAKK;AACH,0BAAI,CAAC5C,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,6BAAxC;AACD;AACF,iBAXD;AAaD,eAlBD;;AAmBAmD,wBAAU,CAACO,UAAX,CAAsB,KAAKjB,gBAA3B;AACD;AACF;AA1W0B;AAAA;AAAA,yCA6WP;AACnB,gBAAG,KAAKxF,aAAL,CAAmBlC,OAAnB,CAA2B,GAA3B,IAAgC,CAAC,CAApC,EAAsC;AACrC,kBAAI4I,UAAU,GAAG,KAAK1G,aAAL,CAAmB2G,KAAnB,CAAyB,GAAzB,CAAjB;;AACA,mBAAK,IAAI9I,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6I,UAAU,CAACzI,MAA/B,EAAuCJ,CAAC,EAAxC,EAA4C;AAC3C,oBAAG6I,UAAU,CAAC7I,CAAD,CAAV,IAAe,EAAlB,EAAqB;AACpB,uBAAK+I,kBAAL,CAAwBF,UAAU,CAAC7I,CAAD,CAAlC,EAAsC,KAAK2C,iBAA3C,EAA6D,KAAKN,kBAAlE,EAAqF,KAAKC,cAA1F,EAAyG,KAAKa,eAA9G,EAA8H,KAAKX,mBAAnI,EAAuJ,KAAKE,oBAA5J,EAAkLmG,UAAU,CAACzI,MAA7L,EAAoMJ,CAAC,GAAC,CAAtM;AACA;AACD;AACD,aAPD,MAOK;AACJ,mBAAK+I,kBAAL,CAAwB,KAAK5G,aAA7B,EAA2C,KAAKQ,iBAAhD,EAAkE,KAAKN,kBAAvE,EAA0F,KAAKC,cAA/F,EAA8G,KAAKa,eAAnH,EAAmI,KAAKX,mBAAxI,EAA4J,KAAKE,oBAAjK,EAAsL,CAAtL,EAAwL,CAAxL;AACA;AACD;AAxX0B;AAAA;AAAA,0CA0XHsG,MA1XG,EA0XG;AAC5B,iBAAKC,mBAAL,GAA2BD,MAA3B;AACD;AA5X0B;AAAA;AAAA,6CA8XA;AACzB,gBAAG,KAAKrF,gBAAL,IAAyB,EAAzB,IAA+B,KAAKC,iBAAL,IAA0B,EAA5D,EAA+D;AAC7D,mBAAKC,iBAAL,CAAuB,KAAKF,gBAA5B,IAAgD,KAAKC,iBAArD;AACA,mBAAKD,gBAAL,GAAwB,EAAxB;AACA,mBAAKC,iBAAL,GAAyB,EAAzB;AACA,mBAAKE,cAAL,GAAsB,IAAtB;AACD;AACF;AArY0B;AAAA;AAAA,8CAuYCoF,OAvYD,EAuYU;AACnC,mBAAO,KAAKrF,iBAAL,CAAuBqF,OAAvB,CAAP;AACA,iBAAKpF,cAAL,GAAsB,IAAtB;AACD;AA1Y0B;AAAA;AAAA,uCA4YNqF,SA5YM,EA4YKC,QA5YL,EA4Ye;AACxC,gBAAG,KAAKxG,oBAAL,IAA6B,EAAhC,EAAmC;AACjC,mBAAKyG,2BAAL,CAAiC,KAAK5C,cAAtC,EAAsD,KAAK7D,oBAA3D,EAAiF,KAAKW,kBAAtF,EAA0G,KAAKV,6BAA/G,EAA8I,KAAKC,6BAAnJ,EAAkL,IAAlL;AACD;;AAED,gBAAG,KAAKgB,cAAR,EAAuB;AACrB,mBAAKwF,gBAAL,CAAsB,KAAK7C,cAA3B,EAA0C,IAA1C;AACD;;AAED,gBAAG,KAAKxD,sBAAL,IAA+B,KAAKC,kBAAvC,EAA0D;AACxD,mBAAKqG,iBAAL,CAAuB,KAAK9C,cAA5B,EAA4C0C,SAA5C,EAAuDC,QAAvD,EAAiE,IAAjE;AACD;;AAED,gBAAG,KAAK/F,uBAAR,EAAgC;AAC9B,mBAAKmG,SAAL,CAAe,KAAK/C,cAApB,EAAoC,IAApC;AACD;;AAED,gBAAG,KAAKvE,2BAAR,EAAoC;AAClC,mBAAKuH,mBAAL,CAAyB,KAAKhD,cAA9B,EAA8C,KAAKzD,yBAAnD,EAA8E,KAAKN,oBAAnF,EAAyG,IAAzG;AACD;AACF;AAha0B;AAAA;AAAA,sDAkaSsG,MAlaT,EAkaiBU,MAlajB,EAkayBC,UAlazB,EAkaqCC,YAlarC,EAkamDC,YAlanD,EAkaiE1B,eAlajE,EAkagF;AAAA;;AACzG,gBAAI2B,aAAa,GAAG,EAApB;;AACA,iBAAK,IAAI9J,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2J,UAAU,CAACvJ,MAA/B,EAAuCJ,CAAC,EAAxC,EAA4C;AAC1C8J,2BAAa,CAACvJ,IAAd,CAAmBoJ,UAAU,CAAC3J,CAAD,CAAV,CAAc+J,QAAjC;AACD;;AACD,iBAAKzI,UAAL,CAAgB+H,2BAAhB,CAA4CL,MAA5C,EAAoDU,MAApD,EAA4DI,aAAa,CAACE,IAAd,CAAmB,GAAnB,CAA5D,EAAqFJ,YAArF,EAAmGC,YAAnG,EAAiHjJ,SAAjH,CAA2H,UAACsE,IAAD,EAAQ;AACjI,oBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,sBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,wBAAsB0B,MAAtB,GAA6B,mBAAjD,EAAsE,SAAtE;;AACA,oBAAGb,eAAH,EAAmB;AACjB,wBAAI,CAAC/D,UAAL;AACD;AACF,eALD,MAKK;AACH,sBAAI,CAAC5C,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,2CAAyC8D,MAAjF;AACD;AACF,aAVD;AAWD;AAlb0B;AAAA;AAAA,4CAobDA,MApbC,EAobOG,SApbP,EAobkBC,QApblB,EAob4Ba,gBApb5B,EAob4C;AAAA;;AACrE,iBAAK3I,UAAL,CAAgB4I,cAAhB,CAA+BlB,MAA/B,EAAuCG,SAAvC,EAAkDC,QAAlD,EAA4DxI,SAA5D,CAAsE,UAACsE,IAAD,EAAQ;AAC5E,oBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,sBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,sBAAoB0B,MAApB,GAA2B,eAA/C,EAAgE,SAAhE;AACD,eAFD,MAEK;AACH,sBAAI,CAACxH,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,kCAAxC;AACD;;AACD,kBAAG+E,gBAAH,EAAoB;AAClB,sBAAI,CAAC7F,UAAL;AACD;AACF,aAVD;AAWD;AAhc0B;AAAA;AAAA,+CAkcD;AAAA;;AACxB,gBAAI4E,MAAM,GAAG,KAAK3C,2BAAlB;AACA,iBAAK/E,UAAL,CAAgB6I,kBAAhB,CAAmCnB,MAAnC,EAA2CpI,SAA3C,CAAqD,UAACsE,IAAD,EAAQ;AAC3D,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,uBAAqB0B,MAArB,GAA4B,mBAAhD,EAAqE,SAArE;AACD,eAFD,MAEK;AACH,uBAAI,CAACxH,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,oCAAxC;AACD;;AACD,qBAAI,CAACd,UAAL;AACD,aATD;AAUD;AA9c0B;AAAA;AAAA,8CAgdF;AAAA;;AACrB,gBAAI4E,MAAM,GAAG,KAAK7B,mBAAlB;AACA,iBAAK7F,UAAL,CAAgB8I,iBAAhB,CAAkCpB,MAAlC,EAA0CpI,SAA1C,CAAoD,UAACsE,IAAD,EAAQ;AAC1D,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,sBAAoB0B,MAApB,GAA2B,mBAA/C,EAAoE,SAApE;AACD,eAFD,MAEK;AACH,uBAAI,CAACxH,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,mCAAxC;AACD;;AACD,qBAAI,CAACd,UAAL;AACD,aATD;AAUH;AA5d0B;AAAA;AAAA,mDA8dG;AAAA;;AAC1B,gBAAI4E,MAAM,GAAG,KAAK5B,wBAAlB;AACA,iBAAK9F,UAAL,CAAgB+I,sBAAhB,CAAuCrB,MAAvC,EAA+CpI,SAA/C,CAAyD,UAACsE,IAAD,EAAQ;AAC/D,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,2BAAyB0B,MAAzB,GAAgC,mBAApD,EAAyE,SAAzE;AACD,eAFD,MAEK;AACH,uBAAI,CAACxH,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,wCAAxC;AACD;;AACD,qBAAI,CAACd,UAAL;AACD,aATD;AAUH;AA1e0B;AAAA;AAAA,8CA6eC4E,MA7eD,EA6eSsB,OA7eT,EA6ekBC,WA7elB,EA6e+BN,gBA7e/B,EA6e+C;AAAA;;AACxE,iBAAK3I,UAAL,CAAgBmI,mBAAhB,CAAoCT,MAApC,EAA4CsB,OAA5C,EAAqDC,WAArD,EAAkE3J,SAAlE,CAA4E,UAACsE,IAAD,EAAQ;AAClF,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,2BAAyB0B,MAAzB,GAAgC,eAApD,EAAqE,SAArE;AACD,eAFD,MAEK;AACH,uBAAI,CAACxH,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,uCAAxC;AACD;;AACD,kBAAG+E,gBAAH,EAAoB;AAClB,uBAAI,CAAC7F,UAAL;AACD;AACF,aAVD;AAWD;AAzf0B;AAAA;AAAA,6CA6fA4E,MA7fA,EA6fQwB,QA7fR,EA6fkBrB,SA7flB,EA6f6BC,QA7f7B,EA6fuCqB,MA7fvC,EA6f+CC,UA7f/C,EA6f2DH,WA7f3D,EA6fwEI,eA7fxE,EA6fyFC,mBA7fzF,EA6f4G;AAAA;;AACtI,iBAAKtJ,UAAL,CAAgBuJ,YAAhB,CAA6B7B,MAA7B,EAAqCpI,SAArC,CAA+C,UAACsE,IAAD,EAAQ;AACpD,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,aAAW0B,MAAX,GAAkB,mBAAtC,EAA2D,SAA3D;;AACA,oBAAGwB,QAAQ,IAAI,EAAf,EAAkB;AAChB,yBAAI,CAACnB,2BAAL,CAAiCL,MAAjC,EAAyCwB,QAAzC,EAAmD,OAAI,CAACjH,kBAAxD,EAA4E,OAAI,CAACE,0BAAjF,EAA6G,OAAI,CAACC,0BAAlH,EAA8I,KAA9I;AACD;;AACD,oBAAGyF,SAAS,IAAI,EAAb,IAAmBC,QAAQ,IAAI,EAA/B,IAAqCA,QAAQ,IAAI,CAApD,EAAsD;AACpD,yBAAI,CAACG,iBAAL,CAAuBP,MAAvB,EAA+BG,SAA/B,EAA0CC,QAA1C,EAAoD,KAApD;AACD;;AACD,oBAAGvH,MAAM,CAACC,IAAP,CAAY,OAAI,CAAC+B,iBAAjB,EAAoCzD,MAApC,GAA6C,CAAhD,EAAkD;AAChD,yBAAI,CAACkJ,gBAAL,CAAsBN,MAAtB,EAA8B,KAA9B;AACD;;AACD,oBAAG,OAAI,CAAC3F,uBAAR,EAAgC;AAC9B,yBAAI,CAACmG,SAAL,CAAeR,MAAf,EAAuB,KAAvB;AACD;;AACD,oBAAG0B,UAAU,IAAI,EAAjB,EAAoB;AAClB,yBAAI,CAACjB,mBAAL,CAAyBT,MAAzB,EAAiC0B,UAAjC,EAA6CH,WAA7C,EAA0D,KAA1D;AACD;AACF,eAjBD,MAiBK;AACH,uBAAI,CAAC/I,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,6BAAxC;AACD;;AACD,kBAAGyF,eAAe,IAAIC,mBAAtB,EAA0C;AACxCE,0BAAU,CAAC,YAAI;AACX,yBAAI,CAAC1G,UAAL;AACH,iBAFS,EAEP,GAFO,CAAV;AAGD;AACF,aA5BF;AA6BA;AA3hB0B;AAAA;AAAA,sCA6hBPsD,CA7hBO,EA6hBJ;AACrB5C,mBAAO,CAACC,GAAR,CAAY,gBAAZ;AAEA,iBAAKgG,mBAAL,GAA2BrD,CAAC,CAACxD,MAAF,CAAS0D,KAAT,CAAe,CAAf,CAA3B;AACA,iBAAKoD,uBAAL,GAA+BtD,CAAC,CAACxD,MAAF,CAAS0D,KAAT,CAAe,CAAf,EAAkBE,IAAjD;AACD;AAliB0B;AAAA;AAAA,+CAoiBD;AACxB,iBAAKC,eAAL,CAAqBC,aAArB,CAAmCC,KAAnC,GAA2C,EAA3C;AACA,iBAAK8C,mBAAL;AACA,iBAAKE,mBAAL,GAA2B,EAA3B;AACA,iBAAKD,uBAAL,GAA+B,EAA/B;AACA,iBAAKjH,0BAAL,GAAkC,CAAlC;AACD;AA1iB0B;AAAA;AAAA,4CA4iBDiF,MA5iBC,EA4iBO;AAAA;;AAChC,iBAAK1H,UAAL,CAAgB4J,YAAhB,CAA6BlC,MAA7B,EAAqCpI,SAArC,CAA+C,UAACsE,IAAD,EAAQ;AACrD,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC,EADqD,CAErD;;;AACA,kBAAGA,IAAI,CAAC,OAAD,CAAP,EAAiB;AACf,uBAAI,CAAC1D,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,+BAAxC;AACD,eAFD,MAEK;AACH,oBAAGA,IAAI,IAAE,EAAT,EAAY,CACV;AACD,iBAFD,MAEK;AACH,yBAAI,CAACnB,0BAAL,GAAkC,CAAlC;AACAe,yBAAO,CAACC,GAAR,CAAY,eAAZ,EAA4BwC,IAAI,CAACC,SAAL,CAAetC,IAAf,CAA5B;;AAEA,sBAAIiG,GAAG,GAAG,OAAI,CAAC1J,SAAL,CAAe2J,sBAAf,CAAsC,kCAAkCC,kBAAkB,CAAC9D,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAD,CAA1F,CAAV;;AACA,yBAAI,CAACoG,gBAAL,GAAwBH,GAAxB;AACD;AACF;AACF,aAhBD;AAiBD;AA9jB0B;AAAA;AAAA,4CAgkBJ;AAAA;;AACrB,gBAAI9C,UAAU,GAAG,IAAIC,UAAJ,EAAjB;;AACAD,sBAAU,CAACE,MAAX,GAAoB,UAACb,CAAD,EAAO;AACzB,kBAAI6D,mBAAmB,GAAKlD,UAAU,CAACG,MAAZ,CAAoBE,QAApB,EAAD,CAAiCC,OAAjC,CAAyC,KAAzC,EAAgD,GAAhD,EAAqDA,OAArD,CAA6D,KAA7D,EAAoE,GAApE,CAA1B;;AACA,qBAAI,CAACrH,UAAL,CAAgBkK,YAAhB,CAA6B,OAAI,CAACvC,mBAAlC,EAAsDsC,mBAAtD,EAA2E3K,SAA3E,CAAqF,UAACsE,IAAD,EAAQ;AAC3F,uBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,uBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,oBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,yBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,8CAA4C,OAAI,CAAC2B,mBAAjD,GAAqE,EAAzF,EAA6F,SAA7F;AACD,iBAFD,MAEK;AACH,yBAAI,CAACzH,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,kCAAxC;AACD;AACF,eARD;AASD,aAXD;;AAYAmD,sBAAU,CAACO,UAAX,CAAsB,KAAKmC,mBAA3B;AACD;AA/kB0B;AAAA;AAAA,2CAilBF/B,MAjlBE,EAilBKiB,gBAjlBL,EAilBqB;AAAA;;AAC9C,gBAAIwB,OAAO,GAAG,KAAK5H,iBAAnB;AACA,gBAAI6H,QAAQ,GAAG,KAAK9J,UAAL,CAAgB6J,OAAhB,CAAf;AACA,gBAAIE,MAAM,GAAG,EAAb;;AACA,iBAAK,IAAI3L,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0L,QAAQ,CAACtL,MAA7B,EAAqCJ,CAAC,EAAtC,EAA0C;AACxC,kBAAI4L,SAAS,GAAGF,QAAQ,CAAC1L,CAAD,CAAR,GAAY,GAAZ,GAAgByL,OAAO,CAACC,QAAQ,CAAC1L,CAAD,CAAT,CAAvC;AACA2L,oBAAM,CAACpL,IAAP,CAAYqL,SAAZ;AACD;;AACD,gBAAIA,SAAS,GAAGD,MAAM,CAAC3B,IAAP,CAAY,GAAZ,CAAhB;AACAlF,mBAAO,CAACC,GAAR,CAAY,iBAAZ,EAA+B6G,SAA/B;AACA,iBAAKtK,UAAL,CAAgBuK,YAAhB,CAA6B7C,MAA7B,EAAqC4C,SAArC,EAAgDhL,SAAhD,CAA0D,UAACsE,IAAD,EAAQ;AAChE,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,qBAAmB0B,MAAnB,GAA0B,eAA9C,EAA+D,SAA/D;AACD,eAFD,MAEK;AACH,uBAAI,CAACxH,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,iCAAxC;AACD;;AACD,kBAAG+E,gBAAH,EAAoB;AAClB,uBAAI,CAAC7F,UAAL;AACD;AACF,aAVD;AAWD;AAtmB0B;AAAA;AAAA,yCAwmBJ4E,MAxmBI,EAwmBG8C,QAxmBH,EAwmBa;AAAA;;AACtC,iBAAKxK,UAAL,CAAgB4F,eAAhB,CAAgC8B,MAAhC,EAAwCpI,SAAxC,CAAkD,UAACsE,IAAD,EAAQ;AACxD,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAY,sBAAZ,EAAoCiE,MAApC,EAA4C9D,IAA5C;;AACA,kBAAGA,IAAI,CAAC,OAAD,CAAP,EAAiB;AACf,uBAAI,CAAC1D,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,4BAAxC;AACD,eAFD,MAEK;AACH,oBAAGA,IAAI,IAAE,EAAT,EAAY;AACV,yBAAI,CAAC1D,MAAL,CAAYR,KAAZ,CAAkB,sBAAlB,EAA0C,4BAA1C;AACD,iBAFD,MAEK;AACH,sBAAI+K,IAAI,GAAGC,QAAQ,CAACC,aAAT,CAAuB,GAAvB,CAAX;AACAF,sBAAI,CAACG,IAAL,GAAY,kCAAkCb,kBAAkB,CAACnG,IAAI,CAAC,QAAD,CAAJ,CAAewD,QAAf,EAAD,CAAhE;AACAqD,sBAAI,CAACI,QAAL,GAAgBL,QAAhB;AACAC,sBAAI,CAACK,KAAL;AACD;AACF;AACF,aAfD;AAgBD;AAznB0B;;AAAA;AAAA,S;;;;gBAXpB;;gBAF2D;;gBAI3D;;gBAHA;;;;;;gBAoEN,uD;AAAS,iBAAC,gFAAD,EAA8B;AAAE,sBAAQ;AAAV,WAA9B;;;gBACT,uD;AAAS,iBAAC,sEAAD,EAAoB;AAAE,sBAAQ;AAAV,WAApB;;;gBAOT,0D;AAAY,iBAAC,OAAD;;;gBAMZ,uD;AAAS,iBAAC,qBAAD,EAAwB;AAAE,sBAAQ;AAAV,WAAxB;;;AAtEC/K,sBAAgB,6DAL5B,gEAAU;AACTgL,gBAAQ,EAAE,aADD;AAETC,gBAAQ,EAAR,0EAFS;;AAAA,OAAV,CAK4B,GAAhBjL,gBAAgB,CAAhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCLAkL,eAAe;AA6C1B,iCAAoBjL,UAApB,EAA4C;AAAA;;AAAxB,eAAAA,UAAA,GAAAA,UAAA;AA3CpB,eAAAM,UAAA,GAAaC,MAAM,CAACC,IAApB;AACA,eAAA0K,YAAA,GAAe3K,MAAM,CAACiF,MAAtB;AACA,eAAApF,IAAA,GAAOC,IAAP;AACA,eAAA8K,OAAA,GAAU,EAAV;AAGA,eAAAC,WAAA,GAAY,EAAZ;AACA,eAAAC,eAAA,GAAgB,CAAC;AAACzH,gBAAI,EAAE,EAAP;AAAW0H,iBAAK,EAAE;AAAlB,WAAD,CAAhB;AACA,eAAAC,aAAA,GAAc,EAAd;AACA,eAAAC,WAAA,GAAc,OAAd;AACA,eAAAC,aAAA,GAAgB,CACZ;AACIC,2BAAe,EAAE,uBADrB;AAEIC,uBAAW,EAAE,qBAFjB;AAGIC,uBAAW,EAAE,CAHjB;AAIIC,gCAAoB,EAAE,qBAJ1B;AAKIC,4BAAgB,EAAE,MALtB;AAMIC,qCAAyB,EAAE,MAN/B;AAOIC,iCAAqB,EAAE;AAP3B,WADY,CAAhB;AAWA,eAAAC,cAAA,GAAiB;AACbC,sBAAU,EAAE;AADC,WAAjB;AAIA,eAAAC,eAAA,GAAgB,CAAC;AAACvI,gBAAI,EAAE,EAAP;AAAW0H,iBAAK,EAAE;AAAlB,WAAD,CAAhB;AACA,eAAAc,aAAA,GAAc,EAAd;AACA,eAAAC,WAAA,GAAc,KAAd;AACA,eAAAC,aAAA,GAAgB,CACZ;AACIZ,2BAAe,EAAE,uBADrB;AAEIC,uBAAW,EAAE,qBAFjB;AAGIC,uBAAW,EAAE,CAHjB;AAIIC,gCAAoB,EAAE,qBAJ1B;AAKIC,4BAAgB,EAAE,MALtB;AAMIC,qCAAyB,EAAE,MAN/B;AAOIC,iCAAqB,EAAE;AAP3B,WADY,CAAhB;AAWA,eAAAO,cAAA,GAAiB;AACbL,sBAAU,EAAE;AADC,WAAjB;AAI+C;;AA7CrB;AAAA;AAAA,qCA+Cf;AACV,iBAAKvI,UAAL;AACC,iBAAKI,QAAL;AACD;AAlDyB;AAAA;AAAA,yCAoDJqC,CApDI,EAoDE,CAC3B;AArDyB;AAAA;AAAA,yCAuDJA,CAvDI,EAuDE,CAC3B;AAxDyB;AAAA;AAAA,yCA0DJA,CA1DI,EA0DE,CAC3B;AA3DyB;AAAA;AAAA,yCA6DJA,CA7DI,EA6DE,CAC3B;AA9DyB;AAAA;AAAA,uCAgER;AAAA;;AACjB,iBAAKpG,UAAL,CAAgB2D,UAAhB,GAA6BrE,SAA7B,CAAuC,UAACsE,IAAD,EAAQ;AAC5C,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACA,qBAAI,CAACE,WAAL,GAAmBF,IAAnB;AACD,aAHF;AAIA;AArEyB;AAAA;AAAA,qCAuEV;AAAA;;AACf,iBAAK5D,UAAL,CAAgB+D,QAAhB,GAA2BzE,SAA3B,CAAqC,UAACsE,IAAD,EAAQ;AAC1C,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAY,yBAAZ,EAAsCG,IAAtC;AACA,qBAAI,CAACI,aAAL,GAAqBJ,IAArB;;AACA,kBAAGA,IAAI,CAAC4I,cAAL,CAAoB,uBAApB,CAAH,EAAgD;AAC9C,oBAAIC,qBAAqB,GAAG,OAAI,CAACzI,aAAL,CAAmByI,qBAA/C;AACA,oBAAIC,mBAAmB,GAAG,EAA1B;AACA,oBAAIC,mBAAmB,GAAG,EAA1B;;AACA,oBAAGF,qBAAH,EAAyB;AACvBC,qCAAmB,GAAGnM,MAAM,CAACC,IAAP,CAAYiM,qBAAZ,CAAtB;AACAE,qCAAmB,GAAGpM,MAAM,CAACiF,MAAP,CAAciH,qBAAd,CAAtB;AACD;;AACD,uBAAI,CAACpB,eAAL,CAAqB,CAArB,EAAwBzH,IAAxB,GAA+B+I,mBAA/B;AAEA,uBAAI,CAACpB,aAAL,GAAqB,EAArB;;AACA,qBAAK,IAAI7M,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,mBAAmB,CAAC5N,MAAxC,EAAgDJ,CAAC,EAAjD,EAAqD;AACnD,sBAAIkO,cAAc,GAAGF,mBAAmB,CAAChO,CAAD,CAAnB,CAAuB8I,KAAvB,CAA6B,GAA7B,EAAkCkB,IAAlC,CAAuC,GAAvC,CAArB;;AACA,yBAAI,CAAC6C,aAAL,CAAmBtM,IAAnB,CAAwB2N,cAAxB;AACD;AACF;;AAED,kBAAGhJ,IAAI,CAAC4I,cAAL,CAAoB,cAApB,KAAuC,OAAI,CAACxI,aAAL,CAAmB6I,YAAnB,IAAmC,EAA1E,IAAgF,OAAI,CAAC7I,aAAL,CAAmB6I,YAAnB,IAAmC,IAAtH,EAA4H;AAC1H,oBAAIC,iBAAiB,GAAG,OAAI,CAAC9I,aAAL,CAAmB6I,YAA3C;AACA,oBAAME,qBAAqB,GAAGxM,MAAM,CAACC,IAAP,CAAYsM,iBAAZ,CAA9B;AACA,oBAAME,qBAAqB,GAAGzM,MAAM,CAACiF,MAAP,CAAcsH,iBAAd,CAA9B;AACA,uBAAI,CAACX,eAAL,CAAqB,CAArB,EAAwBvI,IAAxB,GAA+BoJ,qBAA/B;AACA,uBAAI,CAACZ,aAAL,GAAoBW,qBAApB;AACD;AACF,aA5BF;AA6BA;AArGyB;AAAA;AAAA,qCAuGPE,GAvGO,EAuGJ;AACpB,iBAAK9B,OAAL,GAAe8B,GAAf;AACD;AAzGyB;;AAAA;AAAA,S;;;;gBAPnB;;;;AAOIhC,qBAAe,6DAL3B,gEAAU;AACTF,gBAAQ,EAAE,YADD;AAETC,gBAAQ,EAAR,yEAFS;;AAAA,OAAV,CAK2B,GAAfC,eAAe,CAAf;;;;;;;;;;;;;;;;ACRb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCSFiC,YAAY;AAGvB,8BAAoBlN,UAApB,EAA4C;AAAA;;AAAxB,eAAAA,UAAA,GAAAA,UAAA;AAFpB,eAAAmN,KAAA,GAAQ,YAAR;AAE+C;;AAHxB;AAAA;AAAA,qCAKZ;AACV,iBAAKC,eAAL;AACA;AAPsB;AAAA;AAAA,4CASA;AAAA;;AACrB,iBAAKpN,UAAL,CAAgBoN,eAAhB,GAAkC9N,SAAlC,CAA4C,UAACsE,IAAD,EAAQ;AAClDJ,qBAAO,CAACC,GAAR,CAAY,cAAZ,EAA4BG,IAA5B;;AACA,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;AACD,aAHD;AAID;AAdsB;;AAAA;AAAA,S;;;;gBARhB;;;;AAQIsJ,kBAAY,6DALxB,gEAAU;AACTnC,gBAAQ,EAAE,UADD;AAETC,gBAAQ,EAAR,sEAFS;;AAAA,OAAV,CAKwB,GAAZkC,YAAY,CAAZ;;;;;;;;;;;;;;;;ACTb;AAAe;;;AAAA;;;;;;;;;;;;;;;;ACAf;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCwDFG,SAAS;AAAA;AAAA,O;;AAATA,eAAS,6DA/BrB,+DAAS;AACRC,oBAAY,EAAE,CACZ,2DADY,EAEZ,qEAFY,EAGZ,wEAHY,EAIZ,uDAJY,EAKZ,+EALY,EAMZ,yEANY,EAOZ,4EAPY,EAQZ,yEARY,CADN;AAWRC,eAAO,EAAE,CACP,uEADO,EAEP,oEAFO,EAGP,wEAAmBC,OAAnB,EAHO,EAIP,sEAJO,EAKP,kEALO,EAMP,oEANO,EAOP,uFAPO,EAQP,0DARO,EASP,6DATO,EAUP,6FAVO,EAWP,yDAAaA,OAAb,EAXO,CAXD;AAwBRC,iBAAS,EAAE,CACT,yEADS,EAET,8DAFS,EAGT;AAAEC,iBAAO,EAAE,uEAAX;AAA8BC,kBAAQ,EAAE,sEAAxC;AAA2DC,eAAK,EAAE;AAAlE,SAHS,CAxBH;AA6BRC,iBAAS,EAAE,CAAC,2DAAD;AA7BH,OAAT,CA+BqB,GAATR,SAAS,CAAT;;;;;;;;;;;;;;;;ACxDb;AAAe;;;AAAA;;;;;;;;;;;;;;;;ACAf;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAEO,UAAMS,iBAAiB,GAAG,SAApBA,iBAAoB,GAAM;AACrC;AACA,YAAMC,GAAG,GAAG,IAAI,uDAAJ,EAAZ,CAFqC,CAIrC;;AACA,YAAMC,aAAa,GAAGC,MAAM,IAAI,EAAhC;AACA,YAAMC,gBAAgB,GAAGF,aAAa,CAAC,OAAD,CAAb,IAA0B,EAAnD,CANqC,CAQrC;AACA;AACA;;AACA,aAAK,IAAMG,GAAX,IAAkBD,gBAAlB,EAAoC;AAClC,cAAIA,gBAAgB,CAAC1B,cAAjB,CAAgC2B,GAAhC,CAAJ,EAA0C;AACxCJ,eAAG,CAACI,GAAD,CAAH,GAAWF,MAAM,CAAC,OAAD,CAAN,CAAgBE,GAAhB,CAAX;AACD;AACF;;AAED,eAAOJ,GAAP;AACD,OAlBM;;AAoBA,UAAMK,kBAAkB,GAAG;AAChCV,eAAO,EAAE,uDADuB;AAEhCW,kBAAU,EAAEP,iBAFoB;AAGhCQ,YAAI,EAAE;AAH0B,OAA3B;;;;;;;;;;;;;;;;ACtBP;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCYFC,eAAe;AAkCzB,iCAAoBvO,UAApB,EAAoDC,KAApD,EAAsFC,MAAtF,EAA6G;AAAA;;AAAzF,eAAAF,UAAA,GAAAA,UAAA;AAAgC,eAAAC,KAAA,GAAAA,KAAA;AAAkC,eAAAC,MAAA,GAAAA,MAAA;AAjCxF,eAAAI,UAAA,GAAaC,MAAM,CAACC,IAApB;AACA,eAAAgO,GAAA,GAAMvI,IAAN;AACA,eAAAwI,MAAA,GAAS,EAAT;AACA,eAAAC,iBAAA,GAAoB,EAApB;AACA,eAAAC,KAAA,GAAQ,EAAR;AACA,eAAAC,WAAA,GAAc,EAAd;AACA,eAAAC,aAAA,GAAgB,EAAhB;AACA,eAAAC,YAAA,GAAe,EAAf;AACA,eAAAC,cAAA,GAAiB,EAAjB;AACA,eAAAC,cAAA,GAAiB,EAAjB;AAEA,eAAAC,kBAAA,GAAqB,CAAC,SAAD,EAAW,UAAX,CAArB;AAGA,eAAAC,aAAA,GAAgB,KAAhB;AACA,eAAA/D,OAAA,GAAU,EAAV;AACA,eAAAgE,aAAA,GAAgB,EAAhB;AACA,eAAAC,aAAA,GAAgB,EAAhB;AAIA,eAAAC,YAAA,GAAe,EAAf;AACA,eAAAC,aAAA,GAAgB,EAAhB;AACA,eAAAC,gBAAA,GAAmB,EAAnB;AAQA,eAAA7M,UAAA,GAAqB,EAArB;AAEkH;;AAlCvF;AAAA;AAAA,oCAoCQ;AAClC,gBAAGnD,KAAK,IAAIA,KAAK,CAAC,QAAD,CAAL,KAAoBoD,SAA7B,IAA0CpD,KAAK,CAACqD,MAAN,CAAa,IAAb,MAAuBD,SAAjE,IAA8EpD,KAAK,CAACqD,MAAN,CAAa,IAAb,KAAsB,QAAvG,EAAgH;AAC7G,mBAAKC,WAAL;AACF;;AACD,gBAAGtD,KAAK,IAAIA,KAAK,CAAC,QAAD,CAAL,KAAoBoD,SAA7B,IAA0CpD,KAAK,CAACqD,MAAN,CAAa,MAAb,MAAyBD,SAAnE,IAAgFpD,KAAK,CAACqD,MAAN,CAAa,MAAb,KAAwB,cAA3G,EAA0H;AACrH,kBAAG,KAAKsM,aAAR,EAAsB;AACpB,oBAAG,KAAKJ,YAAL,IAAqB,KAAKD,aAAL,CAAmB,MAAnB,CAAxB,EAAmD;AACjDrL,yBAAO,CAACC,GAAR,CAAY,KAAZ;AACA,uBAAK+L,UAAL,CAAgB,IAAhB;AACD,iBAHD,MAGK;AACH,uBAAKC,aAAL;AACD;AACF;AACF;AACJ;AAlD0B;AAAA;AAAA,qCAoDhB;AACV,iBAAKC,SAAL;AACA,iBAAKC,cAAL;AACA,iBAAKC,iBAAL;AACA,iBAAKJ,UAAL,CAAgB,KAAhB;AAEA,iBAAKH,YAAL,GAAoB,CAChB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aADgB,CAApB;AAIG,iBAAKE,gBAAL,GAAwB;AAC1BtM,6BAAe,EAAE,KADS;AAE1BC,kBAAI,EAAC,gBAFqB;AAG1BC,2BAAa,EAAC,YAHY;AAI1BC,6BAAe,EAAC,cAJU;AAK1BC,gCAAkB,EAAE;AALM,aAAxB;AAOH;AArE0B;AAAA;AAAA,uCAuEdE,IAvEc,EAuEN;AACjBC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAK6L,aAAjB;AACH;AA1E0B;AAAA;AAAA,yCA2EZ/L,IA3EY,EA2EJ;AACtB,iBAAK4L,aAAL,CAAmBlQ,IAAnB,CAAwBsE,IAAI,CAAC,UAAD,CAA5B;AACGC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAK6L,aAAjB;AACH;AA/E0B;AAAA;AAAA,sCAgFf5L,KAhFe,EAgFL;AAClBF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH;AAlF0B;AAAA;AAAA,wCAmFbA,KAnFa,EAmFH;AAEtB,iBAAK,IAAIhF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK4Q,aAAL,CAAmBxQ,MAAvC,EAA+CJ,CAAC,EAAhD,EAAoD;AACnD,mBAAKyQ,aAAL,CAAmBlQ,IAAnB,CAAwB,KAAKqQ,aAAL,CAAmB5Q,CAAnB,EAAsB,UAAtB,CAAxB;AACA;;AAEC,iBAAK4Q,aAAL,GAAqB,EAArB;AACH;AA1F0B;AAAA;AAAA,wCA4FL;AACrB,gBAAMrL,IAAI,GAAG,KAAKC,QAAL,CAAcC,aAAd,EAAb;;AAEA,gBAAI,CAAC,KAAKzB,UAAV,EAAsB;AACpB,mBAAKwB,QAAL,CAAcE,aAAd,CAA4B,KAAKC,QAAjC;AACA,mBAAKoK,MAAL,GAAc,KAAKvK,QAAL,CAAcC,aAAd,EAAd;AACD;;AAED,gBAAI,KAAKzB,UAAT,EAAqB;AACnB,mBAAK+L,MAAL,GAAc,KAAKvK,QAAL,CAAcI,iBAAd,CAAgC,KAAK5B,UAArC,CAAd;AACA,mBAAKwB,QAAL,CAAcE,aAAd,CAA4BH,IAA5B;AACD;AACD;AAxG0B;AAAA;AAAA,4CA0GT;AAChB,iBAAKM,kBAAL,CAAwBC,0BAAxB,CAAmD,EAAnD;AAEA,iBAAKD,kBAAL,CAAwBE,uBAAxB;AACA,iBAAKF,kBAAL,CAAwBG,sBAAxB;AACA,iBAAKzE,KAAL,CAAW0E,aAAX;AACD;AAhH0B;AAAA;AAAA,qCAkHRkL,KAlHQ,EAkHH;AACvB,iBAAKX,aAAL,GAAqBW,KAArB;;AACA,gBAAGA,KAAH,EAAS;AACP,mBAAKC,oBAAL,GAA4B,YAA5B;AACA,mBAAKC,yBAAL,GAAiC,QAAjC;AACD,aAHD,MAGK;AACH,mBAAKD,oBAAL,GAA4B,cAA5B;AACA,mBAAKC,yBAAL,GAAiC,QAAjC;AACD;AACD;AA3H0B;AAAA;AAAA,0CA6HN;AACpB,iBAAKD,oBAAL,GAA4B,YAA5B;AACA,iBAAKC,yBAAL,GAAiC,MAAjC;AACA;AAhI0B;AAAA;AAAA,oCAkITC,GAlIS,EAkIJ;AACtB;AACG,gBAAIC,GAAG,GAAGD,GAAG,CAACtH,IAAJ,CAAS,MAAT,CAAV;AACA,mBAAOuH,GAAP;AACH;AAtI0B;AAAA;AAAA,oCAwIVA,GAxIU,EAwIP;AACpB;AACC,mBAAOhK,IAAI,CAACiK,KAAL,CAAWC,IAAI,CAACF,GAAD,CAAf,CAAP;AACA;AA3I0B;AAAA;AAAA,qCA6IRA,GA7IQ,EA6IL;AACrBzM,mBAAO,CAACC,GAAR,CAAY,KAAKmL,WAAL,CAAiBqB,GAAjB,CAAZ;AACA,iBAAK9E,OAAL,GAAe,KAAKiF,SAAL,CAAe,KAAKxB,WAAL,CAAiBqB,GAAjB,CAAf,CAAf;AACA;AAhJ0B;AAAA;AAAA,sCAmJV;AAAA;;AAChB,iBAAKxB,MAAL,GAAc,EAAd;AACA,iBAAKC,iBAAL,GAAyB,EAAzB;AACA,iBAAKrK,QAAL,GAAgB,EAAhB;AACA,iBAAKrE,UAAL,CAAgB0P,SAAhB,GAA4BpQ,SAA5B,CAAsC,UAACsE,IAAD,EAAQ;AAC7C,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACCJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,kBAAGA,IAAI,KAAG,IAAV,EAAe;AACb,uBAAI,CAAC6K,MAAL,GAAc7K,IAAd;;AACA,qBAAK,IAAIlF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,OAAI,CAAC4B,UAAL,CAAgBsD,IAAhB,EAAsB9E,MAA1C,EAAkDJ,CAAC,EAAnD,EAAuD;AACxD,sBAAI2R,aAAa,GAAGzM,IAAI,CAAClF,CAAD,CAAxB;;AACA,yBAAI,CAACsB,UAAL,CAAgBsQ,mBAAhB,CAAoCD,aAApC,EAAmD/Q,SAAnD,CAA6D,UAACsE,IAAD,EAAQ;AACpE,wBAAGA,IAAI,KAAG,IAAV,EAAe;AACd,6BAAI,CAAC8K,iBAAL,CAAuBzP,IAAvB,CAA4B2E,IAA5B;;AACA,6BAAI,CAACM,QAAL,CAAcE,aAAd,CAA4B,OAAI,CAACsK,iBAAjC;;AACE,6BAAI,CAACrK,QAAL,GAAgB,OAAI,CAACH,QAAL,CAAcC,aAAd,EAAhB;AACF;AACD,mBAND;AAOA;;AACFX,uBAAO,CAACC,GAAR,CAAY,OAAI,CAACiL,iBAAjB;AACA,uBAAI,CAACD,MAAL,GAAc,OAAI,CAACC,iBAAnB;AACE;AAGF,aApBD;AAqBA;AA5K0B;AAAA;AAAA,2CA6KL;AAAA;;AACrB,iBAAK1O,UAAL,CAAgBuQ,QAAhB,GAA2BjR,SAA3B,CAAqC,UAACsE,IAAD,EAAQ;AAC5C,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACA,kBAAGA,IAAI,KAAG,IAAV,EAAe;AACd,uBAAI,CAACyL,YAAL,GAAoB9O,MAAM,CAACiQ,OAAP,CAAe5M,IAAf,EAAqB6M,GAArB,CAAyB,UAACrK,CAAD;AAAA,yBAAS;AAAE,0BAAKA,CAAC,CAAC,CAAD,CAAR;AAAY,gCAAWA,CAAC,CAAC,CAAD;AAAxB,mBAAT;AAAA,iBAAzB,CAApB;AACA;AACD,aALD;AAMA;AApL0B;AAAA;AAAA,8CAsLCsK,KAtLD,EAsLM;AAAA;;AAChC,iBAAKlB,UAAL,CAAgB,IAAhB;AACAhM,mBAAO,CAACC,GAAR,CAAYiN,KAAZ;AACA,iBAAK1Q,UAAL,CAAgBsQ,mBAAhB,CAAoCI,KAApC,EAA2CpR,SAA3C,CAAqD,UAACsE,IAAD,EAAQ;AAC5D,kBAAGA,IAAI,KAAG,IAAV,EAAe;AACdJ,uBAAO,CAACC,GAAR,CAAYG,IAAZ;AACA,uBAAI,CAACiL,aAAL,GAAqBjL,IAArB;AACA,uBAAI,CAACkL,YAAL,GAAoBlL,IAAI,CAAC,MAAD,CAAxB;AACA,uBAAI,CAACmL,cAAL,GAAsBnL,IAAI,CAAC,QAAD,CAA1B;AACA,uBAAI,CAACoL,cAAL,GAAsBpL,IAAI,CAAC,QAAD,CAA1B;;AACA,qBAAK,IAAIlF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkF,IAAI,CAAC,SAAD,CAAJ,CAAgB9E,MAApC,EAA4CJ,CAAC,EAA7C,EAAiD;AAChD,sBAAIiS,UAAU,GAAG/M,IAAI,CAAC,SAAD,CAAJ,CAAgBlF,CAAhB,CAAjB;;AACA,yBAAI,CAAC4Q,aAAL,CAAmBrQ,IAAnB,CAAwB;AAAC,0BAAK0R,UAAN;AAAiB,gCAAWA;AAA5B,mBAAxB;AACA;AACD;AACD,aAZD;AAaA;AAtM0B;AAAA;AAAA,8CAwMF;AAAA;;AACxB,iBAAK3Q,UAAL,CAAgB4Q,WAAhB,GAA8BtR,SAA9B,CAAwC,UAACsE,IAAD,EAAQ;AAC/C,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACC,qBAAI,CAACiN,QAAL,GAAgBtQ,MAAM,CAACC,IAAP,CAAYoD,IAAZ,CAAhB;AACA,qBAAI,CAACgL,WAAL,GAAmBhL,IAAnB;AACD,aAJD;AAKA;AA9M0B;AAAA;AAAA,sCAgNV;AAChB,iBAAKkL,YAAL,GAAoB,EAApB;AACA,iBAAKQ,aAAL,GAAqB,EAArB;AACA,iBAAKP,cAAL,GAAsB,EAAtB;AACA,iBAAKC,cAAL,GAAsB,EAAtB;AACA;AArN0B;AAAA;AAAA,4CAuND0B,KAvNC,EAuNI;AAC9BlN,mBAAO,CAACC,GAAR,CAAY,iBAAZ,EAA+BiN,KAA/B;AAEA,iBAAKtB,aAAL,GAAqBsB,KAArB;AACA;AA3N0B;AAAA;AAAA,wCA6NR;AAAA;;AAClBlN,mBAAO,CAACC,GAAR,CAAY,qBAAZ,EAAmC,KAAK2L,aAAxC;AAEA,iBAAKpP,UAAL,CAAgB8Q,kBAAhB,CAAmC,KAAK1B,aAAxC,EAAsD,EAAtD,EAAyD,MAAzD,EAAiE9P,SAAjE,CAA2E,UAACsE,IAAD,EAAQ;AAChF,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACE,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,YAAU,OAAI,CAAC8I,YAAf,GAA4B,mBAAhD,EAAqE,SAArE;;AACA,uBAAI,CAACK,aAAL,GAAqB,EAArB;;AACJ,uBAAI,CAAC4B,WAAL;;AACA,uBAAI,CAAC3B,aAAL,GAAqB,EAArB;AACG,eALD,MAKK;AACH,uBAAI,CAAClP,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,4BAAxC;;AACJ,uBAAI,CAACmN,WAAL;;AACA,uBAAI,CAAC3B,aAAL,GAAqB,EAArB;AACG;AACF,aAZJ;AAaA;AA7O0B;AAAA;AAAA,6CA+OH;AAAA;;AAEvB,iBAAKpP,UAAL,CAAgB8Q,kBAAhB,CAAmC,KAAKhC,YAAxC,EAAqD,KAAKK,aAA1D,EAAwE,MAAxE,EAAgF7P,SAAhF,CAA0F,UAACsE,IAAD,EAAQ;AAC/F,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACE,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,YAAU,OAAI,CAAC8I,YAAf,GAA4B,2BAAhD,EAA6E,SAA7E;;AACA,uBAAI,CAACK,aAAL,GAAqB,EAArB;AACD,eAHD,MAGK;AACH,uBAAI,CAACjP,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,yCAAxC;AACD;AACF,aARJ;AASA;AA1P0B;AAAA;AAAA,yCA4PP;AAAA;;AACnB,gBAAG,KAAKmL,cAAL,KAAwB,IAAxB,IAAgC,KAAKA,cAAL,IAAuB,EAA1D,EAA6D;AACzD,mBAAK/O,UAAL,CAAgBkI,SAAhB,CAA0B,KAAK6G,cAA/B,EAA8C,KAAKD,YAAnD,EAAgE,MAAhE,EAAwExP,SAAxE,CAAkF,UAACsE,IAAD,EAAQ;AAC3F,uBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACG,oBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,yBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,YAAU,OAAI,CAAC8I,YAAf,GAA4B,0BAA5B,GAAuD,OAAI,CAACC,cAAhF,EAAgG,SAAhG;AACD,iBAFD,MAEK;AACH,yBAAI,CAAC7O,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,qCAAxC;AACD;AACF,eAPD;AAQA;AACJ;AAvQ0B;AAAA;AAAA,yCAyQP;AAAA;;AACnB,gBAAG,KAAKoL,cAAL,KAAwB,IAAxB,IAAgC,KAAKA,cAAL,IAAuB,EAA1D,EAA6D;AACzD,mBAAKhP,UAAL,CAAgBgR,cAAhB,CAA+B,KAAKlC,YAApC,EAAiD,KAAKE,cAAtD,EAAsE1P,SAAtE,CAAgF,UAACsE,IAAD,EAAQ;AACzF,uBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACG,oBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,yBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,YAAU,OAAI,CAAC8I,YAAf,GAA4B,0BAA5B,GAAuD,OAAI,CAACE,cAAhF,EAAgG,SAAhG;AACD,iBAFD,MAEK;AACH,yBAAI,CAAC9O,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,qCAAxC;AACD;AACF,eAPD;AAQA;AACJ;AApR0B;AAAA;AAAA,wCAsRR;AAClB,iBAAKqN,YAAL;AACA,iBAAKC,YAAL;AACA,iBAAKxB,SAAL;AACA;AA1R0B;AAAA;AAAA,wCA4RR;AAAA;;AAClBlM,mBAAO,CAACC,GAAR,CAAY,qBAAZ;AACA,gBAAI0N,UAAU,GAAG,EAAjB;;AACA,iBAAK,IAAIzS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK4Q,aAAL,CAAmBxQ,MAAvC,EAA+CJ,CAAC,EAAhD,EAAoD;AACnDyS,wBAAU,CAAClS,IAAX,CAAgB,KAAKqQ,aAAL,CAAmB5Q,CAAnB,EAAsB+J,QAAtC;AACA,aALiB,CAOlB;;;AACAjF,mBAAO,CAACC,GAAR,CAAY,eAAZ,EAA4B,KAAKoL,aAAjC;;AAEA,gBAAG,KAAKA,aAAL,KAAqB,IAArB,IAA6B,KAAKA,aAAL,IAAoB,EAAjD,IAAuD,KAAKA,aAA/D,EAA6E;AAC5E,kBAAG,KAAKM,aAAL,CAAmBrQ,MAAnB,GAA4B,CAA/B,EAAiC;AAChC,qBAAKsS,gBAAL;AACA;AACD,aAdiB,CAgBlB;;;AACA,gBAAGD,UAAU,CAACrS,MAAX,GAAoB,CAAvB,EAAyB;AACxB,mBAAKkB,UAAL,CAAgB8Q,kBAAhB,CAAmC,KAAKhC,YAAxC,EAAqDqC,UAArD,EAAgE,OAAhE,EAAyE7R,SAAzE,CAAmF,UAACsE,IAAD,EAAQ;AACxF,uBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACE,oBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,yBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,YAAU,OAAI,CAAC8I,YAAf,GAA4B,mBAAhD,EAAqE,SAArE;AACD,iBAFD,MAEK;AACH,yBAAI,CAAC5O,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,4BAAxC;AACD;;AACD,uBAAI,CAACmN,WAAL;AACH,eARF;AASA,aAVD,MAUK;AACJ,mBAAKA,WAAL;AACA;;AACC,iBAAKvB,UAAL,CAAgB,KAAhB;AACA,iBAAKX,aAAL,GAAqB,EAArB;AACF;AA5T0B;;AAAA;AAAA,S;;;;gBAXnB;;gBAD2D;;gBAG3D;;;;;;gBAqCP,uD;AAAS,iBAAC,gFAAD,EAA8B;AAAE,sBAAQ;AAAV,WAA9B;;;gBACT,uD;AAAS,iBAAC,sEAAD,EAAoB;AAAE,sBAAQ;AAAV,WAApB;;;gBAOP,0D;AAAY,iBAAC,OAAD;;;AApCHN,qBAAe,6DAN3B,gEAAU;AACVxD,gBAAQ,EAAE,YADA;AAEVC,gBAAQ,EAAR,yEAFU;;AAAA,OAAV,CAM2B,GAAfuD,eAAe,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCPA8C,UAAU;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,oCAEX3N,KAFW,EAEG4N,YAFH,EAEuB;AAE1C,gBAAI,CAAC5N,KAAL,EAAY;AACV,qBAAO,EAAP;AACD;;AACD,gBAAI,CAAC4N,YAAL,EAAmB;AACjB,qBAAO5N,KAAP;AACD;;AACD4N,wBAAY,GAAGA,YAAY,CAACC,iBAAb,EAAf;AAEA,mBAAO7N,KAAK,CAAC8N,MAAN,CAAa,UAAAC,EAAE,EAAI;AACxB,qBAAOA,EAAE,CAACF,iBAAH,GAAuBG,QAAvB,CAAgCJ,YAAhC,CAAP;AACD,aAFM,CAAP;AAGD;AAfoB;;AAAA;AAAA,S;;AAAVD,gBAAU,6DAHtB,2DAAK;AACJ7K,YAAI,EAAE;AADF,OAAL,CAGsB,GAAV6K,UAAU,CAAV;;;;;;;;;;;;;;;;ACLb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eCAf;;;UASaM,eAAe;AAI5B,iCAAoBpT,aAApB,EAAkD;AAAA;;AAAA;;AAA9B,eAAAA,aAAA,GAAAA,aAAA;AAClB,eAAKA,aAAL,CAAmBH,SAAnB,CAA6BkB,SAA7B,CAAuC,UAACsS,CAAD,EAAO;AAC5C,mBAAI,CAACC,OAAL,GAAeD,CAAf;AACA,mBAAI,CAAClS,KAAL,GAAa,OAAI,CAACnB,aAAL,CAAmBJ,OAAhC;AACD,WAHD;AAID;;AAT2B;AAAA;AAAA,qCAUjB,CACV;AAX2B;;AAAA;AAAA,S;;;;gBAPnB;;;;AAOIwT,qBAAe,6DAL3B,gEAAU;AACX5G,gBAAQ,EAAE,aADC;AAEXC,gBAAQ,EAAR,yEAFW;;AAAA,OAAV,CAK2B,GAAf2G,eAAe,CAAf;;;;;;;;;;;;;;;;ACTb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCYFG,cAAc;AAmBzB,gCAAoB9R,UAApB,EAAoDC,KAApD,EAAsFC,MAAtF,EAA6G;AAAA;;AAAzF,eAAAF,UAAA,GAAAA,UAAA;AAAgC,eAAAC,KAAA,GAAAA,KAAA;AAAkC,eAAAC,MAAA,GAAAA,MAAA;AAhBtF,eAAAyO,KAAA,GAAQ,EAAR;AACA,eAAAoD,QAAA,GAAW,EAAX;AAGA,eAAAzR,UAAA,GAAaC,MAAM,CAACC,IAApB;AACA,eAAA0K,YAAA,GAAe3K,MAAM,CAACiF,MAAtB;AACA,eAAAgJ,GAAA,GAAMvI,IAAN;AAEA,eAAAgJ,kBAAA,GAAqB,CAAC,SAAD,EAAW,UAAX,CAArB;AAMA,eAAAvM,UAAA,GAAqB,EAArB;AAEgH;;AAnBvF;AAAA;AAAA,oCAqBQ;AAC/B,gBAAGnD,KAAK,IAAIA,KAAK,CAAC,QAAD,CAAL,KAAoBoD,SAA7B,IAA0CpD,KAAK,CAACqD,MAAN,CAAa,IAAb,MAAuBD,SAAjE,IAA8EpD,KAAK,CAACqD,MAAN,CAAa,IAAb,KAAsB,QAAvG,EAAgH;AAC7G,mBAAKC,WAAL;AACF;AACF;AAzBwB;AAAA;AAAA,qCA2Bd;AACV,iBAAK8M,cAAL;AACA,iBAAKC,iBAAL;AACC,iBAAKoC,SAAL;AACA,iBAAKC,cAAL;AACD;AAhCwB;AAAA;AAAA,wCAkCX;AACZzO,mBAAO,CAACC,GAAR,CAAY,KAAKf,UAAjB;AACA,gBAAMuB,IAAI,GAAG,KAAKC,QAAL,CAAcC,aAAd,EAAb;;AAEA,gBAAI,CAAC,KAAKzB,UAAV,EAAsB;AACpB,mBAAKwB,QAAL,CAAcE,aAAd,CAA4B,KAAKC,QAAjC;AACA,mBAAKsK,KAAL,GAAa,KAAKzK,QAAL,CAAcC,aAAd,EAAb;AACD;;AAED,gBAAI,KAAKzB,UAAT,EAAqB;AACnB,mBAAKiM,KAAL,GAAa,KAAKzK,QAAL,CAAcI,iBAAd,CAAgC,KAAK5B,UAArC,CAAb;AACA,mBAAKwB,QAAL,CAAcE,aAAd,CAA4BH,IAA5B;AACD;AACF;AA/CwB;AAAA;AAAA,4CAiDP;AAChB,iBAAKM,kBAAL,CAAwBC,0BAAxB,CAAmD,EAAnD;AAEA,iBAAKD,kBAAL,CAAwBE,uBAAxB;AACA,iBAAKF,kBAAL,CAAwBG,sBAAxB;AACA,iBAAKzE,KAAL,CAAW0E,aAAX;AACD;AAvDwB;AAAA;AAAA,2CAqEA7F,MArEA,EAqEQ;AAC/B,gBAAIoT,OAAO,GAAG,gEAAd;AACA,gBAAIC,MAAM,GAAG,EAAb;;AACA,iBAAK,IAAIzT,CAAC,GAAG,CAAR,EAAW0T,CAAC,GAAGF,OAAO,CAACpT,MAA5B,EAAoCJ,CAAC,GAAGI,MAAxC,EAAgD,EAAEJ,CAAlD,EAAqD;AACjDyT,oBAAM,IAAID,OAAO,CAACG,MAAR,CAAehS,IAAI,CAACiS,KAAL,CAAWjS,IAAI,CAACkS,MAAL,KAAgBH,CAA3B,CAAf,CAAV;AACH;;AAED,mBAAOD,MAAP;AACD;AA7EwB;AAAA;AAAA,2CA+FH;AACpB,iBAAKK,UAAL,GAAkB,IAAI,wDAAJ,CAAc;AAC9BC,6BAAe,EAAE,IAAI,0DAAJ,CAAgB;AAAC9L,qBAAK,EAAE,EAAR;AAAY+L,wBAAQ,EAAE;AAAtB,eAAhB,EAA6C,0DAAWC,QAAxD,CADa;AAE9BC,6BAAe,EAAE,IAAI,0DAAJ,CAAgB,EAAhB,CAFa;AAG9BC,0BAAY,EAAE,IAAI,0DAAJ,CAAgB,EAAhB,EAAoB,0DAAWF,QAA/B,CAHgB;AAI9BG,0BAAY,EAAE,IAAI,0DAAJ,CAAgB,EAAhB,EAAoB,0DAAWH,QAA/B;AAJgB,aAAd,CAAlB;AAMD;AAtGwB;AAAA;AAAA,sCAwGR;AAChB,iBAAKI,cAAL,GAAsB,IAAI,wDAAJ,CAAc;AACjCC,2BAAa,EAAE,IAAI,0DAAJ,CAAgB,KAAKC,gBAAL,CAAsB,EAAtB,CAAhB,EAA2C,0DAAWC,SAAX,CAAqB,CAArB,CAA3C,CADkB;AAEjCC,2BAAa,EAAE,IAAI,0DAAJ,CAAgB,KAAKF,gBAAL,CAAsB,EAAtB,CAAhB,EAA2C,0DAAWC,SAAX,CAAqB,EAArB,CAA3C,CAFkB;AAGjCE,2BAAa,EAAE,IAAI,0DAAJ,CAAgB,EAAhB,EAAmB,0DAAWF,SAAX,CAAqB,CAArB,CAAnB;AAHkB,aAAd,CAAtB;AAKA;AA9GwB;AAAA;AAAA,2CAgHH;AAAA;;AACrB,iBAAKlT,UAAL,CAAgBuQ,QAAhB,GAA2BjR,SAA3B,CAAqC,UAACsE,IAAD,EAAQ;AAC1C,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;AACA,qBAAI,CAACmO,QAAL,GAAgBnO,IAAhB;AACA,kBAAMyP,YAAY,GAAG9S,MAAM,CAACiQ,OAAP,CAAe5M,IAAf,EAAqB6M,GAArB,CAAyB,UAACrK,CAAD;AAAA,2CAAYA,CAAC,CAAC,CAAD,CAAb,EAAmBA,CAAC,CAAC,CAAD,CAApB;AAAA,eAAzB,CAArB;AACA,qBAAI,CAACuI,KAAL,GAAa0E,YAAb;;AACA,qBAAI,CAACnP,QAAL,CAAcE,aAAd,CAA4BiP,YAA5B;;AACA7P,qBAAO,CAACC,GAAR,CAAY4P,YAAZ;AACA,qBAAI,CAAChP,QAAL,GAAgB,OAAI,CAACH,QAAL,CAAcC,aAAd,EAAhB;AACD,aATF;AAUA;AA3HwB;AAAA;AAAA,8CA8HA;AAAA;;AACxB,iBAAKnE,UAAL,CAAgB4Q,WAAhB,GAA8BtR,SAA9B,CAAwC,UAACsE,IAAD,EAAQ;AAC7C,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACA,qBAAI,CAACiN,QAAL,GAAgBtQ,MAAM,CAACC,IAAP,CAAYoD,IAAZ,CAAhB;AACD,aAHF;AAIA;AAnIwB;AAAA;AAAA,uCAqIP;AAAA;;AACjB,gBAAI0P,UAAU,GAAG,KAAKN,aAAL,CAAmBrM,KAApC;AACA,gBAAI4M,UAAU,GAAG,KAAKJ,aAAL,CAAmBxM,KAApC;AACA,gBAAI6M,UAAU,GAAG,KAAKJ,aAAL,CAAmBzM,KAApC;AAEAnD,mBAAO,CAACC,GAAR,CAAY+P,UAAZ;;AAEA,gBAAGA,UAAU,IAAE,EAAf,EAAkB;AACjB,mBAAKxT,UAAL,CAAgByT,eAAhB,CAAgCH,UAAhC,EAA2CC,UAA3C,EAAsDC,UAAtD,EAAkElU,SAAlE,CAA4E,UAACsE,IAAD,EAAQ;AAChF,uBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACDJ,uBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,uBAAI,CAAC+L,cAAL;;AACC,oBAAG/L,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,yBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,WAASsN,UAAT,GAAoB,eAApB,GAAoCE,UAApC,GAA+C,mBAAnE,EAAwF,SAAxF;AACD,iBAFD,MAEK;AACH,yBAAI,CAACtT,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,2BAAxC;AACD;AACH,eATF;AAUA,aAXD,MAWK;AACJ,mBAAK5D,UAAL,CAAgB0T,OAAhB,CAAwBJ,UAAxB,EAAmCC,UAAnC,EAA+CjU,SAA/C,CAAyD,UAACsE,IAAD,EAAQ;AAC7D,uBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACDJ,uBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,uBAAI,CAAC+L,cAAL;;AACC,oBAAG/L,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,yBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,WAASsN,UAAT,GAAoB,mBAAxC,EAA6D,SAA7D;AACD,iBAFD,MAEK;AACH,yBAAI,CAACpT,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,2BAAxC;AACD;AACH,eATF;AAUA;AACD;AAnKwB;AAAA;AAAA,wCAqKH+P,SArKG,EAqKOC,MArKP,EAqKa;AAAA;;AACrC,gBAAGA,MAAM,IAAI,SAAb,EAAuB;AACtBA,oBAAM,GAAG,UAAT;AACA,aAFD,MAEK;AACJA,oBAAM,GAAG,SAAT;AACA;;AACD,iBAAK5T,UAAL,CAAgB6T,aAAhB,CAA8BF,SAA9B,EAAwCC,MAAxC,EAAgDtU,SAAhD,CAA0D,UAACsE,IAAD,EAAQ;AAC/D,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACf,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,WAAS2N,SAAT,GAAmB,yBAAnB,GAA6CC,MAAjE,EAAyE,SAAzE;AACH,eAFD,MAEK;AACH,uBAAI,CAAC1T,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,qCAAxC;AACD;;AACD,qBAAI,CAAC+L,cAAL;AACD,aATF;AAUA;AArLwB;AAAA;AAAA,4CAuLCgE,SAvLD,EAuLU;AAClC,iBAAKG,YAAL,GAAoBH,SAApB;AACA;AAzLwB;AAAA;AAAA,4CA2LCA,SA3LD,EA2LU;AACjC,iBAAKI,YAAL,GAAoBJ,SAApB;AACA,iBAAKnB,UAAL,CAAgBwB,UAAhB,CAA2B;AAAC,iCAAmBL;AAApB,aAA3B;;AACA,gBAAG,KAAK5B,QAAL,CAAc4B,SAAd,EAAyB,YAAzB,CAAH,EAA0C;AACxC,mBAAKnB,UAAL,CAAgBwB,UAAhB,CAA2B;AAAC,gCAAgB,KAAKjC,QAAL,CAAc4B,SAAd,EAAyB,YAAzB;AAAjB,eAA3B;AACD;;AACD,gBAAG,KAAK5B,QAAL,CAAc4B,SAAd,EAAyB,QAAzB,CAAH,EAAsC;AACpC,mBAAKnB,UAAL,CAAgBwB,UAAhB,CAA2B;AAAC,gCAAgB,KAAKjC,QAAL,CAAc4B,SAAd,EAAyB,QAAzB;AAAjB,eAA3B;AACD;;AACDnQ,mBAAO,CAACC,GAAR,CAAY,KAAKsO,QAAL,CAAc4B,SAAd,CAAZ;AACD;AArMwB;AAAA;AAAA,iDAuMG;AAC1B,iBAAKnB,UAAL,CAAgBwB,UAAhB,CAA2B;AAAC,iCAAmB,KAAKf,gBAAL,CAAsB,EAAtB;AAApB,aAA3B;AACD;AAzMwB;AAAA;AAAA,2CA2MH;AAAA;;AACpB,gBAAIgB,aAAa,GAAG,KAAKzB,UAAL,CAAgB7L,KAAhB,CAAsBiM,eAA1C;AACA,gBAAIsB,aAAa,GAAG,KAAK1B,UAAL,CAAgB7L,KAAhB,CAAsBkM,YAA1C;AACA,gBAAIsB,aAAa,GAAG,KAAK3B,UAAL,CAAgB7L,KAAhB,CAAsBmM,YAA1C;AAEA,iBAAK9S,UAAL,CAAgBwS,UAAhB,CAA2B,KAAKuB,YAAhC,EAA6CE,aAA7C,EAA2DC,aAA3D,EAAyEC,aAAzE,EAAwF7U,SAAxF,CAAkG,UAACsE,IAAD,EAAQ;AACtG,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,qBAAI,CAAC+L,cAAL;;AACA,kBAAG/L,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,WAAS,OAAI,CAAC+N,YAAd,GAA2B,mBAA/C,EAAoE,SAApE;AACD,eAFD,MAEK;AACH,uBAAI,CAAC7T,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,2BAAxC;AACD;AACJ,aATD;AAUD;AA1NwB;AAAA;AAAA,uCA6NP;AAAA;;AACjB,iBAAK5D,UAAL,CAAgBoU,UAAhB,CAA2B,KAAKN,YAAhC,EAA8CxU,SAA9C,CAAwD,UAACsE,IAAD,EAAQ;AAC7D,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACf,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,WAAS,OAAI,CAAC8N,YAAd,GAA2B,mBAA/C,EAAoE,SAApE;AACD;;AACH,qBAAI,CAAC7B,cAAL;;AACA,qBAAI,CAACtC,cAAL;AACD,aARF;AASA;AAvOwB;AAAA;AAAA,8BAyDL;AACrB,mBAAO,KAAKoD,cAAL,CAAoBsB,GAApB,CAAwB,eAAxB,CAAP;AACE;AA3DwB;AAAA;AAAA,8BA6DL;AACrB,mBAAO,KAAKtB,cAAL,CAAoBsB,GAApB,CAAwB,eAAxB,CAAP;AACE;AA/DwB;AAAA;AAAA,8BAiEL;AACrB,mBAAO,KAAKtB,cAAL,CAAoBsB,GAApB,CAAwB,eAAxB,CAAP;AACE;AAnEwB;AAAA;AAAA,8BA+EH;AACpB,mBAAO,KAAK7B,UAAL,CAAgB6B,GAAhB,CAAoB,iBAApB,CAAP;AACD;AAjFwB;AAAA;AAAA,8BAmFH;AACpB,mBAAO,KAAK7B,UAAL,CAAgB6B,GAAhB,CAAoB,iBAApB,CAAP;AACD;AArFwB;AAAA;AAAA,8BAuFN;AACjB,mBAAO,KAAK7B,UAAL,CAAgB6B,GAAhB,CAAoB,cAApB,CAAP;AACD;AAzFwB;AAAA;AAAA,8BA2FN;AACjB,mBAAO,KAAK7B,UAAL,CAAgB6B,GAAhB,CAAoB,cAApB,CAAP;AACD;AA7FwB;;AAAA;AAAA,S;;;;gBAXlB;;gBAD2D;;gBAI3D;;;;;;gBAqBN,uD;AAAS,iBAAC,gFAAD,EAA8B;AAAE,sBAAQ;AAAV,WAA9B;;;gBACT,uD;AAAS,iBAAC,sEAAD,EAAoB;AAAE,sBAAQ;AAAV,WAApB;;;gBAOT,0D;AAAY,iBAAC,OAAD;;;AArBFvC,oBAAc,6DAL1B,gEAAU;AACT/G,gBAAQ,EAAE,WADD;AAETC,gBAAQ,EAAR,wEAFS;;AAAA,OAAV,CAK0B,GAAd8G,cAAc,CAAd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCDAwC,iBAAiB;AAgE5B,mCAAoBtU,UAApB,EAAoDC,KAApD,EAAsFC,MAAtF,EAAqHC,SAArH,EAA8I;AAAA;;AAA1H,eAAAH,UAAA,GAAAA,UAAA;AAAgC,eAAAC,KAAA,GAAAA,KAAA;AAAkC,eAAAC,MAAA,GAAAA,MAAA;AAA+B,eAAAC,SAAA,GAAAA,SAAA;AA/DrH,eAAAG,UAAA,GAAaC,MAAM,CAACC,IAApB;AACA,eAAA0K,YAAA,GAAe3K,MAAM,CAACiF,MAAtB;AACA,eAAAqL,QAAA,GAAW,EAAX;AACA,eAAA0D,WAAA,GAAc,EAAd;AAEA,eAAApJ,OAAA,GAAU,EAAV;AAIA,eAAAqD,GAAA,GAAMvI,IAAN;AAQA,eAAAuO,kBAAA,GAAqB,EAArB;AACA,eAAAC,iBAAA,GAAoB,EAApB;AACA,eAAAC,qBAAA,GAAwB,EAAxB;AACA,eAAAC,wBAAA,GAA2B,EAA3B;AAEA,eAAAC,eAAA,GAAkB,EAAlB;AACA,eAAAC,cAAA,GAAiB,EAAjB;AACA,eAAAC,iBAAA,GAAoB,EAApB;AACA,eAAAC,oBAAA,GAAuB,EAAvB;AAEA,eAAAC,sBAAA,GAAyB,EAAzB;AACA,eAAAC,qBAAA,GAAwB,EAAxB;AACA,eAAAC,yBAAA,GAA4B,EAA5B;AACA,eAAAC,4BAAA,GAA+B,EAA/B;AAEA,eAAAC,iBAAA,GAAoB,KAApB;AACA,eAAAC,sBAAA,GAAyB,UAAzB;AAEA,eAAAC,SAAA,GAAY;AACX9O,gBAAI,EAAC,EADM;AAEX+O,kBAAM,EAAC,OAFI;AAGX7N,kBAAM,EAAC;AAHI,WAAZ;AAMA,eAAA8N,YAAA,GAAe;AACdC,mBAAO,EAAC,EADM;AAEdC,qBAAS,EAAE;AAFG,WAAf;AAKA,eAAAC,YAAA,GAAe;AACbC,kBAAM,EAAE,EADK;AAEbC,kBAAM,EAAE,EAFK;AAGbC,oBAAQ,EAAE,EAHG;AAIbC,qBAAS,EAAE,EAJE;AAKbC,qBAAS,EAAE;AALE,WAAf;AAQA,eAAAC,iBAAA,GAAoB,EAApB;AAMA,eAAAvT,UAAA,GAAqB,EAArB;AAGiJ;;AAhErH;AAAA;AAAA,oCAkEK;AAC/B,gBAAGnD,KAAK,IAAIA,KAAK,CAAC,QAAD,CAAL,KAAoBoD,SAA7B,IAA0CpD,KAAK,CAACqD,MAAN,CAAa,IAAb,MAAuBD,SAAjE,IAA8EpD,KAAK,CAACqD,MAAN,CAAa,IAAb,KAAsB,QAAvG,EAAgH;AAC7G,mBAAKC,WAAL;AACF;;AACD,gBAAGtD,KAAK,IAAIA,KAAK,CAAC,QAAD,CAAL,KAAoBoD,SAA7B,IAA0CpD,KAAK,CAACqD,MAAN,CAAa,MAAb,MAAyBD,SAAnE,IAAgFpD,KAAK,CAACqD,MAAN,CAAa,MAAb,KAAwB,eAA3G,EAA2H;AACzH,kBAAG,KAAKsM,aAAR,EAAsB;AACpB,oBAAG,KAAKoG,SAAL,CAAe9O,IAAf,IAAuB,KAAK0P,cAA/B,EAA8C;AAC5C,uBAAK1G,UAAL,CAAgB,IAAhB;AACD,iBAFD,MAEK;AACH,uBAAKC,aAAL;AACD;AACF;AACF;AAEF;AAhF2B;AAAA;AAAA,qCAqFjB;AACV,iBAAKmB,WAAL;AAGA,iBAAK4D,kBAAL,GAA0B,CACvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aADuB,EAEvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAFuB,EAGvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAHuB,EAIvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAJuB,EAKvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aALuB,EAMvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aANuB,EAOvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAPuB,EAQvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aARuB,EASvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aATuB,EAUvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAVuB,EAWvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAXuB,EAYvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAZuB,EAavB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAbuB,EAcvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAduB,EAevB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAfuB,EAgBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAhBuB,EAiBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAjBuB,EAkBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAlBuB,EAmBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAnBuB,EAoBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aApBuB,EAqBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aArBuB,EAsBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAtBuB,EAuBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAvBuB,EAwBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAxBuB,EAyBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAzBuB,EA0BvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA1BuB,EA2BvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA3BuB,EA4BvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA5BuB,EA6BvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA7BuB,EA8BvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA9BuB,EA+BvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA/BuB,EAgCvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAhCuB,EAiCvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAjCuB,EAkCvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAlCuB,EAmCvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAnCuB,EAoCvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aApCuB,EAqCvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aArCuB,EAsCvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAtCuB,EAuCvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAvCuB,EAwCvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAxCuB,EAyCvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAzCuB,EA0CvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA1CuB,EA2CvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA3CuB,EA4CvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA5CuB,EA6CvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA7CuB,EA8CvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA9CuB,EA+CvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA/CuB,EAgDvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAhDuB,EAiDvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAjDuB,EAkDvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAlDuB,CAA1B;AAqDC,iBAAKQ,sBAAL,GAA8B;AAC9B/R,6BAAe,EAAE,KADa;AAE9BC,kBAAI,EAAC,gBAFyB;AAG9BC,2BAAa,EAAC,YAHgB;AAI9BC,6BAAe,EAAC,cAJc;AAK9BC,gCAAkB,EAAE;AALU,aAA9B;AAQA,iBAAKoR,iBAAL,GAAyB,CACvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aADuB,EAEvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAFuB,EAGvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAHuB,EAIvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAJuB,EAKvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aALuB,EAMvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aANuB,EAOvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAPuB,EAQvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aARuB,EASvB;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aATuB,EAUvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAVuB,EAWvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAXuB,EAYvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAZuB,EAavB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAbuB,EAcvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAduB,EAevB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAfuB,EAgBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAhBuB,EAiBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAjBuB,EAkBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAlBuB,EAmBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAnBuB,EAoBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aApBuB,EAqBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aArBuB,EAsBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAtBuB,EAuBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAvBuB,EAwBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAxBuB,EAyBvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAzBuB,EA0BvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA1BuB,EA2BvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA3BuB,EA4BvB;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA5BuB,CAAzB;AA+BA,iBAAKQ,qBAAL,GAA6B;AAC3BhS,6BAAe,EAAE,KADU;AAE3BC,kBAAI,EAAC,oCAFsB;AAG3BC,2BAAa,EAAC,YAHa;AAI3BC,6BAAe,EAAC,cAJW;AAK3BC,gCAAkB,EAAE;AALO,aAA7B;AAQD,iBAAKqR,qBAAL,GAA6B,CAC1B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAD0B,EAE1B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAF0B,EAG1B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAH0B,EAI1B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAJ0B,EAK1B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAL0B,EAM1B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAN0B,EAO1B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAP0B,EAQ1B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAR0B,EAS1B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAT0B,EAU1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAV0B,EAW1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAX0B,EAY1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAZ0B,EAa1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAb0B,EAc1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAd0B,EAe1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAf0B,EAgB1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAhB0B,EAiB1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAjB0B,EAkB1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAlB0B,EAmB1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAnB0B,EAoB1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aApB0B,EAqB1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aArB0B,EAsB1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAtB0B,EAuB1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAvB0B,EAwB1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAxB0B,EAyB1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAzB0B,EA0B1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA1B0B,EA2B1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA3B0B,EA4B1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA5B0B,EA6B1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA7B0B,EA8B1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA9B0B,EA+B1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA/B0B,EAgC1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAhC0B,EAiC1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAjC0B,EAkC1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAlC0B,EAmC1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAnC0B,EAoC1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aApC0B,EAqC1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aArC0B,EAsC1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAtC0B,EAuC1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAvC0B,EAwC1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAxC0B,EAyC1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAzC0B,EA0C1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA1C0B,EA2C1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA3C0B,EA4C1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA5C0B,EA6C1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA7C0B,EA8C1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA9C0B,EA+C1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA/C0B,EAgD1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAhD0B,EAiD1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAjD0B,EAkD1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAlD0B,EAmD1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAnD0B,EAoD1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aApD0B,EAqD1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aArD0B,EAsD1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAtD0B,EAuD1B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAvD0B,CAA7B;AA0DC,iBAAKQ,yBAAL,GAAiC;AACjCjS,6BAAe,EAAE,IADgB;AAEjCC,kBAAI,EAAC,kBAF4B;AAGjCC,2BAAa,EAAC,YAHmB;AAIjCC,6BAAe,EAAC,cAJiB;AAKjCC,gCAAkB,EAAE;AALa,aAAjC;AAQD,iBAAKsR,wBAAL,GAAgC,CAC7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAD6B,EAE7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAF6B,EAG7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAH6B,EAI7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAJ6B,EAK7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAL6B,EAM7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAN6B,EAO7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAP6B,EAQ7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAR6B,EAS7B;AAAC,oBAAK,CAAN;AAAQ,0BAAW;AAAnB,aAT6B,EAU7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAV6B,EAW7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAX6B,EAY7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAZ6B,EAa7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAb6B,EAc7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAd6B,EAe7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAf6B,EAgB7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAhB6B,EAiB7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAjB6B,EAkB7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAlB6B,EAmB7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAnB6B,EAoB7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aApB6B,EAqB7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aArB6B,EAsB7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAtB6B,EAuB7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAvB6B,EAwB7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAxB6B,EAyB7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAzB6B,EA0B7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA1B6B,EA2B7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA3B6B,EA4B7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA5B6B,EA6B7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA7B6B,EA8B7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA9B6B,EA+B7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA/B6B,EAgC7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAhC6B,EAiC7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAjC6B,EAkC7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAlC6B,EAmC7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAnC6B,EAoC7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aApC6B,EAqC7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aArC6B,EAsC7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAtC6B,EAuC7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAvC6B,EAwC7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAxC6B,EAyC7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAzC6B,EA0C7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA1C6B,EA2C7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA3C6B,EA4C7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA5C6B,EA6C7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA7C6B,EA8C7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA9C6B,EA+C7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA/C6B,EAgD7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAhD6B,EAiD7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAjD6B,EAkD7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAlD6B,EAmD7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAnD6B,EAoD7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aApD6B,EAqD7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aArD6B,EAsD7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAtD6B,EAuD7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAvD6B,EAwD7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAxD6B,EAyD7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aAzD6B,EA0D7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA1D6B,EA2D7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA3D6B,EA4D7B;AAAC,oBAAK,EAAN;AAAS,0BAAW;AAApB,aA5D6B,CAAhC;AA+DC,iBAAKQ,4BAAL,GAAoC;AACpClS,6BAAe,EAAE,IADmB;AAEpCC,kBAAI,EAAC,sBAF+B;AAGpCC,2BAAa,EAAC,YAHsB;AAIpCC,6BAAe,EAAC,cAJoB;AAKpCC,gCAAkB,EAAE;AALgB,aAApC;AAOD;AArU2B;AAAA;AAAA,2CAuUd;AACZ,gBAAG,KAAK+R,iBAAR,EAA0B;AACxB,mBAAKA,iBAAL,GAAyB,KAAzB;AACA,mBAAKC,sBAAL,GAA8B,UAA9B;AACD,aAHD,MAGK;AACH,mBAAKD,iBAAL,GAAyB,IAAzB;AACA,mBAAKC,sBAAL,GAA8B,OAA9B;AACD;AACF;AA/U2B;AAAA;AAAA,6CAiVV9R,IAjVU,EAiVF;AACvBC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAKmR,eAAjB;AACH;AApV4B;AAAA;AAAA,+CAqVRrR,IArVQ,EAqVA;AACzBC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAKmR,eAAjB;AACH;AAxV4B;AAAA;AAAA,4CAyVXlR,KAzVW,EAyVD;AACxBF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH;AA3V4B;AAAA;AAAA,8CA4VTA,KA5VS,EA4VC;AAC1BF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH;AA9V4B;AAAA;AAAA,4CAgWXH,IAhWW,EAgWH;AACtBC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAKoR,cAAjB;AACH;AAnW4B;AAAA;AAAA,8CAoWTtR,IApWS,EAoWD;AACxBC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAKoR,cAAjB;AACH;AAvW4B;AAAA;AAAA,2CAwWZnR,KAxWY,EAwWF;AACvBF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH;AA1W4B;AAAA;AAAA,6CA2WVA,KA3WU,EA2WA;AACzBF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH,WA7W4B,CAgX5B;;AAhX4B;AAAA;AAAA,gDAiXNH,IAjXM,EAiXE;AAC3BC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAKqR,iBAAjB;AACH;AApX4B;AAAA;AAAA,kDAqXLvR,IArXK,EAqXG;AAC5BC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAKqR,iBAAjB;AACH;AAxX4B;AAAA;AAAA,+CAyXRpR,KAzXQ,EAyXE;AAC3BF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH;AA3X4B;AAAA;AAAA,iDA4XNA,KA5XM,EA4XI;AAC7BF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH,WA9X4B,CAgY5B;;AAhY4B;AAAA;AAAA,mDAiYHH,IAjYG,EAiYK;AAC7BC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAKsR,oBAAjB;AACH;AApY2B;AAAA;AAAA,qDAqYDxR,IArYC,EAqYO;AAC/BC,mBAAO,CAACC,GAAR,CAAYF,IAAZ;AACAC,mBAAO,CAACC,GAAR,CAAY,KAAKsR,oBAAjB;AACH;AAxY2B;AAAA;AAAA,kDAyYJrR,KAzYI,EAyYM;AAC9BF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH;AA3Y2B;AAAA;AAAA,oDA4YFA,KA5YE,EA4YQ;AAChCF,mBAAO,CAACC,GAAR,CAAYC,KAAZ;AACH;AA9Y2B;AAAA;AAAA,wCAiZd;AACZF,mBAAO,CAACC,GAAR,CAAY,KAAKf,UAAjB;AACA,gBAAMuB,IAAI,GAAG,KAAKC,QAAL,CAAcC,aAAd,EAAb;;AAEA,gBAAI,CAAC,KAAKzB,UAAV,EAAsB;AACpB,mBAAKwB,QAAL,CAAcE,aAAd,CAA4B,KAAKC,QAAjC;AACA,mBAAKwM,QAAL,GAAgB,KAAK3M,QAAL,CAAcC,aAAd,EAAhB;AACD;;AAED,gBAAI,KAAKzB,UAAT,EAAqB;AACnB,mBAAKmO,QAAL,GAAgB,KAAK3M,QAAL,CAAcI,iBAAd,CAAgC,KAAK5B,UAArC,CAAhB;AACA,mBAAKwB,QAAL,CAAcE,aAAd,CAA4BH,IAA5B;AACD;AACF;AA9Z2B;AAAA;AAAA,4CAgaV;AAChB,iBAAKM,kBAAL,CAAwBC,0BAAxB,CAAmD,EAAnD;AAEA,iBAAKD,kBAAL,CAAwBE,uBAAxB;AACA,iBAAKF,kBAAL,CAAwBG,sBAAxB;AACA,iBAAKzE,KAAL,CAAW0E,aAAX;AACD;AAta2B;AAAA;AAAA,0CAwaJwR,UAxaI,EAwaM;AACjC3S,mBAAO,CAACC,GAAR,CAAY0S,UAAZ;AACA,iBAAKvB,eAAL,GAAuB,EAAvB;AACA,iBAAKC,cAAL,GAAsB,EAAtB;;AACA,gBAAG,CAACsB,UAAJ,EAAe;AACd,mBAAKb,SAAL,CAAeC,MAAf,GAAwB,OAAxB;AACA,mBAAKD,SAAL,CAAe5N,MAAf,GAAwB,EAAxB;AACA,aAHD,MAGK;AACJ,mBAAK4N,SAAL,CAAe9O,IAAf,GAAsB,EAAtB,EACA,KAAK8O,SAAL,CAAeC,MAAf,GAAwB,OADxB;AAEA,mBAAKD,SAAL,CAAe5N,MAAf,GAAwB,EAAxB;AACA;;AAEA,iBAAKiO,YAAL,GAAoB;AAClBC,oBAAM,EAAE,EADU;AAElBC,oBAAM,EAAE,EAFU;AAGlBC,sBAAQ,EAAE,EAHQ;AAIlBC,uBAAS,EAAE,EAJO;AAKlBC,uBAAS,EAAE;AALO,aAApB;AAQD;AA7b2B;AAAA;AAAA,wCA+bT;AAAA;;AAClB,iBAAKhW,UAAL,CAAgB4Q,WAAhB,GAA8BtR,SAA9B,CAAwC,UAACsE,IAAD,EAAQ;AAC7C,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;AACA,qBAAI,CAAC2Q,WAAL,GAAmB3Q,IAAnB;AACA,kBAAMwS,eAAe,GAAG7V,MAAM,CAACiQ,OAAP,CAAe5M,IAAf,EAAqB6M,GAArB,CAAyB,UAACrK,CAAD;AAAA,2CAAYA,CAAC,CAAC,CAAD,CAAb,EAAmBA,CAAC,CAAC,CAAD,CAApB;AAAA,eAAzB,CAAxB;AACA,qBAAI,CAACyK,QAAL,GAAgBuF,eAAhB;;AACA,qBAAI,CAAClS,QAAL,CAAcE,aAAd,CAA4BgS,eAA5B;;AACA5S,qBAAO,CAACC,GAAR,CAAY2S,eAAZ;AACA,qBAAI,CAAC/R,QAAL,GAAgB,OAAI,CAACH,QAAL,CAAcC,aAAd,EAAhB;AACD,aATF;AAUA;AA1c2B;AAAA;AAAA,yCA4cR;AAAA;;AACnB,iBAAKnE,UAAL,CAAgBqW,YAAhB,CAA6B,KAAKC,cAAlC,EAAkDhX,SAAlD,CAA4D,UAACsE,IAAD,EAAQ;AACjE,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,qBAAI,CAACgN,WAAL;;AACA,kBAAGhN,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,YAAU,OAAI,CAACsQ,cAAf,GAA8B,mBAAlD,EAAuE,SAAvE;AACD,eAFD,MAEK;AACH,uBAAI,CAACpW,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,6BAAxC;AACD;AACF,aATF;AAUA;AAvd2B;AAAA;AAAA,yCAydL2S,OAzdK,EAydI;AAC9B,gBAAIC,OAAO,GAAGvQ,IAAI,CAACC,SAAL,CAAeqQ,OAAf,CAAd;AACA/S,mBAAO,CAACC,GAAR,CAAY,oBAAZ,EAAiC+S,OAAjC;AACA,gBAAI3M,GAAG,GAAG,KAAK1J,SAAL,CAAe2J,sBAAf,CAAsC,kCAAkCC,kBAAkB,CAACyM,OAAD,CAA1F,CAAV;AACA,iBAAKxM,gBAAL,GAAwBH,GAAxB;AACD;AA9d2B;AAAA;AAAA,qCAgeToD,GAheS,EAgeN;AACrB,iBAAK9B,OAAL,GAAe8B,GAAf;AACA;AAle2B;AAAA;AAAA,8CAoeA9D,MApeA,EAoeM;AACjC,iBAAKmN,cAAL,GAAsBnN,MAAtB;AACA;AAte2B;AAAA;AAAA,gDAweD;AAC1B,iBAAKqM,YAAL,GAAoB;AACnBC,qBAAO,EAAC,YADW;AAEnBC,uBAAS,EAAE;AAFQ,aAApB;AAIA;AA7e2B;AAAA;AAAA,0CA+eJe,OA/eI,EA+eIC,OA/eJ,EA+eYC,aA/eZ,EA+eyB;AACnDnT,mBAAO,CAACC,GAAR,CAAY,KAAKkS,YAAjB;AACAnS,mBAAO,CAACC,GAAR,CAAYgT,OAAZ,EAAoBC,OAApB,EAA4BC,aAA5B;AACA,iBAAKhB,YAAL,CAAkBI,SAAlB,CAA4BY,aAA5B,EAA2CD,OAA3C,EAAoD9X,MAApD,CAA2D6X,OAA3D,EAAmE,CAAnE;AACD;AAnf2B;AAAA;AAAA,yCAqfR;AAClBjT,mBAAO,CAACC,GAAR,CAAY,KAAKqR,iBAAL,CAAuB,CAAvB,EAA0BrM,QAAtC;AACAjF,mBAAO,CAACC,GAAR,CAAY,KAAKsR,oBAAL,CAA0B,CAA1B,EAA6BtM,QAAzC;AACAjF,mBAAO,CAACC,GAAR,CAAY,KAAKwS,iBAAjB;;AACA,gBAAG,CAAC,KAAKN,YAAL,CAAkBI,SAAtB,EAAgC;AAC9B,mBAAKJ,YAAL,CAAkBI,SAAlB,GAA8B,EAA9B;AACD;;AACD,gBAAG,KAAKJ,YAAL,CAAkBI,SAAlB,CAA4B,KAAKjB,iBAAL,CAAuB,CAAvB,EAA0BrM,QAAtD,CAAH,EAAmE;AACjE,kBAAG,KAAKkN,YAAL,CAAkBI,SAAlB,CAA4B,KAAKjB,iBAAL,CAAuB,CAAvB,EAA0BrM,QAAtD,EAAgE,KAAKsM,oBAAL,CAA0B,CAA1B,EAA6BtM,QAA7F,CAAH,EAA0G;AACxG,qBAAKkN,YAAL,CAAkBI,SAAlB,CAA4B,KAAKjB,iBAAL,CAAuB,CAAvB,EAA0BrM,QAAtD,EAAgE,KAAKsM,oBAAL,CAA0B,CAA1B,EAA6BtM,QAA7F,EAAuGxJ,IAAvG,CAA4G,KAAKgX,iBAAjH;AACD,eAFD,MAEK;AACH,qBAAKN,YAAL,CAAkBI,SAAlB,CAA4B,KAAKjB,iBAAL,CAAuB,CAAvB,EAA0BrM,QAAtD,EAAgE,KAAKsM,oBAAL,CAA0B,CAA1B,EAA6BtM,QAA7F,IAAyG,EAAzG;AACA,qBAAKkN,YAAL,CAAkBI,SAAlB,CAA4B,KAAKjB,iBAAL,CAAuB,CAAvB,EAA0BrM,QAAtD,EAAgE,KAAKsM,oBAAL,CAA0B,CAA1B,EAA6BtM,QAA7F,EAAuGxJ,IAAvG,CAA4G,KAAKgX,iBAAjH;AACD;AACF,aAPD,MAOK;AACH,mBAAKN,YAAL,CAAkBI,SAAlB,CAA4B,KAAKjB,iBAAL,CAAuB,CAAvB,EAA0BrM,QAAtD,IAAkE,EAAlE;AACA,mBAAKkN,YAAL,CAAkBI,SAAlB,CAA4B,KAAKjB,iBAAL,CAAuB,CAAvB,EAA0BrM,QAAtD,EAAgE,KAAKsM,oBAAL,CAA0B,CAA1B,EAA6BtM,QAA7F,IAAyG,EAAzG;AACA,mBAAKkN,YAAL,CAAkBI,SAAlB,CAA4B,KAAKjB,iBAAL,CAAuB,CAAvB,EAA0BrM,QAAtD,EAAgE,KAAKsM,oBAAL,CAA0B,CAA1B,EAA6BtM,QAA7F,EAAuGxJ,IAAvG,CAA4G,KAAKgX,iBAAjH;AACD;;AAED,iBAAKnB,iBAAL,GAAyB,EAAzB;AACA,iBAAKC,oBAAL,GAA4B,EAA5B;AACA,iBAAKkB,iBAAL,GAAyB,EAAzB;AACAzS,mBAAO,CAACC,GAAR,CAAY,KAAKkS,YAAL,CAAkBI,SAA9B;AACD;AA7gB2B;AAAA;AAAA,yCAghBR;AAClBvS,mBAAO,CAACC,GAAR,CAAY,sBAAZ;;AAEA,gBAAG,KAAKmR,eAAL,CAAqB9V,MAArB,GAA4B,CAA/B,EAAiC;AAChC,kBAAG,KAAK8V,eAAL,CAAqB9V,MAArB,IAA+B,KAAK0V,kBAAL,CAAwB1V,MAA1D,EAAiE;AAChE,qBAAK6W,YAAL,CAAkBC,MAAlB,CAAyB3W,IAAzB,CAA8B,MAA9B;AACA,eAFD,MAEK;AACJ,qBAAK,IAAIP,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKkW,eAAL,CAAqB9V,MAAzC,EAAiDJ,CAAC,EAAlD,EAAsD;AACrD,uBAAKiX,YAAL,CAAkBC,MAAlB,CAAyB3W,IAAzB,CAA8B,KAAK2V,eAAL,CAAqBlW,CAArB,EAAwB+J,QAAtD;AACA;AACD;AACD,aARD,MAQK;AACH,kBAAG,KAAKoM,cAAL,CAAoB/V,MAApB,IAA8B,KAAK2V,iBAAL,CAAuB3V,MAAxD,EAA+D;AAC/D,qBAAK6W,YAAL,CAAkBC,MAAlB,CAAyB3W,IAAzB,CAA8B,SAA9B;AACA,eAFA,MAEI;AACJ,qBAAK,IAAIP,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKmW,cAAL,CAAoB/V,MAAxC,EAAgDJ,CAAC,EAAjD,EAAqD;AACpD,uBAAKiX,YAAL,CAAkBC,MAAlB,CAAyB3W,IAAzB,CAA8B,KAAK4V,cAAL,CAAoBnW,CAApB,EAAuB+J,QAArD;AACA;AACD;AACD;;AACF,iBAAKkN,YAAL,CAAkBE,MAAlB,GAA2B,KAAKP,SAAL,CAAeC,MAA1C;AAEC/R,mBAAO,CAACC,GAAR,CAAY,KAAKkS,YAAjB;;AACA,gBAAG,KAAKA,YAAL,CAAkBI,SAAlB,IAA+BxV,MAAM,CAACiQ,OAAP,CAAe,KAAKmF,YAAL,CAAkBI,SAAjC,EAA4CjX,MAA5C,KAAuD,CAAtF,IAA2F,KAAK6W,YAAL,CAAkBI,SAAlB,CAA4Ba,WAA5B,KAA4CrW,MAA1I,EAAiJ;AAC/IiD,qBAAO,CAACC,GAAR,CAAY,+BAAZ;AACA,qBAAO,KAAKkS,YAAL,CAAkBI,SAAzB;AACD,aAHD,MAGK;AACH,kBAAG,CAAC,KAAKJ,YAAL,CAAkBK,SAAnB,IAAgC,KAAKL,YAAL,CAAkBK,SAAlB,IAA+B,EAAlE,EAAqE;AACnExS,uBAAO,CAACC,GAAR,CAAY,8CAAZ;AACA,qBAAKkS,YAAL,CAAkBK,SAAlB,GAA8B,GAA9B;AACD;AACF;;AAEF,iBAAKR,YAAL,CAAkBE,SAAlB,CAA4BzW,IAA5B,CAAiC,KAAK0W,YAAtC;AACAnS,mBAAO,CAACC,GAAR,CAAY,KAAK+R,YAAjB;AAEA,iBAAKqB,eAAL,CAAqB,KAArB;AACA;AArjB2B;AAAA;AAAA,wCAujBNnY,CAvjBM,EAujBL;AACrB8E,mBAAO,CAACC,GAAR,CAAY,uBAAZ;AAEA,iBAAKkS,YAAL,GAAoB,KAAKH,YAAL,CAAkBE,SAAlB,CAA4BhX,CAA5B,CAApB;AACA,iBAAK4W,SAAL,CAAeC,MAAf,GAAwB,KAAKC,YAAL,CAAkBE,SAAlB,CAA4BhX,CAA5B,EAA+BmX,MAAvD;;AAEA,oBAAS,KAAKF,YAAL,CAAkBC,MAAlB,CAAyB,CAAzB,CAAD,CAA8BkB,SAA9B,CAAwC,CAAxC,EAA2C,CAA3C,CAAR;AACE,mBAAK,KAAL;AACE,oBAAG,KAAKnB,YAAL,CAAkBC,MAAlB,CAAyB,CAAzB,KAA+B,MAAlC,EAAyC;AACrC,uBAAK,IAAImB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKvC,kBAAL,CAAwB1V,MAA5C,EAAoDiY,CAAC,EAArD,EAAyD;AACvD,yBAAKnC,eAAL,CAAqB3V,IAArB,CAA0B;AAAC,4BAAK,KAAKuV,kBAAL,CAAwBuC,CAAxB,EAA2BC,EAAjC;AAAoC,kCAAW,KAAKxC,kBAAL,CAAwBuC,CAAxB,EAA2BtO;AAA1E,qBAA1B;AACD;AACJ,iBAJD,MAIK;AACH,uBAAK,IAAIsO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKpB,YAAL,CAAkBC,MAAlB,CAAyB9W,MAA7C,EAAqDiY,CAAC,EAAtD,EAA0D;AACxD,yBAAKnC,eAAL,CAAqB3V,IAArB,CAA0B;AAAC,4BAAK8X,CAAN;AAAQ,kCAAW,KAAKpB,YAAL,CAAkBC,MAAlB,CAAyBmB,CAAzB;AAAnB,qBAA1B;AACD;AACF;;AACD;;AACF,mBAAK,KAAL;AACE,oBAAG,KAAKpB,YAAL,CAAkBC,MAAlB,CAAyB,CAAzB,KAA+B,SAAlC,EAA4C;AACxC,uBAAK,IAAImB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKtC,iBAAL,CAAuB3V,MAA3C,EAAmDiY,CAAC,EAApD,EAAwD;AACtD,yBAAKlC,cAAL,CAAoB5V,IAApB,CAAyB;AAAC,4BAAK,KAAKwV,iBAAL,CAAuBsC,CAAvB,EAA0BC,EAAhC;AAAmC,kCAAW,KAAKvC,iBAAL,CAAuBsC,CAAvB,EAA0BtO;AAAxE,qBAAzB;AACD;AACJ,iBAJD,MAIK;AACH,uBAAK,IAAIsO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKpB,YAAL,CAAkBC,MAAlB,CAAyB9W,MAA7C,EAAqDiY,CAAC,EAAtD,EAA0D;AACxD,yBAAKlC,cAAL,CAAoB5V,IAApB,CAAyB;AAAC,4BAAK8X,CAAN;AAAQ,kCAAW,KAAKpB,YAAL,CAAkBC,MAAlB,CAAyBmB,CAAzB;AAAnB,qBAAzB;AACD;AACF;;AACD;AAtBJ;;AA0BA,iBAAKpB,YAAL,CAAkBC,MAAlB,GAA2B,EAA3B;AACA,iBAAKJ,YAAL,CAAkBE,SAAlB,CAA4B9W,MAA5B,CAAmCF,CAAnC,EAAqC,CAArC;AACD;AAzlB2B;AAAA;AAAA,+CA2lBF;AACxB,iBAAKiX,YAAL,CAAkBG,QAAlB,CAA2B7W,IAA3B,CAAgC,kBAAgB,KAAKqW,SAAL,CAAe5N,MAA/D;AACA,iBAAK4N,SAAL,CAAe5N,MAAf,GAAwB,EAAxB;AACD;AA9lB2B;AAAA;AAAA,0CAgmBJhJ,CAhmBI,EAgmBH;AACxB,iBAAK8W,YAAL,CAAkBE,SAAlB,CAA4B9W,MAA5B,CAAmCF,CAAnC,EAAqC,CAArC;AACA;AAlmB2B;AAAA;AAAA,gDAomBEA,CApmBF,EAomBG;AAC7B,iBAAKiX,YAAL,CAAkBG,QAAlB,CAA2BlX,MAA3B,CAAkCF,CAAlC,EAAoC,CAApC;AACD;AAtmB2B;AAAA;AAAA,sCAwmBR0H,CAxmBQ,EAwmBL;AACrB5C,mBAAO,CAACC,GAAR,CAAY,gBAAZ;AAEA,iBAAK4C,gBAAL,GAAwBD,CAAC,CAACxD,MAAF,CAAS0D,KAAT,CAAe,CAAf,CAAxB;AACA,iBAAKC,oBAAL,GAA4BH,CAAC,CAACxD,MAAF,CAAS0D,KAAT,CAAe,CAAf,EAAkBE,IAA9C;AACD;AA7mB2B;AAAA;AAAA,yCA+mBR;AAAA;;AAClB,gBAAIO,UAAU,GAAG,IAAIC,UAAJ,EAAjB;;AACAD,sBAAU,CAACE,MAAX,GAAoB,UAACb,CAAD,EAAO;AACzB5C,qBAAO,CAACC,GAAR,CAAYsD,UAAU,CAACG,MAAvB;AACA,kBAAIC,gBAAgB,GAAKJ,UAAU,CAACG,MAAZ,CAAoBE,QAApB,EAAD,CAAiCC,OAAjC,CAAyC,KAAzC,EAAgD,GAAhD,EAAqDA,OAArD,CAA6D,KAA7D,EAAoE,GAApE,CAAvB;;AACA,qBAAI,CAACrH,UAAL,CAAgBiX,SAAhB,CAA0B,OAAI,CAACrQ,gBAA/B,EAAgDO,gBAAhD,EAAkE7H,SAAlE,CAA4E,UAACsE,IAAD,EAAQ;AAClF,uBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,uBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,oBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,yBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,YAAU,OAAI,CAACsP,SAAL,CAAe9O,IAAzB,GAA8B,mBAAlD,EAAuE,SAAvE;AACD,iBAFD,MAEK;AACH,yBAAI,CAACtG,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,6BAAxC;AACD;;AACD,uBAAI,CAACgN,WAAL;AACD,eATD;AAUD,aAbD;;AAcA7J,sBAAU,CAACO,UAAX,CAAsB,KAAKjB,gBAA3B;AACD;AAhoB2B;AAAA;AAAA,4CAkoBL;AACrB,iBAAKI,eAAL,CAAqBC,aAArB,CAAmCC,KAAnC,GAA2C,EAA3C;AACA,iBAAKN,gBAAL;AACA,iBAAKO,gBAAL,GAAwB,EAAxB;AACA,iBAAKL,oBAAL,GAA4B,EAA5B;AACD;AAvoB2B;AAAA;AAAA,yCAyoBR;AAAA;;AACnB/C,mBAAO,CAACC,GAAR,CAAY,KAAK6R,SAAjB,EAA4B,KAAKE,YAAjC;AAEA,gBAAI0B,YAAY,GAAGjR,IAAI,CAACC,SAAL,CAAe,KAAKsP,YAApB,CAAnB;AAEA,iBAAKxV,UAAL,CAAgBiX,SAAhB,CAA0B,KAAK3B,SAAL,CAAe9O,IAAzC,EAA8C0Q,YAA9C,EAA4D5X,SAA5D,CAAsE,UAACsE,IAAD,EAAQ;AAC3E,qBAAI,CAAC5D,UAAL,CAAgB6D,sBAAhB,CAAuCD,IAAvC;;AACAJ,qBAAO,CAACC,GAAR,CAAYG,IAAZ;;AACA,kBAAGA,IAAI,CAAC,SAAD,CAAP,EAAmB;AACjB,uBAAI,CAAC1D,MAAL,CAAY8F,OAAZ,CAAoB,YAAU,OAAI,CAACsP,SAAL,CAAe9O,IAAzB,GAA8B,mBAAlD,EAAuE,SAAvE;AACD,eAFD,MAEK;AACH,uBAAI,CAACtG,MAAL,CAAYR,KAAZ,CAAkBuG,IAAI,CAACC,SAAL,CAAetC,IAAf,CAAlB,EAAwC,6BAAxC;AACD;;AACD,qBAAI,CAACgN,WAAL;AACD,aATF;AAUA;AAxpB2B;AAAA;AAAA,qCA0pBTf,KA1pBS,EA0pBJ;AACtB,iBAAKX,aAAL,GAAqBW,KAArB;;AACA,gBAAGA,KAAH,EAAS;AACP,mBAAKC,oBAAL,GAA4B,aAA5B;AACA,mBAAKC,yBAAL,GAAiC,QAAjC;AACD,aAHD,MAGK;AACH,mBAAKD,oBAAL,GAA4B,qBAA5B;AACA,mBAAKC,yBAAL,GAAiC,QAAjC;AACD;AACF;AAnqB2B;AAAA;AAAA,0CAqqBP;AACnB,iBAAKD,oBAAL,GAA4B,aAA5B;AACA,iBAAKC,yBAAL,GAAiC,MAAjC;AACD;AAxqB2B;AAAA;AAAA,8CA0qBA5G,MA1qBA,EA0qBM;AAChC,iBAAK+M,cAAL,GAAsB/M,MAAtB;AACA,iBAAKgO,mBAAL;AACA,iBAAKN,eAAL,CAAqB,KAArB;AACA,iBAAKvB,SAAL,CAAe9O,IAAf,GAAsB2C,MAAtB;AAEA,gBAAIiO,SAAS,GAAG,KAAK7C,WAAL,CAAiBpL,MAAjB,CAAhB;AACA,iBAAKqM,YAAL,CAAkBE,SAAlB,GAA8B0B,SAAS,CAAC1B,SAAxC;AACD;AAlrB2B;;AAAA;AAAA,S;;;;gBATrB;;gBAF2D;;gBAI3D;;gBAHA;;;;;;gBAmEN,uD;AAAS,iBAAC,gFAAD,EAA8B;AAAE,sBAAQ;AAAV,WAA9B;;;gBACT,uD;AAAS,iBAAC,sEAAD,EAAoB;AAAE,sBAAQ;AAAV,WAApB;;;gBAQT,0D;AAAY,iBAAC,OAAD;;;gBAgBZ,uD;AAAS,iBAAC,kBAAD,EAAqB;AAAE,sBAAQ;AAAV,WAArB;;;AAlFCpB,uBAAiB,6DAL7B,gEAAU;AACTvJ,gBAAQ,EAAE,cADD;AAETC,gBAAQ,EAAR,2EAFS;;AAAA,OAAV,CAK6B,GAAjBsJ,iBAAiB,CAAjB;;;;;;;;;;;;;;;;ACXb;AAAe;;;AAAA;;;;;;;;;;;;;;;;ACAf;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCMF+C,UAAU,GAUrB,sBAAc;AAAA;;AARd;AACA;AAEA;AACO,aAAAC,UAAA,GAAa,EAAb;AACA,aAAAC,eAAA,GAAkB,KAAlB;AACA,aAAAC,WAAA,GAAc,EAAd;AAGN,O;;;;;;AAXUH,gBAAU,6DAJtB,iEAAW;AACVhZ,kBAAU,EAAE;AADF,OAAX,CAIsB,GAAVgZ,UAAU,CAAV;;;;;;;;;;;;;;;;ACNb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACQf,UAAMI,MAAM,GAAW,CACtB;AAACC,YAAI,EAAC,OAAN;AAAeC,iBAAS,EAAE;AAA1B,OADsB,EAEtB;AAACD,YAAI,EAAC,QAAN;AAAgBC,iBAAS,EAAE;AAA3B,OAFsB,EAGtB;AAACD,YAAI,EAAC,UAAN;AAAkBC,iBAAS,EAAE;AAA7B,OAHsB,EAItB;AAACD,YAAI,EAAC,QAAN;AAAgBC,iBAAS,EAAE;AAA3B,OAJsB,EAKtB;AAACD,YAAI,EAAC,EAAN;AAAUC,iBAAS,EAAE;AAArB,OALsB,CAAvB;;UAYaC,gBAAgB;AAAA;AAAA,O;;AAAhBA,sBAAgB,6DAJ5B,+DAAS;AACRrK,eAAO,EAAE,CAAC,6DAAaC,OAAb,CAAqBiK,MAArB,CAAD,CADD;AAERI,eAAO,EAAE,CAAC,4DAAD;AAFD,OAAT,CAI4B,GAAhBD,gBAAgB,CAAhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCZAE,UAAU;AAErB,4BAAoBC,UAApB,EAAoDC,MAApD,EAA4EjK,GAA5E,EAA6F;AAAA;;AAAzE,eAAAgK,UAAA,GAAAA,UAAA;AAAgC,eAAAC,MAAA,GAAAA,MAAA;AAAwB,eAAAjK,GAAA,GAAAA,GAAA;AAc5E,eAAAkK,YAAA,GAAe,KAAKlK,GAAL,CAASwJ,eAAxB;AACA,eAAAW,YAAA,GAAe,KAAKnK,GAAL,CAASyJ,WAAxB;AACA,eAAAW,OAAA,GAAU,KAAKC,iBAAL,EAAV;;AAfE,cAAGrK,GAAG,CAACuJ,UAAP,EAAmB;AACjB9T,mBAAO,CAACC,GAAR,CAAY,YAAZ,EAA0BsK,GAAG,CAACuJ,UAA9B;AACD;;AACD,cAAGvJ,GAAG,CAACwJ,eAAP,EAAwB;AACtB/T,mBAAO,CAACC,GAAR,CAAY,iBAAZ,EAA+BsK,GAAG,CAACwJ,eAAnC;AACD;;AACD,cAAGxJ,GAAG,CAACyJ,WAAP,EAAoB;AAClBhU,mBAAO,CAACC,GAAR,CAAY,aAAZ,EAA2BsK,GAAG,CAACyJ,WAA/B;AACD;AAED;;AAbmB;AAAA;AAAA,8CAoBI;AACvB,gBAAIa,iBAAiB,GAAG,KAAKtK,GAAL,CAASuJ,UAAjC;;AACA,gBAAG,KAAKW,YAAL,IAAqB,KAAKA,YAAL,IAAqB,IAA7C,EAAmD;AACjD,kBAAIK,YAAY,GAAGC,YAAY,CAACC,OAAb,CAAqB,gBAArB,CAAnB;AAEA,kBAAIC,aAAa,GAAG,EAApB;;AAEA,kBAAGH,YAAY,IAAIA,YAAY,IAAI,EAAnC,EAAsC;AACpCG,6BAAa,GAAGH,YAAhB;AACD,eAFD,MAEK;AACHG,6BAAa,GAAGJ,iBAAhB;AACD;;AACD,qBAAOI,aAAP;AACD,aAXD,MAWO;AACL,qBAAOJ,iBAAP;AACD;AACF;AApCoB;AAAA;AAAA,0CAsCEK,UAtCF,EAsCY;AAC/BH,wBAAY,CAACI,OAAb,CAAqB,gBAArB,EAAuCD,UAAvC;AACA,iBAAKP,OAAL,GAAeO,UAAf;AAEA,iBAAKV,MAAL,CAAYY,mBAAZ,GAAkC,QAAlC;;AACA,iBAAKZ,MAAL,CAAYa,kBAAZ,CAA+BC,gBAA/B,GAAkD,YAAY;AAC5D,qBAAO,KAAP;AACD,aAFD;;AAIA,iBAAKd,MAAL,CAAYe,QAAZ,CAAqB,CAAC,KAAKf,MAAL,CAAYgB,GAAb,CAArB;AACA,iBAAKhB,MAAL,CAAYY,mBAAZ,GAAkC,QAAlC;AACD;AAjDoB;AAAA;AAAA,kDAmDO;AAC1B,mBAAO,KAAKX,YAAZ;AACD;AArDoB;AAAA;AAAA,4CAuDC;AACpB,mBAAO,KAAKC,YAAZ;AACD;AAzDoB;AAAA;AAAA,iDA2DStU,IA3DT,EA2Da;AAChC,gBAAGA,IAAI,IAAI,IAAR,IAAgB,OAAOA,IAAI,CAACqV,KAAZ,IAAqB,WAArC,IAAoD,OAAOrV,IAAI,CAACsV,IAAZ,IAAoB,WAAxE,IAAuFtV,IAAI,CAACqV,KAAL,IAAc,KAArG,IAA8GrV,IAAI,CAACsV,IAAL,IAAa,IAA9H,EAAmI;AACjIjL,oBAAM,CAACkL,QAAP,CAAgBvO,IAAhB,GAAuB,KAAKmD,GAAL,CAASuJ,UAAT,GAAoB,eAApB,GAAoCrJ,MAAM,CAACkL,QAAP,CAAgBvO,IAA3E;AACD;AACF;AA/DoB;AAAA;AAAA,uCAiEJ;AACf,mBAAO,KAAKmN,UAAL,CAAgB1D,GAAhB,CAAoB,KAAK8D,OAAL,GAAa,4BAAjC,CAAP;AACD;AAnEoB;AAAA;AAAA,qCAqEN;AACb,mBAAO,KAAKJ,UAAL,CAAgB1D,GAAhB,CAAoB,KAAK8D,OAAL,GAAa,0BAAjC,CAAP;AACD;AAvEoB;AAAA;AAAA,qCAyEN;AACb,mBAAO,KAAKJ,UAAL,CAAgB1D,GAAhB,CAAoB,KAAK8D,OAAL,GAAa,oBAAjC,CAAP;AACD;AA3EoB;AAAA;AAAA,kCA6ENiB,MA7EM,EA6ECC,MA7ED,EA6EO;AAC1B,gBAAIC,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyBJ,MAAzB;AACAE,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyBH,MAAzB;AAEA,mBAAO,KAAKtB,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,qBAAlC,EAAyDmB,IAAzD,CAAP;AACD;AApFoB;AAAA;AAAA,0CAsFEF,MAtFF,EAsFSC,MAtFT,EAsFgBlQ,MAtFhB,EAsFsB;AACzC,gBAAImQ,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyBJ,MAAzB;AACAE,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyBH,MAAzB;AACAC,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0BrQ,MAA1B;AAEA,mBAAO,KAAK4O,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,8BAAlC,EAAkEmB,IAAlE,CAAP;AACD;AA9FoB;AAAA;AAAA,qCAgGHF,MAhGG,EAgGIC,MAhGJ,EAgGWlQ,MAhGX,EAgGkByK,MAhGlB,EAgGwB;AAC3C,gBAAI0F,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyBJ,MAAzB;AACAE,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyBH,MAAzB;AACAC,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0BrQ,MAA1B;AACAmQ,gBAAI,CAACE,MAAL,CAAY,QAAZ,EAAsB5F,MAAtB;AAEA,mBAAO,KAAKmE,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,qBAAlC,EAAyDmB,IAAzD,CAAP;AACD;AAzGoB;AAAA;AAAA,wCA4GAF,MA5GA,EA4GOxF,MA5GP,EA4Ga;AAChC,gBAAI0F,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyBJ,MAAzB;AACAE,gBAAI,CAACE,MAAL,CAAY,QAAZ,EAAsB5F,MAAtB;AAEA,mBAAO,KAAKmE,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,yBAAlC,EAA6DmB,IAA7D,CAAP;AACD;AAnHoB;AAAA;AAAA,qCAqHHF,MArHG,EAqHG;AACtB,gBAAIE,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyBJ,MAAzB;AAEA,mBAAO,KAAKrB,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,qBAAlC,EAAyDmB,IAAzD,CAAP;AACD;AA3HoB;AAAA;AAAA,wCA6HH;AAChB,mBAAO,KAAKvB,UAAL,CAAgB1D,GAAhB,CAAoB,KAAK8D,OAAL,GAAa,uBAAjC,CAAP;AACD;AA/HoB;AAAA;AAAA,uCAiIDhP,MAjIC,EAiIK;AACxB,gBAAImQ,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0BrQ,MAA1B;AAEA,mBAAO,KAAK4O,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,uBAAlC,EAA2DmB,IAA3D,CAAP;AACD;AAvIoB;AAAA;AAAA,oCAyIJI,UAzII,EAyIQxC,YAzIR,EAyIoB;AACvC,gBAAIoC,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0BE,UAA1B;AACAJ,gBAAI,CAACE,MAAL,CAAY,cAAZ,EAA4BtC,YAA5B;AAEA,mBAAO,KAAKa,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,uBAAlC,EAA2DmB,IAA3D,CAAP;AACD;AAhJoB;AAAA;AAAA,uCAkJJ;AACf,mBAAO,KAAKvB,UAAL,CAAgB1D,GAAhB,CAAoB,KAAK8D,OAAL,GAAa,sBAAjC,CAAP;AACD;AApJoB;AAAA;AAAA,+CAsJI;AACvB,mBAAO,KAAKJ,UAAL,CAAgB1D,GAAhB,CAAoB,KAAK8D,OAAL,GAAa,+BAAjC,CAAP;AACD;AAxJoB;AAAA;AAAA,sDA0JczQ,MA1Jd,EA0JsBU,MA1JtB,EA0J8BC,UA1J9B,EA0J0CC,YA1J1C,EA0JwDC,YA1JxD,EA0JoE;AACvF;AACA,gBAAI+Q,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,QAAZ,EAAsB9R,MAAtB;AACA4R,gBAAI,CAACE,MAAL,CAAY,QAAZ,EAAsBpR,MAAtB;AACAkR,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0BnR,UAA1B;AACAiR,gBAAI,CAACE,MAAL,CAAY,cAAZ,EAA4BlR,YAA5B;AACAgR,gBAAI,CAACE,MAAL,CAAY,cAAZ,EAA4BjR,YAA5B;AAEA,mBAAO,KAAKwP,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,2BAAlC,EAA+DmB,IAA/D,CAAP;AACD;AArKoB;AAAA;AAAA,0CAuKE5R,MAvKF,EAuKQ;AAC3B,gBAAI4R,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,QAAZ,EAAsB9R,MAAtB;AACA,mBAAO,KAAKqQ,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,2BAAlC,EAA8DmB,IAA9D,CAAP;AACD;AA5KoB;AAAA;AAAA,6CA8KK5R,MA9KL,EA8KW;AAC9B,gBAAI4R,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,QAAZ,EAAsB9R,MAAtB;AACA,mBAAO,KAAKqQ,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,8BAAlC,EAAiEmB,IAAjE,CAAP;AACD;AAnLoB;AAAA;AAAA,uCAqLD5R,MArLC,EAqLK;AACxB,gBAAI4R,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B9R,MAA1B;AAEA,mBAAO,KAAKqQ,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,uBAAlC,EAA2DmB,IAA3D,CAAP;AACD;AA3LoB;AAAA;AAAA,uCA6LD5R,MA7LC,EA6LK;AACxB,gBAAI4R,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyB9R,MAAzB;AAEA,mBAAO,KAAKqQ,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,uBAAlC,EAA2DmB,IAA3D,CAAP;AACD;AAnMoB;AAAA;AAAA,sCAqML;AACd,mBAAO,KAAKvB,UAAL,CAAgB1D,GAAhB,CAAoB,KAAK8D,OAAL,GAAa,qBAAjC,CAAP;AACD;AAvMoB;AAAA;AAAA,6CAyMKzH,KAzML,EAyMWiJ,OAzMX,EAyMmBC,QAzMnB,EAyM2B;AAC9C,gBAAIN,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,OAAZ,EAAqB9I,KAArB;AACA4I,gBAAI,CAACE,MAAL,CAAY,SAAZ,EAAuBG,OAAvB;AACAL,gBAAI,CAACE,MAAL,CAAY,UAAZ,EAAwBI,QAAxB;AAEA,mBAAO,KAAK7B,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,8BAAlC,EAAkEmB,IAAlE,CAAP;AACD;AAjNoB;AAAA;AAAA,8CAmNM5I,KAnNN,EAmNW;AAC9B,gBAAI4I,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,OAAZ,EAAqB9I,KAArB;AAEA,mBAAO,KAAKqH,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,+BAAlC,EAAmEmB,IAAnE,CAAP;AACD;AAzNoB;AAAA;AAAA,yCA2NC5I,KA3ND,EA2NOkD,MA3NP,EA2Na;AAChC,gBAAI0F,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,OAAZ,EAAqB9I,KAArB;AACA4I,gBAAI,CAACE,MAAL,CAAY,QAAZ,EAAsB5F,MAAtB;AAEA,mBAAO,KAAKmE,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,0BAAlC,EAA8DmB,IAA9D,CAAP;AACD;AAlOoB;AAAA;AAAA,oCAoOJI,UApOI,EAoOOG,UApOP,EAoOkBC,OApOlB,EAoOyB;AAC5C,gBAAIR,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0BE,UAA1B;AACAJ,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0BK,UAA1B;AACAP,gBAAI,CAACE,MAAL,CAAY,SAAZ,EAAuBM,OAAvB;AAEA,mBAAO,KAAK/B,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,uBAAlC,EAA2DmB,IAA3D,CAAP;AACD;AA5OoB;AAAA;AAAA,uCA8ODzU,UA9OC,EA8OUkV,SA9OV,EA8OmB;AACtC,gBAAIT,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AACAyU,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyBO,SAAzB;AAEA,mBAAO,KAAKhC,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,8BAAlC,EAAkEmB,IAAlE,CAAP;AACD;AArPoB;AAAA;AAAA,uCAwPDzU,UAxPC,EAwPS;AAC5B,gBAAIyU,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AAEA,mBAAO,KAAKkT,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,8BAAlC,EAAkEmB,IAAlE,CAAP;AACD;AA9PoB;AAAA;AAAA,4CAgQC;AACpB,mBAAO,KAAKvB,UAAL,CAAgB1D,GAAhB,CAAoB,KAAK8D,OAAL,GAAa,aAAjC,CAAP;AACD;AAlQoB;AAAA;AAAA,yCAoQCtT,UApQD,EAoQW;AAC9B,gBAAIyU,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AAEA,mBAAO,KAAKkT,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,0BAAlC,EAA8DmB,IAA9D,CAAP;AACD;AA1QoB;AAAA;AAAA,yCA4QCzU,UA5QD,EA4QagD,SA5Qb,EA4QwBmS,UA5QxB,EA4QkC;AACrD,gBAAIV,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AACAyU,gBAAI,CAACE,MAAL,CAAY,WAAZ,EAAyB3R,SAAzB;AACAyR,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0BQ,UAA1B;AAEA,mBAAO,KAAKjC,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,0BAAlC,EAA8DmB,IAA9D,CAAP;AACD;AApRoB;AAAA;AAAA,4CAsRIzU,UAtRJ,EAsRc;AACjC,gBAAIyU,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AAEA,mBAAO,KAAKkT,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,6BAAlC,EAAiEmB,IAAjE,CAAP;AACD;AA5RoB;AAAA;AAAA,uCA8RDzU,UA9RC,EA8RUoV,UA9RV,EA8RoB;AACvC,gBAAIX,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AACAyU,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0BS,UAA1B;AAEA,mBAAO,KAAKlC,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,yBAAlC,EAA6DmB,IAA7D,CAAP;AACD;AArSoB;AAAA;AAAA,uCAuSDzU,UAvSC,EAuSS;AAC5B,gBAAIyU,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AAEA,mBAAO,KAAKkT,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,yBAAlC,EAA6DmB,IAA7D,CAAP;AACD;AA7SoB;AAAA;AAAA,0CA+SEzU,UA/SF,EA+SaqS,YA/Sb,EA+SyB;AAC5C,gBAAIoC,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AACAyU,gBAAI,CAACE,MAAL,CAAY,cAAZ,EAA4BtC,YAA5B;AAEA,mBAAO,KAAKa,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,2BAAlC,EAA+DmB,IAA/D,CAAP;AACD;AAtToB;AAAA;AAAA,0CAwTEzU,UAxTF,EAwTY;AAC/B,gBAAIyU,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AAEA,mBAAO,KAAKkT,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,2BAAlC,EAA+DmB,IAA/D,CAAP;AACD;AA9ToB;AAAA;AAAA,8CAgUMzU,UAhUN,EAgUgB;AACnC,gBAAIyU,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AAEA,mBAAO,KAAKkT,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,+BAAlC,EAAmEmB,IAAnE,CAAP;AACD;AAtUoB;AAAA;AAAA,8CAwUMzU,UAxUN,EAwUkBmE,OAxUlB,EAwU2BkR,cAxU3B,EAwUyC;AAC5D,gBAAIZ,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AACAyU,gBAAI,CAACE,MAAL,CAAY,sBAAZ,EAAoCxQ,OAApC;AACAsQ,gBAAI,CAACE,MAAL,CAAY,cAAZ,EAA4BU,cAA5B;AAEA,mBAAO,KAAKnC,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,+BAAlC,EAAmEmB,IAAnE,CAAP;AACD;AAhVoB;AAAA;AAAA,iDAkVSzU,UAlVT,EAkVmB;AACtC,gBAAIyU,IAAI,GAAG,IAAIC,QAAJ,EAAX;AAEAD,gBAAI,CAACE,MAAL,CAAY,YAAZ,EAA0B3U,UAA1B;AAEA,mBAAO,KAAKkT,UAAL,CAAgB0B,IAAhB,CAAqB,KAAKtB,OAAL,GAAa,kCAAlC,EAAsEmB,IAAtE,CAAP;AACD;AAxVoB;;AAAA;AAAA,S;;;;gBAPd;;gBACA;;gBACA;;;;AAKIxB,gBAAU,6DAHtB,iEAAW;AACVzZ,kBAAU,EAAE;AADF,OAAX,CAGsB,GAAVyZ,UAAU,CAAV;;;;;;;;;;;;;;;;ACRb;AAAe;;;AAAA;;;;;;;;;;;;;;;;ACAf;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAMA,UAAI,sEAAYhY,UAAhB,EAA4B;AAC1B;AACD;;AAED,yGAAyBqa,eAAzB,CAAyC,yDAAzC,WACS,UAAA1a,GAAG;AAAA,eAAI+D,OAAO,CAAC9D,KAAR,CAAcD,GAAd,CAAJ;AAAA,OADZ;;;;;;;;;;;;;;ACVA,eAAS2a,wBAAT,CAAkC3b,GAAlC,EAAuC;AACtC;AACA;AACA,eAAO4b,OAAO,CAACC,OAAR,GAAkBC,IAAlB,CAAuB,YAAW;AACxC,cAAInU,CAAC,GAAG,IAAIoU,KAAJ,CAAU,yBAAyB/b,GAAzB,GAA+B,GAAzC,CAAR;AACA2H,WAAC,CAACqU,IAAF,GAAS,kBAAT;AACA,gBAAMrU,CAAN;AACA,SAJM,CAAP;AAKA;;AACDgU,8BAAwB,CAAC5Z,IAAzB,GAAgC,YAAW;AAAE,eAAO,EAAP;AAAY,OAAzD;;AACA4Z,8BAAwB,CAACE,OAAzB,GAAmCF,wBAAnC;AACAM,YAAM,CAAC7C,OAAP,GAAiBuC,wBAAjB;AACAA,8BAAwB,CAACpD,EAAzB,GAA8B,MAA9B","file":"main-es5.js","sourcesContent":["export default \"
\\n\\t
\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t\\t
\\n\\t\\t Loading...\\n\\t\\t
\\n\\t
\\n
\\n\\n
\\n\\t
\\n\\t\\t\\n\\t\\t
\\n\\t\\t
\\n\\t\\tSeems backend unreachable\\n\\t
\\n
\\n\";","//loader.service.ts\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderService {\n public isError = false\n public isLoading = new BehaviorSubject(false);\n constructor() { }\n}\n","// loader.interceptors.ts\nimport { Injectable } from '@angular/core';\nimport {\n HttpErrorResponse,\n HttpResponse,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { LoaderService } from './loader.service';\n\n@Injectable()\nexport class LoaderInterceptor implements HttpInterceptor {\n private requests: HttpRequest[] = [];\n\n constructor(private loaderService: LoaderService) { }\n\n removeRequest(req: HttpRequest) {\n const i = this.requests.indexOf(req);\n if (i >= 0) {\n this.requests.splice(i, 1);\n }\n this.loaderService.isLoading.next(this.requests.length > 0);\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n req = req.clone({\n withCredentials: true\n });\n this.requests.push(req);\n this.loaderService.isLoading.next(true);\n this.loaderService.isError = false;\n return Observable.create(observer => {\n const subscription = next.handle(req)\n .subscribe(\n event => {\n if (event instanceof HttpResponse) {\n this.removeRequest(req);\n observer.next(event);\n }\n },\n err => {\n this.loaderService.isError = true;\n this.removeRequest(req);\n observer.error(err);\n },\n () => {\n this.removeRequest(req);\n observer.complete();\n });\n // remove request from queue when cancelled\n return () => {\n this.removeRequest(req);\n subscription.unsubscribe();\n };\n });\n }\n}\n","export default \"dialog {\\n width: 300px;\\n}\\n\\ndialog::-webkit-backdrop {\\n background: rgba(0, 0, 0, 0.7);\\n}\\n\\ndialog::backdrop {\\n background: rgba(0, 0, 0, 0.7);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xvYWRlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLFlBQUE7QUFDSjs7QUFDRztFQUNDLDhCQUFBO0FBRUo7O0FBSEc7RUFDQyw4QkFBQTtBQUVKIiwiZmlsZSI6ImxvYWRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImRpYWxvZyB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgfVxuICAgZGlhbG9nOjpiYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjcpO1xuICAgfSJdfQ== */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJncm91cHMuY29tcG9uZW50LnNjc3MifQ== */\";","export const environment = {\n production: false\n};\n","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n\n@Component({\n selector: 'app-buckets',\n templateUrl: './buckets.component.html',\n styleUrls: ['./buckets.component.scss']\n})\nexport class BucketsComponent implements OnInit, AfterViewInit {\n math = Math;\n objectKeys = Object.keys;\n isNaN: Function = Number.isNaN;\n buckets = {};\n bucketToDelete;\n bucketToRemoveNotifications;\n bucketToRemoveQuota;\n bucketToRemoveEncryption;\n updateEncryptionTypeChanged = false;\n editBucketName;\n newBucketName = \"\";\n uiShowQuota = false;\n newBucketQuotaType = \"\";\n newBucketQuota = \"\";\n quotaTypes = [\"fifo\", \"hard\"];\n serviceInfo;\n diskUsageInfo;\n newBucketEncryption = \"\";\n encryptionTypes = [\"sse-s3\", \"sse-kms\"];\n newBucketMasterKeyID = \"\";\n newBucketEventARN = \"\";\n updateBucketEventARN = \"\";\n updateBucketEventFilterPrefix = \"\";\n updateBucketEventFilterSuffix = \"\";\n updateBucketQuotaObj = {};\n updateBucketEncryptionObj = {};\n updateQuotaTypeChanged = false;\n updateQuotaChanged = false;\n\n newBucketPolicy = \"none\";\n // updateBucketPolicy = \"none\"\n policyTypes = [\"none\", \"upload\", \"download\", \"public\", \"custom\"];\n updatePolicyTypeChanged = false;\n uploadPolicyName;\n uploadPolicyFile;\n uploadPolicyFileName;\n\n dropdownEventTypesList = [];\n selectedEventTypes = [];\n dropdownEventTypesSettings = {};\n newBucketEventFilterPrefix = \"\";\n newBucketEventFilterSuffix = \"\";\n newBucketTagName = \"\";\n newBucketTagValue = \"\";\n newBucketTagsList = {};\n\n tagListChanged = false;\n\n uploadLifecycleName;\n uploadLifecycleFile;\n uploadLifecycleFileName;\n lifecycleBucketName;\n downloadJsonHref;\n downloadLifecycleAvailable = 0;\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService, private sanitizer: DomSanitizer) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n }\n\n @ViewChild('uploadLifecycleFile', { static: true })\n uploadFileInput: any;\n\n ngOnInit() {\n \tthis.getBuckets()\n this.getServerInfo()\n this.getDiskInfo()\n\n this.dropdownEventTypesList = [\n\t {\"id\":1,\"itemName\":\"put\"},\n\t {\"id\":2,\"itemName\":\"get\"},\n\t {\"id\":3,\"itemName\":\"delete\"},\n ];\n\n this.dropdownEventTypesSettings = {\n \t\tsingleSelection: false,\n \t\ttext:\"Select Event Types\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true,\n classes: \"dropdownFix\"\n\t };\n }\n\n //condition select actions\n onEventTypesItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedEventTypes);\n\t}\n\tonEventTypesItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedEventTypes);\n\t}\n\tonEventTypesSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonEventTypesDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n private toggleShowQuota(){\n (this.uiShowQuota) ? this.uiShowQuota = false : this.uiShowQuota = true;\n }\n\n // private toggleUpdateShowQuota(){\n // (this.updateUiShowQuota) ? this.updateUiShowQuota = false : this.updateUiShowQuota = true;\n // }\n\n private getServerInfo(){\n this.apiService.serverInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.serviceInfo = data;\n });\n }\n\n private getDiskInfo(){\n \tthis.apiService.diskInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.diskUsageInfo = data;\n });\n }\n\n private searchItems() {\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.buckets = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.buckets = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n private getBuckets(){\n \tthis.apiService.getBucketsExtended().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"BUCKETS >>>>>>\",data);\n if(data!==null){\n this.buckets = data;\n }else{\n this.buckets = {};\n }\n this.mdbTable.setDataSource(this.buckets);\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n private deleteBucketPrepare(bucketName){\n \tthis.bucketToDelete = bucketName;\n }\n\n private removeBucketNotificationPrepare(bucketName){\n \tthis.bucketToRemoveNotifications = bucketName;\n }\n\n private updateBucketPrepare(bucketName, currentQuota, currentQtype, currentTags){\n this.editBucketName = bucketName;\n\n this.apiService.getBucketTag(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n\n var dataKeys = Object.keys(data);\n console.log(dataKeys[0]);\n if(dataKeys[0]!=\"error\"){\n this.newBucketTagsList = data;\n }\n });\n\n this.apiService.getBucketEncryption(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n\n var dataKeys = Object.keys(data);\n console.log(\"Bucket Encryption >>\",dataKeys[1]);\n if(dataKeys[1]==\"Rules\"){\n this.updateBucketEncryptionObj = data;\n var dataVals = Object.values(data);\n console.log(\"Enc datavals\", dataVals[1][0]['Apply']['KmsMasterKeyID'])\n if(dataVals[1][0]['Apply']['KmsMasterKeyID'] == \"\"){\n this.updateBucketEncryptionObj = \"sse-s3\"\n }else{\n this.updateBucketEncryptionObj = \"sse-kms\"\n }\n }else{\n this.updateBucketEncryptionObj = \"\";\n }\n });\n\n this.apiService.getBucketQuota(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n\n var dataKeys = Object.keys(data);\n console.log(dataKeys[0]);\n if(dataKeys[0]!=\"error\"){\n this.updateBucketQuotaObj = data;\n }else{\n var emptyData = {\n quotatype: \"\"\n };\n this.updateBucketQuotaObj = emptyData;\n }\n });\n\n this.apiService.getBucketPolicy(bucketName).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(Object.keys(data));\n console.log(data);\n this.newBucketPolicy = data[\"name\"];\n });\n }\n\n private deleteBucketQuotaPrepare(bucketName){\n this.bucketToRemoveQuota = bucketName;\n }\n\n private updateQuotaType(){\n this.updateQuotaTypeChanged = true;\n }\n\n private updatePolicyType(){\n this.updatePolicyTypeChanged = true;\n }\n\n private updateEncryptionType(){\n this.updateEncryptionTypeChanged = true;\n }\n\n private updateQuota(){\n this.updateQuotaChanged = true;\n }\n\n private deleteBucketEncryptionPrepare(bucketName){\n this.bucketToRemoveEncryption = bucketName;\n }\n\n private deleteBucket(){\n \tthis.apiService.deleteBucket(this.bucketToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Bucket has been deleted', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while deleting bucket');\n }\n this.getBuckets();\n });\n }\n\n private resetForm(){\n \tthis.newBucketName = \"\";\n this.newBucketEventARN = \"\";\n this.newBucketEncryption = \"\";\n this.newBucketMasterKeyID = \"\";\n this.updateEncryptionTypeChanged = false;\n this.newBucketEventFilterPrefix = \"\";\n this.newBucketEventFilterSuffix = \"\";\n this.selectedEventTypes = [];\n this.newBucketQuotaType = \"\";\n this.newBucketPolicy = \"none\";\n this.newBucketQuota = \"\";\n this.newBucketTagName = \"\";\n this.newBucketTagValue = \"\";\n this.newBucketTagsList = {};\n this.updatePolicyTypeChanged = false;\n this.tagListChanged = false;\n this.resetUploadForm();\n }\n\n private resetUpdateForm() {\n this.updateBucketEventARN = \"\";\n this.newBucketEncryption = \"\";\n this.newBucketMasterKeyID = \"\";\n this.updateEncryptionTypeChanged = false;\n this.selectedEventTypes = [];\n this.updateBucketEventFilterPrefix = \"\";\n this.updateBucketEventFilterSuffix = \"\";\n this.updateBucketQuotaObj = {};\n this.updateBucketEncryptionObj = \"\";\n this.updateQuotaTypeChanged = false;\n this.updateQuotaChanged = false;\n this.tagListChanged = false;\n this.updatePolicyTypeChanged = false;\n this.resetUploadForm();\n }\n\n private filePolicyChanged(e) {\n console.log(\"file event\");\n\n this.uploadPolicyFile = e.target.files[0];\n this.uploadPolicyFileName = e.target.files[0].name;\n }\n\n private resetUploadForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadPolicyFile;\n this.uploadPolicyName = \"\";\n this.uploadPolicyFileName = \"\";\n }\n\n private setPolicy(bucketName, updateListAfter){\n if(this.newBucketPolicy!=\"custom\"){\n this.apiService.setBucketPolicy(bucketName, this.newBucketPolicy).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newBucketPolicy+' has been append to '+bucketName, 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n });\n } else {\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n console.log(\"Policy>>>>\",fileReader.result);\n\n let policyFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n console.log(\"Policy2>>>>\",policyFileString);\n this.apiService.setBucketPolicy(bucketName, policyFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy custom has been append to '+bucketName, 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n });\n\n }\n fileReader.readAsText(this.uploadPolicyFile);\n }\n }\n\n\n private createBucket(){\n \tif(this.newBucketName.indexOf(',')>-1){\n \t\tvar bucketsArr = this.newBucketName.split(',')\n \t\tfor (var i = 0; i < bucketsArr.length; i++) {\n \t\t\tif(bucketsArr[i]!=''){\n \t\t\t\tthis.createBucketSimple(bucketsArr[i],this.newBucketEventARN,this.newBucketQuotaType,this.newBucketQuota,this.newBucketPolicy,this.newBucketEncryption,this.newBucketMasterKeyID, bucketsArr.length,i+1)\n \t\t\t}\n \t\t}\n \t}else{\n \t\tthis.createBucketSimple(this.newBucketName,this.newBucketEventARN,this.newBucketQuotaType,this.newBucketQuota,this.newBucketPolicy,this.newBucketEncryption,this.newBucketMasterKeyID,1,1)\n \t}\n }\n\n private bucketLifecycle(bucket){\n this.lifecycleBucketName = bucket;\n }\n\n private createFormAddTag() {\n if(this.newBucketTagName != \"\" && this.newBucketTagValue != \"\"){\n this.newBucketTagsList[this.newBucketTagName] = this.newBucketTagValue;\n this.newBucketTagName = \"\";\n this.newBucketTagValue = \"\";\n this.tagListChanged = true;\n }\n }\n\n private createFormRemoveTag(tagName) {\n delete this.newBucketTagsList[tagName];\n this.tagListChanged = true;\n }\n\n private updateBucket(quotaType, quotaVal) {\n if(this.updateBucketEventARN != \"\"){\n this.enableNotificationForBucket(this.editBucketName, this.updateBucketEventARN, this.selectedEventTypes, this.updateBucketEventFilterPrefix, this.updateBucketEventFilterSuffix, true)\n }\n\n if(this.tagListChanged){\n this.setTagsForBucket(this.editBucketName,true)\n }\n\n if(this.updateQuotaTypeChanged || this.updateQuotaChanged){\n this.setQuotaForBucket(this.editBucketName, quotaType, quotaVal, true)\n }\n\n if(this.updatePolicyTypeChanged){\n this.setPolicy(this.editBucketName, true)\n }\n\n if(this.updateEncryptionTypeChanged){\n this.setBucketEncryption(this.editBucketName, this.updateBucketEncryptionObj, this.newBucketMasterKeyID, true)\n }\n }\n\n private enableNotificationForBucket(bucket, stsARN, eventTypes, filterPrefix, filterSuffix, updateListAfter){\n var eventTypesArr = []\n for (var i = 0; i < eventTypes.length; i++) {\n eventTypesArr.push(eventTypes[i].itemName)\n }\n this.apiService.enableNotificationForBucket(bucket, stsARN, eventTypesArr.join(','), filterPrefix, filterSuffix).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Events for bucket: '+bucket+' has been enabled', 'Success');\n if(updateListAfter){\n this.getBuckets();\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while enabling events for bucket'+bucket );\n }\n });\n }\n\n private setQuotaForBucket(bucket, quotaType, quotaVal, reloadBucketList){\n this.apiService.setBucketQuota(bucket, quotaType, quotaVal).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Quota for bucket '+bucket+' has been set', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while set quota for bucket');\n }\n if(reloadBucketList){\n this.getBuckets();\n }\n });\n }\n\n private removeBucketEvents(){\n var bucket = this.bucketToRemoveNotifications;\n this.apiService.removeBucketEvents(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Events for bucket '+bucket+' has been removed', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while removing bucket events');\n }\n this.getBuckets();\n });\n }\n\n private removeBucketQuota(){\n var bucket = this.bucketToRemoveQuota;\n this.apiService.removeBucketQuota(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Quota for bucket '+bucket+' has been removed', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while removing bucket quota');\n }\n this.getBuckets();\n });\n }\n\n private removeBucketEncryption(){\n var bucket = this.bucketToRemoveEncryption;\n this.apiService.removeBucketEncryption(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Encryption for bucket '+bucket+' has been removed', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while removing bucket encryption');\n }\n this.getBuckets();\n });\n }\n\n\n private setBucketEncryption(bucket, encType, masterKeyID, reloadBucketList){\n this.apiService.setBucketEncryption(bucket, encType, masterKeyID).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Encryption for bucket '+bucket+' has been set', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while set encryption for bucket');\n }\n if(reloadBucketList){\n this.getBuckets();\n }\n });\n }\n\n\n\n private createBucketSimple(bucket, eventARN, quotaType, quotaVal, policy, encryption, masterKeyID, numberOfBuckets, currentBucketNumber){\n \tthis.apiService.createBucket(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Bucket: '+bucket+' has been created', 'Success');\n if(eventARN != \"\"){\n this.enableNotificationForBucket(bucket, eventARN, this.selectedEventTypes, this.newBucketEventFilterPrefix, this.newBucketEventFilterSuffix, false);\n }\n if(quotaType != \"\" && quotaVal != \"\" && quotaVal >= 0){\n this.setQuotaForBucket(bucket, quotaType, quotaVal, false);\n }\n if(Object.keys(this.newBucketTagsList).length > 0){\n this.setTagsForBucket(bucket, false)\n }\n if(this.updatePolicyTypeChanged){\n this.setPolicy(bucket, false)\n }\n if(encryption != \"\"){\n this.setBucketEncryption(bucket, encryption, masterKeyID, false)\n }\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating bucket');\n }\n if(numberOfBuckets == currentBucketNumber){\n setTimeout(()=>{\n this.getBuckets();\n }, 500);\n }\n });\n }\n\n private fileChanged(e) {\n console.log(\"eventTriggered\");\n\n this.uploadLifecycleFile = e.target.files[0];\n this.uploadLifecycleFileName = e.target.files[0].name;\n }\n\n private resetLifecycleForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadLifecycleFile;\n this.uploadLifecycleName = \"\";\n this.uploadLifecycleFileName = \"\";\n this.downloadLifecycleAvailable = 0;\n }\n\n private downloadLifecycle(bucket) {\n this.apiService.getLifecycle(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n // console.log(bucket, data);\n if(data[\"error\"]){\n this.toastr.error(JSON.stringify(data), 'Error while getting lifecycle');\n }else{\n if(data==\"\"){\n // this.toastr.error(\"Bucket has no lifecycle\", 'Error while getting lifecycle');\n }else{\n this.downloadLifecycleAvailable = 1;\n console.log(\"Lifecycle>>>>\",JSON.stringify(data));\n\n var uri = this.sanitizer.bypassSecurityTrustUrl(\"data:text/json;charset=UTF-8,\" + encodeURIComponent(JSON.stringify(data)));\n this.downloadJsonHref = uri;\n }\n }\n });\n }\n\n private uploadLifecycle(){\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n let lifecycleFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n this.apiService.setLifecycle(this.lifecycleBucketName,lifecycleFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Lifecycyle has been uploaded for bucket: '+this.lifecycleBucketName+'', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while uploading lifecycyle');\n }\n });\n }\n fileReader.readAsText(this.uploadLifecycleFile);\n }\n\n private setTagsForBucket(bucket,reloadBucketList){\n var tagsObj = this.newBucketTagsList;\n var tagsKeys = this.objectKeys(tagsObj);\n var tagArr = [];\n for (let i = 0; i < tagsKeys.length; i++) {\n var tagString = tagsKeys[i]+\"=\"+tagsObj[tagsKeys[i]]\n tagArr.push(tagString)\n }\n var tagString = tagArr.join(\"&\");\n console.log(\"TAG STRING >>>>\", tagString)\n this.apiService.setBucketTag(bucket, tagString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n if(data[\"Success\"]){\n this.toastr.success('Tags for bucket '+bucket+' has been set', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while set tags for bucket');\n }\n if(reloadBucketList){\n this.getBuckets();\n }\n });\n }\n\n private downloadPolicy(bucket,fileName) {\n this.apiService.getBucketPolicy(bucket).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"download policy >>> \", bucket, data);\n if(data[\"error\"]){\n this.toastr.error(JSON.stringify(data), 'Error while getting policy');\n }else{\n if(data==\"\"){\n this.toastr.error(\"Bucket has no policy\", 'Error while getting policy');\n }else{\n var link = document.createElement('a');\n link.href = \"data:text/json;charset=UTF-8,\" + encodeURIComponent(data[\"policy\"].toString());\n link.download = fileName\n link.click();\n }\n }\n });\n }\n\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ApiService } from '../api.service';\n\n@Component({\n selector: 'app-server',\n templateUrl: './server.component.html',\n styleUrls: ['./server.component.scss']\n})\nexport class ServerComponent implements OnInit {\n\n objectKeys = Object.keys;\n objectValues = Object.values;\n math = Math;\n rawView = '';\n serviceInfo;\n diskUsageInfo;\n bucketSizes=[];\n hgChartDatasets=[{data: [], label: 'Number of objects'}];\n hgChartLabels=[];\n hgChartType = 'radar';\n hgChartColors = [\n {\n backgroundColor: 'rgba(151,187,205,0.9)',\n borderColor: 'rgba(151,187,205,1)',\n borderWidth: 2,\n pointBackgroundColor: 'rgba(151,187,205,1)',\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: 'rgba(151,187,205,1)'\n }\n ];\n hgChartOptions = {\n responsive: true\n };\n\n szChartDatasets=[{data: [], label: 'Size of bucket in Bytes'}];\n szChartLabels=[];\n szChartType = 'bar';\n szChartColors = [\n {\n backgroundColor: 'rgba(151,187,205,0.9)',\n borderColor: 'rgba(151,187,205,1)',\n borderWidth: 2,\n pointBackgroundColor: 'rgba(151,187,205,1)',\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: 'rgba(151,187,205,1)'\n }\n ];\n szChartOptions = {\n responsive: true\n };\n\n constructor(private apiService: ApiService) { }\n\n ngOnInit() {\n \tthis.serverInfo()\n this.diskInfo()\n }\n\n public hgChartClicked(e: any): void {\n }\n\n public hgChartHovered(e: any): void {\n }\n\n public szChartClicked(e: any): void {\n }\n\n public szChartHovered(e: any): void {\n }\n\n private serverInfo(){\n \tthis.apiService.serverInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.serviceInfo = data;\n });\n }\n\n private diskInfo(){\n \tthis.apiService.diskInfo().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(\"Disk Usage >>>>>>>>>>>>\",data);\n this.diskUsageInfo = data;\n if(data.hasOwnProperty('objectsSizesHistogram')){\n var objectsSizesHistogram = this.diskUsageInfo.objectsSizesHistogram;\n var histogramKeysRawArr = [];\n var histogramValsRawArr = [];\n if(objectsSizesHistogram){\n histogramKeysRawArr = Object.keys(objectsSizesHistogram)\n histogramValsRawArr = Object.values(objectsSizesHistogram)\n }\n this.hgChartDatasets[0].data = histogramValsRawArr;\n\n this.hgChartLabels = [];\n for (let i = 0; i < histogramKeysRawArr.length; i++) {\n var histogramLabel = histogramKeysRawArr[i].split('_').join(' ');\n this.hgChartLabels.push(histogramLabel)\n }\n }\n\n if(data.hasOwnProperty('bucketsSizes') && this.diskUsageInfo.bucketsSizes != {} && this.diskUsageInfo.bucketsSizes != null ){\n var objectBucketSizes = this.diskUsageInfo.bucketsSizes;\n const bucketSizesKeysRawArr = Object.keys(objectBucketSizes)\n const bucketSizesValsRawArr = Object.values(objectBucketSizes)\n this.szChartDatasets[0].data = bucketSizesValsRawArr;\n this.szChartLabels= bucketSizesKeysRawArr;\n }\n });\n }\n\n private rawPrepare(obj){\n this.rawView = obj;\n }\n\n}\n","export default \"
\\n
\\n
\\n

Groups

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\t\\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\t \\n\\t \\n\\t \\n \\n \\n \\n \\n \\n\\t
NamePolicyStatusMembersOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].name}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].policy}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{groups[i].status}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n
    \\n
  • {{member}}
  • \\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t \\t \\t\\n\\t \\t \\t\\n\\t \\t \\t 0\\\" mdbTooltip=\\\"You can delete only groups whit no memebers\\\" placement=\\\"top\\\">\\n\\t \\t
\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

{{modalCreateEditTitle}}

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t \\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t
\\n \\t\\t\\t\\t \\n \\t\\t\\t\\t
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Group

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button group {{groupToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Policy

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\";","import { Component, OnInit } from '@angular/core';\nimport { ApiService } from './api.service';\nimport { environment } from './../environments/environment';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit {\n title = 'Adminio-UI';\n\n constructor(private apiService: ApiService) { }\n\n ngOnInit() {\n \tthis.checkAuthStatus()\n }\n\n private checkAuthStatus(){\n this.apiService.checkAuthStatus().subscribe((data)=>{\n console.log(\"DATA AUTH>>>\", data);\n this.apiService.validateAuthInResponse(data)\n });\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzZXJ2ZXIuY29tcG9uZW50LnNjc3MifQ== */\";","export default \"\\n\\n\\n\\n \\n Adminio UI \\n\\n \\n \\n\\n \\n \\n \\n \\n
\\n \\n \\n\\t\\t\\t\\t\\t\\n
\\n
\\n \\n\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\";","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { MDBBootstrapModule } from 'angular-bootstrap-md';\nimport { UsersComponent } from './users/users.component';\nimport { FormsModule, FormControl, FormGroup, Validators, ReactiveFormsModule} from \"@angular/forms\";\nimport { ServerComponent } from './server/server.component';\nimport { FilterPipe } from './filter.pipe';\nimport { PoliciesComponent } from './policies/policies.component';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { AngularMultiSelectModule } from 'angular2-multiselect-dropdown';\nimport { LoaderComponent } from './loader/loader.component';\nimport { LoaderService } from './loader.service';\nimport { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';\nimport { LoaderInterceptor } from './loader.interceptor';\nimport { BucketsComponent } from './buckets/buckets.component';\nimport { CommonModule } from '@angular/common';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ToastrModule } from 'ngx-toastr';\nimport { GroupsComponent } from './groups/groups.component';\nimport { EnvServiceProvider } from './env.service.provider';\n\n\n\n@NgModule({\n declarations: [\n AppComponent,\n UsersComponent,\n ServerComponent,\n FilterPipe,\n PoliciesComponent,\n LoaderComponent,\n BucketsComponent,\n GroupsComponent,\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n MDBBootstrapModule.forRoot(),\n HttpClientModule,\n ReactiveFormsModule,\n NgxJsonViewerModule,\n AngularMultiSelectModule,\n FormsModule,\n CommonModule,\n BrowserAnimationsModule,\n ToastrModule.forRoot()\n ],\n providers: [\n EnvServiceProvider,\n LoaderService,\n { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJidWNrZXRzLmNvbXBvbmVudC5zY3NzIn0= */\";","import { EnvService } from './env.service';\n\nexport const EnvServiceFactory = () => {\n // Create env\n const env = new EnvService();\n\n // Read environment variables from browser window\n const browserWindow = window || {};\n const browserWindowEnv = browserWindow['__env'] || {};\n\n // Assign environment variables from browser window to env\n // In the current implementation, properties from env.js overwrite defaults from the EnvService.\n // If needed, a deep merge can be performed here to merge properties instead of overwriting them.\n for (const key in browserWindowEnv) {\n if (browserWindowEnv.hasOwnProperty(key)) {\n env[key] = window['__env'][key];\n }\n }\n\n return env;\n};\n\nexport const EnvServiceProvider = {\n provide: EnvService,\n useFactory: EnvServiceFactory,\n deps: [],\n};\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ1c2Vycy5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n@Component({\n\tselector: 'app-groups',\n\ttemplateUrl: './groups.component.html',\n\tstyleUrls: ['./groups.component.scss']\n})\n\nexport class GroupsComponent implements OnInit, AfterViewInit {\n\tobjectKeys = Object.keys;\n\tjsn = JSON;\n\tgroups = {};\n\tgroupsWithMembers = [];\n\tusers = {};\n\trawPolicies = {};\n\tgroupToUpdate = {};\n\tnewGroupName = \"\";\n\tnewGroupPolicy = \"\";\n\tnewGroupStatus = \"\";\n\tpolicies;\n\tupdateStatusValues = ['enabled','disabled'];\n\tmodalCreateEditTitle;\n\tmodalCreateEditButtonText;\n\tmodalEditMode = false;\n\trawView = \"\";\n\tusersToRemove = [];\n\tgroupToDelete = \"\";\n\n\n\n\tdropdownList = [];\n\tselectedItems = [];\n\tdropdownSettings = {};\n\n\n\n\t@ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n\t@ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n\n\tprevious: string;\n\tsearchText: string = '';\n\n \tconstructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService) { }\n\n \t@HostListener('input') oninput() {\n\t\tif(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n\t\t this.searchItems();\n\t\t}\n\t\tif(event && event['target'] !== undefined && event.target[\"name\"] !== undefined && event.target[\"name\"] == \"newGroupName\"){\n\t if(this.modalEditMode){\n\t if(this.newGroupName == this.groupToUpdate[\"name\"]){\n\t console.log('hit')\n\t this.isEditMode(true)\n\t }else{\n\t this.isNowCopyMode();\n\t }\n\t }\n\t }\n\t}\n\n\tngOnInit() {\n\t\tthis.getGroups()\n\t\tthis.getListOfUsers()\n\t\tthis.getListOfPolicies()\n\t\tthis.isEditMode(false)\n\n\t\tthis.dropdownList = [\n\t\t {\"id\":1,\"itemName\":\"wait! i'm getting policies ASAP\"}\n\t ];\n\n\t this.dropdownSettings = {\n\t\t\tsingleSelection: false,\n\t\t\ttext:\"Select Members\",\n\t\t\tselectAllText:'Select All',\n\t\t\tunSelectAllText:'UnSelect All',\n\t\t\tenableSearchFilter: true\n\t\t};\n\t}\n\n\tonItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedItems);\n\t}\n\tOnItemDeSelect(item:any){\n\t\tthis.usersToRemove.push(item[\"itemName\"])\n\t console.log(item);\n\t console.log(this.selectedItems);\n\t}\n\tonSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonDeSelectAll(items: any){\n\n\t\t\tfor (let i = 0; i < this.selectedItems.length; i++) {\n\t\t\t\tthis.usersToRemove.push(this.selectedItems[i][\"itemName\"])\n\t\t\t}\n\n\t this.selectedItems = [];\n\t}\n\n\tprivate searchItems() {\n\t\tconst prev = this.mdbTable.getDataSource();\n\n\t\tif (!this.searchText) {\n\t\t this.mdbTable.setDataSource(this.previous);\n\t\t this.groups = this.mdbTable.getDataSource();\n\t\t}\n\n\t\tif (this.searchText) {\n\t\t this.groups = this.mdbTable.searchLocalDataBy(this.searchText);\n\t\t this.mdbTable.setDataSource(prev);\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n\t this.mdbTablePagination.calculateFirstItemIndex();\n\t this.mdbTablePagination.calculateLastItemIndex();\n\t this.cdRef.detectChanges();\n\t}\n\n\tprivate isEditMode(state){\n\t\tthis.modalEditMode = state;\n\t\tif(state){\n\t\t this.modalCreateEditTitle = \"Edit group\"\n\t\t this.modalCreateEditButtonText = \"Update\"\n\t\t}else{\n\t\t this.modalCreateEditTitle = \"Create group\"\n\t\t this.modalCreateEditButtonText = \"Create\"\n\t\t}\n\t}\n\n\tprivate isNowCopyMode(){\n\t\tthis.modalCreateEditTitle = \"Copy group\"\n\t\tthis.modalCreateEditButtonText = \"Copy\"\n\t}\n\n\tprivate commaToBr(arr) {\n\t\t// console.log(arr)\n\t var str = arr.join('\\n\\r');\n\t return str;\n\t}\n\n\tpublic b64unpack(str){\n\t// console.log(JSON.parse(atob(str)))\n\t\treturn JSON.parse(atob(str));\n\t}\n\n\tprivate rawPrepare(str){\n\t\tconsole.log(this.rawPolicies[str])\n\t\tthis.rawView = this.b64unpack(this.rawPolicies[str]);\n\t}\n\n\n\tprivate getGroups(){\n\t\tthis.groups = {};\n\t\tthis.groupsWithMembers = [];\n\t\tthis.previous = \"\";\n\t\tthis.apiService.getGroups().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t console.log(data);\n\t\t if(data!==null){\n\t\t this.groups = data;\n\t\t for (var i = 0; i < this.objectKeys(data).length; i++) {\n\t\t\t\t\tlet tempGroupName = data[i]\n\t\t\t\t\tthis.apiService.getGroupDescription(tempGroupName).subscribe((data)=>{\n\t\t\t\t\t\tif(data!==null){\n\t\t\t\t\t\t\tthis.groupsWithMembers.push(data)\n\t\t\t\t\t\t\tthis.mdbTable.setDataSource(this.groupsWithMembers);\n\t\t \t\t\t\t\tthis.previous = this.mdbTable.getDataSource();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\tconsole.log(this.groupsWithMembers)\n\t\t\tthis.groups = this.groupsWithMembers;\n\t\t }\n\n\n\t\t});\n\t}\n\tprivate getListOfUsers(){\n\t\tthis.apiService.getUsers().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t\tif(data!==null){\n\t\t\t\tthis.dropdownList = Object.entries(data).map((e) => ( { \"id\":e[0],\"itemName\":e[0] } ));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getGroupDescription(group){\n\t\tthis.isEditMode(true);\n\t\tconsole.log(group)\n\t\tthis.apiService.getGroupDescription(group).subscribe((data)=>{\n\t\t\tif(data!==null){\n\t\t\t\tconsole.log(data)\n\t\t\t\tthis.groupToUpdate = data;\n\t\t\t\tthis.newGroupName = data[\"name\"]\n\t\t\t\tthis.newGroupPolicy = data[\"policy\"]\n\t\t\t\tthis.newGroupStatus = data[\"status\"]\n\t\t\t\tfor (var i = 0; i < data[\"members\"].length; i++) {\n\t\t\t\t\tvar tempMember = data[\"members\"][i];\n\t\t\t\t\tthis.selectedItems.push({\"id\":tempMember,\"itemName\":tempMember})\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getListOfPolicies(){\n\t\tthis.apiService.getPolicies().subscribe((data)=>{\n\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t this.policies = Object.keys(data);\n\t\t this.rawPolicies = data;\n\t\t});\n\t}\n\n\tprivate resetForm(){\n\t\tthis.newGroupName = \"\";\n\t\tthis.selectedItems = [];\n\t\tthis.newGroupPolicy = \"\";\n\t\tthis.newGroupStatus = \"\";\n\t}\n\n\tprivate markGroupToDelete(group){\n\t\tconsole.log(\"GROUP TO DELETE\", group);\n\n\t\tthis.groupToDelete = group\n\t}\n\n\tprivate deleteGroup(){\n\t\tconsole.log(\"GROUP TO DELETE >>>\", this.groupToDelete);\n\n\t\tthis.apiService.updateMembersGroup(this.groupToDelete,[],\"true\").subscribe((data)=>{\n\t\t\t this.apiService.validateAuthInResponse(data)\n\t if(data[\"Success\"]){\n\t this.toastr.success('Group: '+this.newGroupName+' has been removed', 'Success');\n\t this.usersToRemove = [];\n\t\t\t\t\tthis.refreshList();\n\t\t\t\t\tthis.groupToDelete = \"\";\n\t }else{\n\t this.toastr.error(JSON.stringify(data), 'Error while removing group');\n\t\t\t\t\tthis.refreshList();\n\t\t\t\t\tthis.groupToDelete = \"\";\n\t }\n\t });\n\t}\n\n\tprivate wipeGroupMembers(){\n\n\t\tthis.apiService.updateMembersGroup(this.newGroupName,this.usersToRemove,\"true\").subscribe((data)=>{\n\t\t\t this.apiService.validateAuthInResponse(data)\n\t if(data[\"Success\"]){\n\t this.toastr.success('Group: '+this.newGroupName+' members has been removed', 'Success');\n\t this.usersToRemove = [];\n\t }else{\n\t this.toastr.error(JSON.stringify(data), 'Error while removing members from group');\n\t }\n\t });\n\t}\n\n\tprivate updatePolicy(){\n\t\tif(this.newGroupPolicy !== null && this.newGroupPolicy != \"\"){\n\t \tthis.apiService.setPolicy(this.newGroupPolicy,this.newGroupName,\"true\").subscribe((data)=>{\n\t\t\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' policy has been set to '+this.newGroupPolicy, 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while setting policy to group');\n\t\t }\n\t\t });\n\t }\n\t}\n\n\tprivate updateStatus(){\n\t\tif(this.newGroupStatus !== null && this.newGroupStatus != \"\"){\n\t \tthis.apiService.setStatusGroup(this.newGroupName,this.newGroupStatus).subscribe((data)=>{\n\t\t\t\t\tthis.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' status has been set to '+this.newGroupStatus, 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while setting status to group');\n\t\t }\n\t\t });\n\t }\n\t}\n\n\tprivate refreshList(){\n\t\tthis.updatePolicy();\n\t\tthis.updateStatus();\n\t\tthis.getGroups();\n\t}\n\n\tprivate createGroup(){\n\t\tconsole.log(\"CREATE GROUP CALLED\")\n\t\tlet newMembers = []\n\t\tfor (var i = 0; i < this.selectedItems.length; i++) {\n\t\t\tnewMembers.push(this.selectedItems[i].itemName)\n\t\t}\n\n\t\t//remove users from group\n\t\tconsole.log(\"grouptoUpdate\",this.groupToUpdate);\n\n\t\tif(this.groupToUpdate!==null && this.groupToUpdate!=\"\" && this.groupToUpdate){\n\t\t\tif(this.usersToRemove.length > 0){\n\t\t\t\tthis.wipeGroupMembers()\n\t\t\t}\n\t\t}\n\n\t\t//add all new users to group\n\t\tif(newMembers.length > 0){\n\t\t\tthis.apiService.updateMembersGroup(this.newGroupName,newMembers,\"false\").subscribe((data)=>{\n\t\t\t\t this.apiService.validateAuthInResponse(data)\n\t\t if(data[\"Success\"]){\n\t\t this.toastr.success('Group: '+this.newGroupName+' has been created', 'Success');\n\t\t }else{\n\t\t this.toastr.error(JSON.stringify(data), 'Error while creating group');\n\t\t }\n\t\t this.refreshList();\n\t\t });\n\t\t}else{\n\t\t\tthis.refreshList();\n\t\t}\n this.isEditMode(false);\n this.groupToUpdate = {};\n\t}\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(items: any[], searchPolicy: string): any[] {\n\n if (!items) {\n return [];\n }\n if (!searchPolicy) {\n return items;\n }\n searchPolicy = searchPolicy.toLocaleLowerCase();\n\n return items.filter(it => {\n return it.toLocaleLowerCase().includes(searchPolicy);\n });\n }\n\n}\n","export default \"
\\n
\\n
\\n

Buckets

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\t\\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n\\t \\n \\n\\t \\n\\t \\t \\n\\t \\n\\t \\n \\n \\n \\n \\n \\n\\t
NameTagsCreation DateSizeQuotaEventOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n {{buckets[b].name}}\\n   \\n {{buckets[b].policy}}\\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n 0\\\">\\n
    \\n
  • {{tag}}: {{buckets[b].tags[tag]}}
  • \\n
\\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{buckets[b].info.creationDate | date : \\\"dd/MM/yy HH:mm:ss\\\" }}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\\\">\\n \\n {{(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)+'').length > 3 ? math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024/1024)+' Gb' : isNaN(math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024)) ? '–' : math.round(diskUsageInfo?.bucketsSizes[buckets[b].name]/1024/1024) +' Mb'}}\\n \\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && (diskUsageInfo?.bucketsSizes | json) != ({} | json)\\\">\\n \\n {{buckets[b].quota?.quotatype}}\\n {{buckets[b].quota?.quotatype}}\\n \\n 0\\\" mdbTooltip=\\\"{{buckets[b].quota?.quota}} bytes\\\" placement=\\\"top\\\">\\n {{(math.round(buckets[b].quota?.quota/1024/1024)+'').length > 3 ? math.round(buckets[b].quota?.quota/1024/1024/1024)+' Gb' : isNaN(math.round(buckets[b].quota?.quota/1024/1024)) ? '–' : math.round(buckets[b].quota?.quota/1024/1024) +' Mb'}}\\n \\n \\n ∞\\n \\n = mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex && serviceInfo?.sqsARN\\\">\\n \\n Lambda:\\n \\n {{c.Lambda}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n \\n Topic:\\n \\n {{c.Topic}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n \\n Queue:\\n \\n {{c.Queue}}
\\n
    \\n
  • \\n {{e}}\\n
  • \\n
\\n
\\n
\\n
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t \\t \\t \\n\\t \\t \\t \\n\\t \\t \\t \\n\\t \\t \\t \\n \\n \\n\\t \\t
\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Bucket Lifecycyle

\\n
\\n
\\n
\\n
\\n
\\n This bucket already have a lifecycyle policy, you can export it as JSON by clicking on \\\"dowload icon\\\" >\\n \\n
\\n Or override it by upload a new lifecycle policy.\\n
\\n
\\n Lifecycle policy is structrured xml file. You can use examples from Minio\\n documentation. Or use an AWS S3 documentation\\n Object Lifecycle Management\\n
\\n
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button bucket {{bucketToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket Notifications

\\n
\\n
\\n Are you shure?
After you click on \\\"remove\\\" button bucket {{bucketToRemoveNotifications}} notifications will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Bucket Quota Limits

\\n
\\n
\\n Are you shure?
After you click on \\\"remove\\\" button quota for bucket {{bucketToRemoveQuota}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Encryption

\\n
\\n
\\n Are you shure?
After you click on \\\"remove\\\" button encryption for bucket {{bucketToRemoveEncryption}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Create Bucket

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n You can pass multiple names with \\\",\\\" delimiter\\n
\\n
Policy
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
Encryption
\\n

\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
Tags
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\t\\t\\t\\t
\\n
\\n {{tag}}: {{newBucketTagsList[tag]}}\\n
\\n
Quota
\\n \\n\\n
\\n \\n \\t\\t\\t\\t\\t\\t\\t
\\n\\n
\\n \\n In \\\"fifo\\\" mode - old data automatically will be removed when you reach quota limit.
\\n In \\\"hard\\\" mode - you can't add new data to bucket if quota limit reached.\\n
\\n\\n
\\n \\t\\t\\t\\t\\t\\n
\\n
Bytes
\\n
\\n
\\n
\\n
\\n
Events section
\\n

\\n
\\n \\t\\t\\t\\t\\t\\t\\t\\t\\t\\n \\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Update Bucket

\\n
\\n
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
Policy
\\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
Encryption
\\n

\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
Tags
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\t\\t\\t\\t
\\n
\\n {{tag}}: {{newBucketTagsList[tag]}}\\n
\\n
\\n
Quota section
\\n \\n
\\n \\n \\t\\t\\t\\t\\t\\t\\t
\\n\\n
\\n \\n In \\\"fifo\\\" mode - old data automatically will be removed when you reach quota limit.
\\n In \\\"hard\\\" mode - you can't add new data to bucket if quota limit reached.\\n
\\n\\n
\\n \\t\\t\\t\\t\\t\\n
\\n
Bytes
\\n
\\n
\\n
\\n
\\n
Events section
\\n

\\n
\\n \\t\\t\\t\\t\\t\\t\\t\\t\\t\\n \\t\\t\\t\\t\\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n \\t\\t\\t\\t\\t\\n \\t\\t\\t\\t
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\";","//loader.interceptor.ts\nimport { Component, OnInit } from '@angular/core';\nimport { LoaderService } from '../loader.service';\n\n@Component({\nselector: 'app-loading',\ntemplateUrl: './loader.component.html',\nstyleUrls: ['./loader.component.scss']\n})\nexport class LoaderComponent implements OnInit {\n\nloading: boolean;\nerror: boolean;\nconstructor(private loaderService: LoaderService) {\n this.loaderService.isLoading.subscribe((v) => {\n this.loading = v;\n this.error = this.loaderService.isError;\n });\n}\nngOnInit() {\n}\n\n}\n","export default \"
\\n\\t
\\n\\t\\t
\\n\\t\\t

Policies

\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t     \\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t
NameActionPrincipalEffectResourceConditionsOptions
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectKeys(policies[pol])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • {{action}}
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t{{policies[pol].Statement.Principal}}\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • {{st.Effect}}
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • {{resource}}
    • \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
          \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t \\n\\t\\t \\t\\t \\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Remove Policy

\\n
\\n
\\n Are you shure?
After you click on \\\"Delete\\\" button policy {{policyToDelete}} will be removed.\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Upload Policy

\\n
\\n
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Policy

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

{{modalCreateEditTitle}}

Switch to interface
\\n
\\n
\\n \\t\\n \\t\\t
\\n\\t\\t\\t\\t\\t
 
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t \\t
\\n In Edit mode you can make a copy of policy - Just rename it!\\n
\\n\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
0\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
0\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t Principal\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
Buckets section
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t arn:aws:s3:::\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t /\\\" [(ngModel)]=\\\"newPolicy.bucket\\\" aria-label=\\\"Recipient's username\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t aria-describedby=\\\"s3-prefix\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
BucketOptions
{{bst}}
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
Conditions section
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
Condition and options
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}  \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
 
\\n\\t\\t\\t\\t\\t
\\n\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t
EffectActionResourceConditionsOptions
{{st.Effect}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{action}}
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • {{resource}}
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{condition}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • {{con}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{conKeyVal}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
      \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
  • \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t  \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n \\n
\\n \\n
\\n
\\n
\\n\";","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { ApiService } from '../api.service';\nimport { FormControl, FormGroup, Validators, ReactiveFormsModule } from \"@angular/forms\";\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n\n@Component({\n selector: 'app-users',\n templateUrl: './users.component.html',\n styleUrls: ['./users.component.scss']\n})\nexport class UsersComponent implements OnInit, AfterViewInit {\n validatingForm: FormGroup;\n updateUser: FormGroup;\n users = {};\n usersRaw = {};\n userToDelete;\n userToUpdate;\n objectKeys = Object.keys;\n objectValues = Object.values;\n jsn = JSON;\n policies;\n updateStatusValues = ['enabled','disabled'];\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n }\n\n ngOnInit() {\n \tthis.getListOfUsers()\n \tthis.getListOfPolicies()\n this.resetForm()\n this.updateUserFrom()\n }\n\n searchItems() {\n console.log(this.searchText)\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.users = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.users = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n get newUserAccess() {\n\treturn this.validatingForm.get('newUserAccess');\n }\n\n get newUserSecret() {\n\treturn this.validatingForm.get('newUserSecret');\n }\n\n get newUserPolicy() {\n\treturn this.validatingForm.get('newUserPolicy');\n }\n\n private generatePassword(length) {\n var charset = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n var retVal = \"\";\n for (var i = 0, n = charset.length; i < length; ++i) {\n retVal += charset.charAt(Math.floor(Math.random() * n));\n }\n\n return retVal;\n }\n\n get accessKeyUpdate() {\n return this.updateUser.get('accessKeyUpdate');\n }\n\n get secretKeyUpdate() {\n return this.updateUser.get('secretKeyUpdate');\n }\n\n get policyUpdate() {\n return this.updateUser.get('policyUpdate');\n }\n\n get statusUpdate() {\n return this.updateUser.get('statusUpdate');\n }\n\n private updateUserFrom(){\n this.updateUser = new FormGroup({\n accessKeyUpdate: new FormControl({value: '', disabled: true}, Validators.required),\n secretKeyUpdate: new FormControl(''),\n policyUpdate: new FormControl('', Validators.required),\n statusUpdate: new FormControl('', Validators.required)\n });\n }\n\n private resetForm(){\n \tthis.validatingForm = new FormGroup({\n newUserAccess: new FormControl(this.generatePassword(16), Validators.minLength(5)),\n newUserSecret: new FormControl(this.generatePassword(24), Validators.minLength(10)),\n newUserPolicy: new FormControl('',Validators.minLength(0))\n });\n }\n\n private getListOfUsers(){\n \tthis.apiService.getUsers().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data)\n this.usersRaw = data;\n const arrayOfUsers = Object.entries(data).map((e) => ( { [e[0]]: e[1] } ));\n this.users = arrayOfUsers;\n this.mdbTable.setDataSource(arrayOfUsers);\n console.log(arrayOfUsers)\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n\n private getListOfPolicies(){\n \tthis.apiService.getPolicies().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n this.policies = Object.keys(data);\n });\n }\n\n private createUser(){\n \tvar userAccess = this.newUserAccess.value;\n \tvar userSecret = this.newUserSecret.value;\n \tvar userPolicy = this.newUserPolicy.value;\n\n \tconsole.log(userPolicy)\n\n \tif(userPolicy!=''){\n \t\tthis.apiService.addUserExtended(userAccess,userSecret,userPolicy).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n\t console.log(data);\n\t this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+userAccess+' with policy '+userPolicy+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating user');\n }\n\t });\n \t}else{\n \t\tthis.apiService.addUser(userAccess,userSecret).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n\t console.log(data);\n\t this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+userAccess+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating user');\n }\n\t });\n \t}\n }\n\n private setStatusUser(accessKey,status){\n \tif(status == 'enabled'){\n \t\tstatus = 'disabled'\n \t}else{\n \t\tstatus = 'enabled'\n \t}\n \tthis.apiService.setStatusUser(accessKey,status).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('User: '+accessKey+' status has changed to '+status, 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while changing state for user');\n }\n this.getListOfUsers();\n });\n }\n\n private deleteUserPrepare(accessKey){\n \tthis.userToDelete = accessKey\n }\n\n private updateUserPrepare(accessKey){\n this.userToUpdate = accessKey\n this.updateUser.patchValue({'accessKeyUpdate': accessKey});\n if(this.usersRaw[accessKey]['policyName']){\n this.updateUser.patchValue({'policyUpdate': this.usersRaw[accessKey]['policyName']});\n }\n if(this.usersRaw[accessKey]['status']){\n this.updateUser.patchValue({'statusUpdate': this.usersRaw[accessKey]['status']});\n }\n console.log(this.usersRaw[accessKey])\n }\n\n private updateGenNewPassword(){\n this.updateUser.patchValue({'secretKeyUpdate': this.generatePassword(24)});\n }\n\n private updateUserSave(){\n var updatedSecret = this.updateUser.value.secretKeyUpdate;\n var updatedPolicy = this.updateUser.value.policyUpdate;\n var updatedStatus = this.updateUser.value.statusUpdate;\n\n this.apiService.updateUser(this.userToUpdate,updatedSecret,updatedPolicy,updatedStatus).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.getListOfUsers();\n if(data[\"Success\"]){\n this.toastr.success('User: '+this.userToUpdate+' has been updated', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while updating user');\n }\n });\n }\n\n\n private deleteUser(){\n \tthis.apiService.deleteUser(this.userToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('User: '+this.userToDelete+' has been deleted', 'Success');\n }\n this.updateUserFrom();\n this.getListOfUsers();\n });\n }\n\n}\n","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';\nimport { ApiService } from '../api.service';\nimport { MdbTablePaginationComponent, MdbTableDirective } from 'angular-bootstrap-md';\nimport { ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'app-policies',\n templateUrl: './policies.component.html',\n styleUrls: ['./policies.component.scss']\n})\nexport class PoliciesComponent implements OnInit {\n objectKeys = Object.keys;\n objectValues = Object.values;\n policies = {};\n policiesRaw = {};\n b64decode;\n rawView = '';\n policyToDelete;\n policyToUpdate;\n modalEditMode;\n jsn = JSON;\n uploadPolicyName;\n uploadPolicyFile;\n uploadPolicyFileName;\n downloadJsonHref;\n modalCreateEditTitle;\n modalCreateEditButtonText;\n\n dropdownActionList = [];\n dropdownAdminList = [];\n dropdownConditionList = [];\n dropdownConditionKeyList = [];\n\n selectedActions = [];\n selectedAdmins = [];\n selectedCondition = [];\n selectedConditionKey = [];\n\n dropdownActionSettings = {};\n dropdownAdminSettings = {};\n dropdownConditionSettings = {};\n dropdownConditionKeySettings = {};\n\n advancedInterface = false;\n advancedInterfaceLabel = \"advanced\"\n\n newPolicy = {\n \tname:\"\",\n \teffect:\"allow\",\n \tbucket:\"\",\n };\n\n newPolicyRaw = {\n \tVersion:\"\",\n \tStatement: []\n }\n\n newStatement = {\n Action: [],\n Effect: \"\",\n Resource: [],\n Condition: {},\n Principal: \"\"\n }\n\n newConditionValue = \"\"\n\n @ViewChild(MdbTablePaginationComponent, { static: true }) mdbTablePagination: MdbTablePaginationComponent;\n @ViewChild(MdbTableDirective, { static: true }) mdbTable: MdbTableDirective;\n previous: string;\n\n searchText: string = '';\n\n\n constructor(private apiService: ApiService, private cdRef: ChangeDetectorRef, private toastr: ToastrService, private sanitizer: DomSanitizer) { }\n\n @HostListener('input') oninput() {\n if(event && event['target'] !== undefined && event.target[\"id\"] !== undefined && event.target[\"id\"] == \"search\"){\n this.searchItems();\n }\n if(event && event['target'] !== undefined && event.target[\"name\"] !== undefined && event.target[\"name\"] == \"newPolicyName\"){\n if(this.modalEditMode){\n if(this.newPolicy.name == this.policyToUpdate){\n this.isEditMode(true)\n }else{\n this.isNowCopyMode();\n }\n }\n }\n\n }\n\n @ViewChild('uploadPolicyFile', { static: true })\n uploadFileInput: any;\n\n ngOnInit() {\n \tthis.getPolicies()\n\n\n \tthis.dropdownActionList = [\n {\"id\":1,\"itemName\":\"s3:AbortMultipartUpload\"},\n {\"id\":2,\"itemName\":\"s3:CreateBucket\"},\n {\"id\":3,\"itemName\":\"s3:DeleteBucket\"},\n {\"id\":4,\"itemName\":\"s3:ForceDeleteBucket\"},\n {\"id\":5,\"itemName\":\"s3:DeleteBucketPolicy\"},\n {\"id\":6,\"itemName\":\"s3:DeleteObject\"},\n {\"id\":7,\"itemName\":\"s3:GetBucketLocation\"},\n {\"id\":8,\"itemName\":\"s3:GetBucketNotification\"},\n {\"id\":9,\"itemName\":\"s3:GetBucketPolicy\"},\n {\"id\":10,\"itemName\":\"s3:GetObject\"},\n {\"id\":11,\"itemName\":\"s3:HeadBucket\"},\n {\"id\":12,\"itemName\":\"s3:ListAllMyBuckets\"},\n {\"id\":13,\"itemName\":\"s3:ListBucket\"},\n {\"id\":14,\"itemName\":\"s3:ListBucketVersions\"},\n {\"id\":15,\"itemName\":\"s3:ListBucketMultipartUploads\"},\n {\"id\":16,\"itemName\":\"s3:ListenNotification\"},\n {\"id\":17,\"itemName\":\"s3:ListenBucketNotification\"},\n {\"id\":18,\"itemName\":\"s3:ListMultipartUploadParts\"},\n {\"id\":19,\"itemName\":\"s3:PutLifecycleConfiguration\"},\n {\"id\":20,\"itemName\":\"s3:GetLifecycleConfiguration\"},\n {\"id\":21,\"itemName\":\"s3:PutBucketNotification\"},\n {\"id\":22,\"itemName\":\"s3:PutBucketPolicy\"},\n {\"id\":23,\"itemName\":\"s3:PutObject\"},\n {\"id\":24,\"itemName\":\"s3:DeleteObjectVersion\"},\n {\"id\":25,\"itemName\":\"s3:DeleteObjectVersionTagging\"},\n {\"id\":26,\"itemName\":\"s3:GetObjectVersion\"},\n {\"id\":27,\"itemName\":\"s3:GetObjectVersionTagging\"},\n {\"id\":28,\"itemName\":\"s3:PutObjectVersionTagging\"},\n {\"id\":29,\"itemName\":\"s3:BypassGovernanceRetention\"},\n {\"id\":30,\"itemName\":\"s3:PutObjectRetention\"},\n {\"id\":31,\"itemName\":\"s3:GetObjectRetention\"},\n {\"id\":32,\"itemName\":\"s3:GetObjectLegalHold\"},\n {\"id\":33,\"itemName\":\"s3:PutObjectLegalHold\"},\n {\"id\":34,\"itemName\":\"s3:GetBucketObjectLockConfiguration\"},\n {\"id\":35,\"itemName\":\"s3:PutBucketObjectLockConfiguration\"},\n {\"id\":36,\"itemName\":\"s3:GetBucketTagging\"},\n {\"id\":37,\"itemName\":\"s3:PutBucketTagging\"},\n {\"id\":38,\"itemName\":\"s3:GetObjectTagging\"},\n {\"id\":39,\"itemName\":\"s3:PutObjectTagging\"},\n {\"id\":40,\"itemName\":\"s3:DeleteObjectTagging\"},\n {\"id\":41,\"itemName\":\"s3:PutEncryptionConfiguration\"},\n {\"id\":42,\"itemName\":\"s3:GetEncryptionConfiguration\"},\n {\"id\":43,\"itemName\":\"s3:PutBucketVersioning\"},\n {\"id\":44,\"itemName\":\"s3:GetBucketVersioning\"},\n {\"id\":45,\"itemName\":\"s3:GetReplicationConfiguration\"},\n {\"id\":46,\"itemName\":\"s3:PutReplicationConfiguration\"},\n {\"id\":47,\"itemName\":\"s3:ReplicateObject\"},\n {\"id\":48,\"itemName\":\"s3:ReplicateDelete\"},\n {\"id\":49,\"itemName\":\"s3:ReplicateTags\"},\n {\"id\":50,\"itemName\":\"s3:GetObjectVersionForReplication\"}\n ];\n\n this.dropdownActionSettings = {\n \t\tsingleSelection: false,\n \t\ttext:\"Select Actions\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n\n this.dropdownAdminList = [\n {\"id\":1,\"itemName\":\"admin:ConfigUpdate\"},\n {\"id\":2,\"itemName\":\"admin:CreateUser\"},\n {\"id\":3,\"itemName\":\"admin:DeleteUser\"},\n {\"id\":4,\"itemName\":\"admin:ListUsers\"},\n {\"id\":5,\"itemName\":\"admin:EnableUser\"},\n {\"id\":6,\"itemName\":\"admin:DisableUser\"},\n {\"id\":7,\"itemName\":\"admin:GetUser\"},\n {\"id\":8,\"itemName\":\"admin:ServerInfo\"},\n {\"id\":9,\"itemName\":\"admin:ServerUpdate\"},\n {\"id\":10,\"itemName\":\"admin:StorageInfo\"},\n {\"id\":11,\"itemName\":\"admin:DataUsageInfo\"},\n {\"id\":12,\"itemName\":\"admin:TopLocks\"},\n {\"id\":13,\"itemName\":\"admin:OBDInfo\"},\n {\"id\":14,\"itemName\":\"admin:Profiling\"},\n {\"id\":15,\"itemName\":\"admin:ServerTrace\"},\n {\"id\":16,\"itemName\":\"admin:ConsoleLog\"},\n {\"id\":17,\"itemName\":\"admin:KMSKeyStatus\"},\n {\"id\":18,\"itemName\":\"admin:AddUserToGroup\"},\n {\"id\":19,\"itemName\":\"admin:RemoveUserFromGroup\"},\n {\"id\":20,\"itemName\":\"admin:GetGroup\"},\n {\"id\":21,\"itemName\":\"admin:ListGroups\"},\n {\"id\":22,\"itemName\":\"admin:EnableGroup\"},\n {\"id\":23,\"itemName\":\"admin:DisableGroup\"},\n {\"id\":24,\"itemName\":\"admin:CreatePolicy\"},\n {\"id\":25,\"itemName\":\"admin:DeletePolicy\"},\n {\"id\":26,\"itemName\":\"admin:GetPolicy\"},\n {\"id\":27,\"itemName\":\"admin:AttachUserOrGroupPolicy\"},\n {\"id\":28,\"itemName\":\"admin:ListUserPolicies\"}\n ];\n\n this.dropdownAdminSettings = {\n singleSelection: false,\n text:\"Select Admin actions for statement\",\n selectAllText:'Select All',\n unSelectAllText:'UnSelect All',\n enableSearchFilter: true\n };\n\n \tthis.dropdownConditionList = [\n {\"id\":1,\"itemName\":\"ArnEquals\"},\n {\"id\":2,\"itemName\":\"ArnEqualsIfExists\"},\n {\"id\":3,\"itemName\":\"ArnLike\"},\n {\"id\":4,\"itemName\":\"ArnLikeIfExists\"},\n {\"id\":5,\"itemName\":\"ArnNotEquals\"},\n {\"id\":6,\"itemName\":\"ArnNotEqualsIfExists\"},\n {\"id\":7,\"itemName\":\"ArnNotLike\"},\n {\"id\":8,\"itemName\":\"ArnNotLikeIfExists\"},\n {\"id\":9,\"itemName\":\"BinaryEquals\"},\n {\"id\":10,\"itemName\":\"BinaryEqualsIfExists\"},\n {\"id\":11,\"itemName\":\"BinaryNotEquals\"},\n {\"id\":12,\"itemName\":\"BinaryNotEqualsIfExists\"},\n {\"id\":13,\"itemName\":\"Bool\"},\n {\"id\":14,\"itemName\":\"BoolIfExists\"},\n {\"id\":15,\"itemName\":\"DateEquals\"},\n {\"id\":16,\"itemName\":\"DateEqualsIfExists\"},\n {\"id\":17,\"itemName\":\"DateGreaterThan\"},\n {\"id\":18,\"itemName\":\"DateGreaterThanEquals\"},\n {\"id\":19,\"itemName\":\"DateGreaterThanEqualsIfExists\"},\n {\"id\":20,\"itemName\":\"DateGreaterThanIfExists\"},\n {\"id\":21,\"itemName\":\"DateLessThan\"},\n {\"id\":22,\"itemName\":\"DateLessThanEquals\"},\n {\"id\":23,\"itemName\":\"DateLessThanEqualsIfExists\"},\n {\"id\":24,\"itemName\":\"DateLessThanIfExists\"},\n {\"id\":25,\"itemName\":\"DateNotEquals\"},\n {\"id\":26,\"itemName\":\"DateNotEqualsIfExists\"},\n {\"id\":27,\"itemName\":\"IpAddress\"},\n {\"id\":28,\"itemName\":\"IpAddressIfExists\"},\n {\"id\":29,\"itemName\":\"NotIpAddress\"},\n {\"id\":30,\"itemName\":\"NotIpAddressIfExists\"},\n {\"id\":31,\"itemName\":\"Null\"},\n {\"id\":32,\"itemName\":\"NumericEquals\"},\n {\"id\":33,\"itemName\":\"NumericEqualsIfExists\"},\n {\"id\":34,\"itemName\":\"NumericGreaterThan\"},\n {\"id\":35,\"itemName\":\"NumericGreaterThanEquals\"},\n {\"id\":36,\"itemName\":\"NumericGreaterThanEqualsIfExists\"},\n {\"id\":37,\"itemName\":\"NumericGreaterThanIfExists\"},\n {\"id\":38,\"itemName\":\"NumericLessThan\"},\n {\"id\":39,\"itemName\":\"NumericLessThanEquals\"},\n {\"id\":40,\"itemName\":\"NumericLessThanEqualsIfExists\"},\n {\"id\":41,\"itemName\":\"NumericLessThanIfExists\"},\n {\"id\":42,\"itemName\":\"NumericNotEquals\"},\n {\"id\":43,\"itemName\":\"NumericNotEqualsIfExists\"},\n {\"id\":44,\"itemName\":\"StringEquals\"},\n {\"id\":45,\"itemName\":\"StringEqualsIfExists\"},\n {\"id\":46,\"itemName\":\"StringEqualsIgnoreCase\"},\n {\"id\":47,\"itemName\":\"StringEqualsIgnoreCaseIfExists\"},\n {\"id\":48,\"itemName\":\"StringLike\"},\n {\"id\":49,\"itemName\":\"StringLikeIfExists\"},\n {\"id\":50,\"itemName\":\"StringNotEquals\"},\n {\"id\":51,\"itemName\":\"StringNotEqualsIfExists\"},\n {\"id\":52,\"itemName\":\"StringNotEqualsIgnoreCase\"},\n {\"id\":53,\"itemName\":\"StringNotEqualsIgnoreCaseIfExists\"},\n {\"id\":54,\"itemName\":\"StringNotLike\"},\n {\"id\":55,\"itemName\":\"StringNotLikeIfExists\"}\n ];\n\n this.dropdownConditionSettings = {\n \t\tsingleSelection: true,\n \t\ttext:\"Select Condition\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n\n \tthis.dropdownConditionKeyList = [\n {\"id\":1,\"itemName\":\"aws:CurrentTime\"},\n {\"id\":2,\"itemName\":\"aws:EpochTime\"},\n {\"id\":3,\"itemName\":\"aws:MultiFactorAuthAge\"},\n {\"id\":4,\"itemName\":\"aws:MultiFactorAuthPresent\"},\n {\"id\":5,\"itemName\":\"aws:PrincipalArn\"},\n {\"id\":6,\"itemName\":\"aws:PrincipalOrgID\"},\n {\"id\":7,\"itemName\":\"aws:PrincipalTag/${TagKey}\"},\n {\"id\":8,\"itemName\":\"aws:PrincipalType\"},\n {\"id\":9,\"itemName\":\"aws:Referer\"},\n {\"id\":10,\"itemName\":\"aws:RequestTag/${TagKey}\"},\n {\"id\":11,\"itemName\":\"aws:RequestedRegion\"},\n {\"id\":12,\"itemName\":\"aws:SecureTransport\"},\n {\"id\":13,\"itemName\":\"aws:SourceAccount\"},\n {\"id\":14,\"itemName\":\"aws:SourceArn\"},\n {\"id\":15,\"itemName\":\"aws:SourceIp\"},\n {\"id\":16,\"itemName\":\"aws:SourceVpc\"},\n {\"id\":17,\"itemName\":\"aws:SourceVpce\"},\n {\"id\":18,\"itemName\":\"aws:TagKeys\"},\n {\"id\":19,\"itemName\":\"aws:TokenIssueTime\"},\n {\"id\":20,\"itemName\":\"aws:UserAgent\"},\n {\"id\":21,\"itemName\":\"aws:userid\"},\n {\"id\":22,\"itemName\":\"aws:username\"},\n {\"id\":23,\"itemName\":\"s3:AccessPointNetworkOrigin\"},\n {\"id\":24,\"itemName\":\"s3:DataAccessPointAccount\"},\n {\"id\":25,\"itemName\":\"s3:DataAccessPointArn\"},\n {\"id\":26,\"itemName\":\"s3:ExistingJobOperation\"},\n {\"id\":27,\"itemName\":\"s3:ExistingJobPriority\"},\n {\"id\":28,\"itemName\":\"s3:ExistingObjectTag/\"},\n {\"id\":29,\"itemName\":\"s3:JobSuspendedCause\"},\n {\"id\":30,\"itemName\":\"s3:LocationConstraint\"},\n {\"id\":31,\"itemName\":\"s3:RequestJobOperation\"},\n {\"id\":32,\"itemName\":\"s3:RequestJobPriority\"},\n {\"id\":33,\"itemName\":\"s3:RequestObjectTag/\"},\n {\"id\":34,\"itemName\":\"s3:RequestObjectTagKeys\"},\n {\"id\":35,\"itemName\":\"s3:VersionId\"},\n {\"id\":36,\"itemName\":\"s3:authtype\"},\n {\"id\":37,\"itemName\":\"s3:delimiter\"},\n {\"id\":38,\"itemName\":\"s3:locationconstraint\"},\n {\"id\":39,\"itemName\":\"s3:max-keys\"},\n {\"id\":40,\"itemName\":\"s3:object-lock-legal-hold\"},\n {\"id\":41,\"itemName\":\"s3:object-lock-mode\"},\n {\"id\":42,\"itemName\":\"s3:object-lock-remaining-retention-days\"},\n {\"id\":43,\"itemName\":\"s3:object-lock-retain-until-date\"},\n {\"id\":44,\"itemName\":\"s3:prefix\"},\n {\"id\":45,\"itemName\":\"s3:signatureage\"},\n {\"id\":46,\"itemName\":\"s3:signatureversion\"},\n {\"id\":47,\"itemName\":\"s3:versionid\"},\n {\"id\":48,\"itemName\":\"s3:x-amz-acl\"},\n {\"id\":49,\"itemName\":\"s3:x-amz-content-sha256\"},\n {\"id\":50,\"itemName\":\"s3:x-amz-copy-source\"},\n {\"id\":51,\"itemName\":\"s3:x-amz-grant-full-control\"},\n {\"id\":52,\"itemName\":\"s3:x-amz-grant-read\"},\n {\"id\":53,\"itemName\":\"s3:x-amz-grant-read-acp\"},\n {\"id\":54,\"itemName\":\"s3:x-amz-grant-write\"},\n {\"id\":55,\"itemName\":\"s3:x-amz-grant-write-acp\"},\n {\"id\":56,\"itemName\":\"s3:x-amz-metadata-directive\"},\n {\"id\":57,\"itemName\":\"s3:x-amz-server-side-encryption\"},\n {\"id\":58,\"itemName\":\"s3:x-amz-server-side-encryption-aws-kms-key-id\"},\n {\"id\":59,\"itemName\":\"s3:x-amz-storage-class\"},\n {\"id\":60,\"itemName\":\"s3:x-amz-website-redirect-location\"}\n ];\n\n this.dropdownConditionKeySettings = {\n \t\tsingleSelection: true,\n \t\ttext:\"Select Condition Key\",\n \t\tselectAllText:'Select All',\n \t\tunSelectAllText:'UnSelect All',\n \t\tenableSearchFilter: true\n\t };\n }\n\n switchAdvanced(){\n if(this.advancedInterface){\n this.advancedInterface = false;\n this.advancedInterfaceLabel = \"Advanced\"\n }else{\n this.advancedInterface = true;\n this.advancedInterfaceLabel = \"Basic\"\n }\n }\n\n\tonActionItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedActions);\n\t}\n\tonActionItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedActions);\n\t}\n\tonActionSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonActionDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n\tonAdminItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedAdmins);\n\t}\n\tonAdminItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedAdmins);\n\t}\n\tonAdminSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonAdminDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n\n //condition select actions\n onConditionItemSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedCondition);\n\t}\n\tonConditionItemDeSelect(item:any){\n\t console.log(item);\n\t console.log(this.selectedCondition);\n\t}\n\tonConditionSelectAll(items: any){\n\t console.log(items);\n\t}\n\tonConditionDeSelectAll(items: any){\n\t console.log(items);\n\t}\n\n //condition key select actions\n onConditionKeyItemSelect(item:any){\n console.log(item);\n console.log(this.selectedConditionKey);\n }\n onConditionKeyItemDeSelect(item:any){\n console.log(item);\n console.log(this.selectedConditionKey);\n }\n onConditionKeySelectAll(items: any){\n console.log(items);\n }\n onConditionKeyDeSelectAll(items: any){\n console.log(items);\n }\n\n\n searchItems() {\n console.log(this.searchText)\n const prev = this.mdbTable.getDataSource();\n\n if (!this.searchText) {\n this.mdbTable.setDataSource(this.previous);\n this.policies = this.mdbTable.getDataSource();\n }\n\n if (this.searchText) {\n this.policies = this.mdbTable.searchLocalDataBy(this.searchText);\n this.mdbTable.setDataSource(prev);\n }\n }\n\n ngAfterViewInit() {\n this.mdbTablePagination.setMaxVisibleItemsNumberTo(10);\n\n this.mdbTablePagination.calculateFirstItemIndex();\n this.mdbTablePagination.calculateLastItemIndex();\n this.cdRef.detectChanges();\n }\n\n private resetPloicyForm(removeName){\n \tconsole.log(removeName);\n \tthis.selectedActions = [];\n \tthis.selectedAdmins = []\n \tif(!removeName){\n \t\tthis.newPolicy.effect = \"Allow\"\n\t\t this.newPolicy.bucket = \"\"\n \t}else{\n \t\tthis.newPolicy.name = \"\",\n \t\tthis.newPolicy.effect = \"Allow\"\n \t\tthis.newPolicy.bucket = \"\"\n \t}\n\n this.newStatement = {\n Action: [],\n Effect: \"\",\n Resource: [],\n Condition: {},\n Principal: \"\"\n }\n\n }\n\n private getPolicies(){\n \tthis.apiService.getPolicies().subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.policiesRaw = data;\n const arrayOfPolicies = Object.entries(data).map((e) => ( { [e[0]]: e[1] } ));\n this.policies = arrayOfPolicies;\n this.mdbTable.setDataSource(arrayOfPolicies);\n console.log(arrayOfPolicies)\n this.previous = this.mdbTable.getDataSource();\n });\n }\n\n private deletePolicy(){\n \tthis.apiService.deletePolicy(this.policyToDelete).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n this.getPolicies();\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.policyToDelete+' has been deleted', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while deleting policy');\n }\n });\n }\n\n private downloadPolicy(jsonObj) {\n var theJSON = JSON.stringify(jsonObj);\n console.log(\"theJSON>>>>>>>>>>>\",theJSON);\n var uri = this.sanitizer.bypassSecurityTrustUrl(\"data:text/json;charset=UTF-8,\" + encodeURIComponent(theJSON));\n this.downloadJsonHref = uri;\n }\n\n private rawPrepare(obj){\n \tthis.rawView = obj;\n }\n\n private deletePolicyPrepare(policy){\n \tthis.policyToDelete = policy\n }\n\n private prepareNewPolicyRaw(){\n \tthis.newPolicyRaw = {\n\t \tVersion:\"2012-10-17\",\n\t \tStatement: []\n \t}\n }\n\n private removeCondition(valueId,keyName,conditionName){\n console.log(this.newStatement)\n console.log(valueId,keyName,conditionName)\n this.newStatement.Condition[conditionName][keyName].splice(valueId,1)\n }\n\n private addCondition(){\n console.log(this.selectedCondition[0].itemName)\n console.log(this.selectedConditionKey[0].itemName)\n console.log(this.newConditionValue)\n if(!this.newStatement.Condition){\n this.newStatement.Condition = {}\n }\n if(this.newStatement.Condition[this.selectedCondition[0].itemName]){\n if(this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName]){\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }else{\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName] = []\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }\n }else{\n this.newStatement.Condition[this.selectedCondition[0].itemName] = {}\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName] = []\n this.newStatement.Condition[this.selectedCondition[0].itemName][this.selectedConditionKey[0].itemName].push(this.newConditionValue)\n }\n\n this.selectedCondition = []\n this.selectedConditionKey = []\n this.newConditionValue = \"\"\n console.log(this.newStatement.Condition)\n }\n\n\n private addStatement(){\n console.log(\"called add statement\");\n\n if(this.selectedActions.length>0){\n \tif(this.selectedActions.length == this.dropdownActionList.length){\n \t\tthis.newStatement.Action.push(\"s3:*\")\n \t}else{\n \t \tfor (var i = 0; i < this.selectedActions.length; i++) {\n \t \t\tthis.newStatement.Action.push(this.selectedActions[i].itemName)\n \t \t}\n \t }\n }else{\n if(this.selectedAdmins.length == this.dropdownAdminList.length){\n \t\tthis.newStatement.Action.push(\"admin:*\")\n \t}else{\n \t \tfor (var i = 0; i < this.selectedAdmins.length; i++) {\n \t \t\tthis.newStatement.Action.push(this.selectedAdmins[i].itemName)\n \t \t}\n \t }\n }\n \tthis.newStatement.Effect = this.newPolicy.effect\n\n \tconsole.log(this.newStatement)\n if(this.newStatement.Condition && Object.entries(this.newStatement.Condition).length === 0 && this.newStatement.Condition.constructor === Object){\n console.log(\"Condition removed cause empty\")\n delete this.newStatement.Condition\n }else{\n if(!this.newStatement.Principal || this.newStatement.Principal == \"\"){\n console.log(\"Principal set to * cause condition not empty\")\n this.newStatement.Principal = \"*\"\n }\n }\n\n \tthis.newPolicyRaw.Statement.push(this.newStatement);\n \tconsole.log(this.newPolicyRaw)\n\n \tthis.resetPloicyForm(false);\n }\n\n private editStatement(i){\n console.log(\"called Edit Statement\");\n\n this.newStatement = this.newPolicyRaw.Statement[i]\n this.newPolicy.effect = this.newPolicyRaw.Statement[i].Effect\n\n switch ((this.newStatement.Action[0]).substring(0, 3)) {\n case \"s3:\":\n if(this.newStatement.Action[0] == \"s3:*\"){\n for (var g = 0; g < this.dropdownActionList.length; g++) {\n this.selectedActions.push({\"id\":this.dropdownActionList[g].id,\"itemName\":this.dropdownActionList[g].itemName})\n }\n }else{\n for (var g = 0; g < this.newStatement.Action.length; g++) {\n this.selectedActions.push({\"id\":g,\"itemName\":this.newStatement.Action[g]})\n }\n }\n break;\n case \"adm\":\n if(this.newStatement.Action[0] == \"admin:*\"){\n for (var g = 0; g < this.dropdownAdminList.length; g++) {\n this.selectedAdmins.push({\"id\":this.dropdownAdminList[g].id,\"itemName\":this.dropdownAdminList[g].itemName})\n }\n }else{\n for (var g = 0; g < this.newStatement.Action.length; g++) {\n this.selectedAdmins.push({\"id\":g,\"itemName\":this.newStatement.Action[g]})\n }\n }\n break;\n }\n\n\n this.newStatement.Action = []\n this.newPolicyRaw.Statement.splice(i,1)\n }\n\n private addBucketStatement(){\n this.newStatement.Resource.push(\"arn:aws:s3:::\"+this.newPolicy.bucket)\n this.newPolicy.bucket = ''\n }\n\n private removeStatement(i){\n \tthis.newPolicyRaw.Statement.splice(i,1)\n }\n\n private removeBucketStatement(i){\n this.newStatement.Resource.splice(i,1)\n }\n\n private fileChanged(e) {\n console.log(\"eventTriggered\");\n\n this.uploadPolicyFile = e.target.files[0];\n this.uploadPolicyFileName = e.target.files[0].name;\n }\n\n private uploadPolicy(){\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n console.log(fileReader.result);\n let policyFileString = ((fileReader.result).toString()).replace(/\\n/g, ' ').replace(/\\r/g, ' ')\n this.apiService.addPolicy(this.uploadPolicyName,policyFileString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newPolicy.name+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n this.getPolicies();\n });\n }\n fileReader.readAsText(this.uploadPolicyFile);\n }\n\n private resetUploadForm(){\n this.uploadFileInput.nativeElement.value = \"\";\n this.uploadPolicyFile;\n this.uploadPolicyName = \"\";\n this.uploadPolicyFileName = \"\";\n }\n\n private createPolicy(){\n \tconsole.log(this.newPolicy, this.newPolicyRaw)\n\n \tlet policyString = JSON.stringify(this.newPolicyRaw);\n\n \tthis.apiService.addPolicy(this.newPolicy.name,policyString).subscribe((data)=>{\n this.apiService.validateAuthInResponse(data)\n console.log(data);\n if(data[\"Success\"]){\n this.toastr.success('Policy '+this.newPolicy.name+' has been created', 'Success');\n }else{\n this.toastr.error(JSON.stringify(data), 'Error while creating policy');\n }\n this.getPolicies();\n });\n }\n\n private isEditMode(state){\n this.modalEditMode = state;\n if(state){\n this.modalCreateEditTitle = \"Edit policy\"\n this.modalCreateEditButtonText = \"Update\"\n }else{\n this.modalCreateEditTitle = \"Build up new policy\"\n this.modalCreateEditButtonText = \"Create\"\n }\n }\n\n private isNowCopyMode(){\n this.modalCreateEditTitle = \"Copy policy\"\n this.modalCreateEditButtonText = \"Copy\"\n }\n\n private updatePolicyPrepare(policy){\n this.policyToUpdate = policy\n this.prepareNewPolicyRaw()\n this.resetPloicyForm(false)\n this.newPolicy.name = policy;\n\n var oldPolicy = this.policiesRaw[policy]\n this.newPolicyRaw.Statement = oldPolicy.Statement;\n }\n\n}\n","export default \"
\\n\\t

Server statistics {{server.endpoint}}

\\n\\t
\\n\\t\\tView Raw JSON 
\\n\\t\\tminio version: {{server.version}}
\\n\\t\\tuptime: {{math.round(server.uptime/60)}} min.
\\n\\t\\tnetwork: {{server.network[server.endpoint]}}\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t

Storage

\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
TotalUsedStatePath
{{math.round((disk.totalspace/1024/1024/1024)*100)/100}} Gb{{math.round((disk.usedspace/1024/1024/1024)*100)/100}} Gb{{disk.state}}{{disk.path}}
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t

Disk usage info

\\n\\t\\t\\t
\\n\\t\\t\\t\\t

Last update: {{diskUsageInfo?.lastUpdate.split('T').join(' ').split('.')[0]}}

\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
Objects countObjects total sizeBuckets count
{{diskUsageInfo.objectsCount}}{{math.round((diskUsageInfo.objectsTotalSize/1024/1024/1024)*100)/100}} Gb{{diskUsageInfo.bucketsCount}}
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
0\\\">\\n\\t\\t
\\n\\t\\t\\t

Bucket sizes chart

\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t
0\\\">\\n\\t\\t
\\n\\t \\t

Object sizes histogram

\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n \\n

Raw Server Info

\\n
\\n
\\n \\t\\n
\\n \\n
\\n
\\n
\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwb2xpY2llcy5jb21wb25lbnQuc2NzcyJ9 */\";","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class EnvService {\n\n // The values that are defined here are the default values that can\n // be overridden by env.js\n\n // API url\n public apiBaseUrl = '';\n public apiMultiBackend = false;\n public apiBackends = '';\n\n constructor() {\n }\n\n}\n","export default \"
\\n\\t
\\n\\t
\\n\\t\\t

List of users

\\n\\t
\\n\\t
\\n\\t\\t\\n\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\t\\t
\\n\\t\\t \\n\\t\\t \\n\\t\\t
\\n\\t
\\n
\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t \\n\\t\\n\\t
User namePolicyStatusAction
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectKeys(users[key])}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">{{objectValues(users[key])[0].policyName}}= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t \\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t
= mdbTablePagination.firstItemIndex && i < mdbTablePagination.lastItemIndex\\\">\\n\\t\\t\\t\\t\\t \\n\\t\\t \\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t
\\n
\\n
\\n
\\n\\n\\n
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t

Remove User

\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\tAre you shure?
After you click on \\\"Delete\\\" button user {{userToDelete}} will be removed.\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t

Edit User

\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tInput invalid\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\tInput valid\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t

\\n\\t\\t\\t\\t\\t\\tGenerate new secret\\n\\t\\t\\t\\t\\t

\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t \\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n
\\n\\t
\\n\\t
\\n\\t\\t

Create new user

\\n\\t\\t\\n\\t\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput invalid\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput valid\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput invalid\\n\\t\\t\\t \\n\\t\\t\\t \\n\\t\\t\\t\\tInput valid\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t \\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t

\\n\\t\\t\\t\\t\\tGenerate new access\\\\secret pair\\n\\t\\t\\t

\\n\\t\\t\\t
\\n\\t
\\n\\t \\n\\t
\\n
\\n
\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { UsersComponent } from './users/users.component';\nimport { ServerComponent } from './server/server.component';\nimport { PoliciesComponent } from './policies/policies.component';\nimport { BucketsComponent } from './buckets/buckets.component';\nimport { GroupsComponent } from './groups/groups.component';\n\nconst routes: Routes = [\n\t{path:'users', component: UsersComponent},\n\t{path:'server', component: ServerComponent},\n\t{path:'policies', component: PoliciesComponent},\n\t{path:'groups', component: GroupsComponent},\n\t{path:'', component: BucketsComponent}\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Router } from \"@angular/router\";\nimport { EnvService } from './env.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n\n constructor(private httpClient: HttpClient, private router: Router, private env: EnvService) {\n if(env.apiBaseUrl) {\n console.log('apiBaseUrl', env.apiBaseUrl);\n }\n if(env.apiMultiBackend) {\n console.log('apiMultiBackend', env.apiMultiBackend);\n }\n if(env.apiBackends) {\n console.log('apiBackends', env.apiBackends);\n }\n\n }\n\n\n multiBackend = this.env.apiMultiBackend;\n backendsUrls = this.env.apiBackends;\n baseUrl = this.getCurrentBackend();\n\n private getCurrentBackend(){\n let envDefaultBackend = this.env.apiBaseUrl;\n if(this.multiBackend && this.multiBackend == true) {\n let savedBackend = localStorage.getItem('currentBackend');\n\n let activeBackend = \"\";\n\n if(savedBackend && savedBackend != \"\"){\n activeBackend = savedBackend;\n }else{\n activeBackend = envDefaultBackend;\n }\n return activeBackend;\n } else {\n return envDefaultBackend;\n }\n }\n\n public overrideBackend(newBackend){\n localStorage.setItem('currentBackend', newBackend);\n this.baseUrl = newBackend;\n\n this.router.onSameUrlNavigation = 'reload';\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\n return false;\n };\n\n this.router.navigate([this.router.url])\n this.router.onSameUrlNavigation = 'ignore';\n }\n\n public getMultiBackendStatus(){\n return this.multiBackend;\n }\n\n public getBackendsUrls(){\n return this.backendsUrls;\n }\n\n public validateAuthInResponse(data){\n if(data != null && typeof data.oauth != \"undefined\" && typeof data.auth != \"undefined\" && data.oauth != false && data.auth != true){\n window.location.href = this.env.apiBaseUrl+'/auth/?state='+window.location.href;\n }\n }\n\n public serverInfo(){\n return this.httpClient.get(this.baseUrl+'/api/v2/server/common-info');\n }\n\n public diskInfo(){\n return this.httpClient.get(this.baseUrl+'/api/v2/server/disk-info');\n }\n\n public getUsers(){\n return this.httpClient.get(this.baseUrl+'/api/v2/users/list');\n }\n\n public addUser(access,secret){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/create', form)\n }\n\n public addUserExtended(access,secret,policy){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n form.append('policyName', policy);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/create-extended', form)\n }\n\n public updateUser(access,secret,policy,status){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('secretKey', secret);\n form.append('policyName', policy);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/update', form)\n }\n\n\n public setStatusUser(access,status){\n let form = new FormData();\n\n form.append('accessKey', access);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/set-status', form)\n }\n\n public deleteUser(access){\n let form = new FormData();\n\n form.append('accessKey', access);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/user/delete', form)\n }\n\n public getPolicies(){\n return this.httpClient.get(this.baseUrl+'/api/v2/policies/list');\n }\n\n public deletePolicy(policy){\n let form = new FormData();\n\n form.append('policyName', policy);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/delete', form)\n }\n\n public addPolicy(policyName, policyString){\n let form = new FormData();\n\n form.append('policyName', policyName);\n form.append('policyString', policyString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/create', form)\n }\n\n public getBuckets(){\n return this.httpClient.get(this.baseUrl+'/api/v2/buckets/list');\n }\n\n public getBucketsExtended(){\n return this.httpClient.get(this.baseUrl+'/api/v2/buckets/list-extended');\n }\n\n public enableNotificationForBucket(bucket, stsARN, eventTypes, filterPrefix, filterSuffix){\n //put,get,delete\n let form = new FormData();\n\n form.append('bucket', bucket);\n form.append('stsARN', stsARN);\n form.append('eventTypes', eventTypes);\n form.append('filterPrefix', filterPrefix);\n form.append('filterSuffix', filterSuffix);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-events', form)\n }\n\n public getBucketEvents(bucket){\n let form = new FormData();\n\n form.append('bucket', bucket);\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-events',form)\n }\n\n public removeBucketEvents(bucket){\n let form = new FormData();\n\n form.append('bucket', bucket);\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/remove-events',form)\n }\n\n public deleteBucket(bucket){\n let form = new FormData();\n\n form.append('bucketName', bucket);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/delete', form)\n }\n\n public createBucket(bucket){\n let form = new FormData();\n\n form.append('newBucket', bucket);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/create', form)\n }\n\n public getGroups(){\n return this.httpClient.get(this.baseUrl+'/api/v2/groups/list');\n }\n\n public updateMembersGroup(group,members,IsRemove){\n let form = new FormData();\n\n form.append('group', group);\n form.append('members', members);\n form.append('IsRemove', IsRemove);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/update-members', form);\n }\n\n public getGroupDescription(group){\n let form = new FormData();\n\n form.append('group', group);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/get-description', form);\n }\n\n public setStatusGroup(group,status){\n let form = new FormData();\n\n form.append('group', group);\n form.append('status', status);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/group/set-status', form);\n }\n\n public setPolicy(policyName,entityName,isGroup){\n let form = new FormData();\n\n form.append('policyName', policyName);\n form.append('entityName', entityName);\n form.append('isGroup', isGroup);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/policy/update', form);\n }\n\n public setLifecycle(bucketName,lifecycle){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('lifecycle', lifecycle);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-lifecycle', form);\n }\n\n\n public getLifecycle(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-lifecycle', form);\n }\n\n public checkAuthStatus(){\n return this.httpClient.get(this.baseUrl+'/auth/check');\n }\n\n public getBucketQuota(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-quota', form);\n }\n\n public setBucketQuota(bucketName, quotaType, quotaValue){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('quotaType', quotaType);\n form.append('quotaValue', quotaValue);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-quota', form);\n }\n\n public removeBucketQuota(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/remove-quota', form);\n }\n\n public setBucketTag(bucketName,tagsString){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('bucketTags', tagsString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-tags', form);\n }\n\n public getBucketTag(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-tags', form);\n }\n\n public setBucketPolicy(bucketName,policyString){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('bucketPolicy', policyString);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-policy', form);\n }\n\n public getBucketPolicy(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-policy', form);\n }\n\n public getBucketEncryption(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/get-encryption', form);\n }\n\n public setBucketEncryption(bucketName, encType, encMasterKeyID){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n form.append('bucketEncryptionType', encType);\n form.append('kmsMasterKey', encMasterKeyID);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/set-encryption', form);\n }\n\n public removeBucketEncryption(bucketName){\n let form = new FormData();\n\n form.append('bucketName', bucketName);\n\n return this.httpClient.post(this.baseUrl+'/api/v2/bucket/remove-encryption', form);\n }\n\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAuY29tcG9uZW50LnNjc3MifQ== */\";","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"]} \ No newline at end of file diff --git a/dist/minio-ng/styles.css b/dist/minio-ng/styles.css index 722dd25..618bee5 100644 --- a/dist/minio-ng/styles.css +++ b/dist/minio-ng/styles.css @@ -21477,6 +21477,12 @@ ul.stepper li.active a .label, ul.stepper li.completed a .label { width: 300px; } +.link-button { + padding: 0 !important; + color: blue !important; + margin: 0 !important; +} + .select-text { position: relative; font-family: inherit; diff --git a/dist/minio-ng/styles.css.map b/dist/minio-ng/styles.css.map index 1808f25..af6c34a 100644 --- a/dist/minio-ng/styles.css.map +++ b/dist/minio-ng/styles.css.map @@ -1 +1 @@ -{"version":3,"sources":["./node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss","./node_modules/@fortawesome/fontawesome-free/scss/solid.scss","./node_modules/@fortawesome/fontawesome-free/scss/regular.scss","./node_modules/@fortawesome/fontawesome-free/scss/brands.scss","./node_modules/angular-bootstrap-md/assets/scss/bootstrap/bootstrap.scss","./node_modules/angular-bootstrap-md/assets/scss/mdb.scss","./node_modules/animate.css/animate.css","./src/styles.scss","./node_modules/angular2-multiselect-dropdown/themes/default.theme.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACp+IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;AC5jSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oBAAoB,MAAM,OAAO,YAAY;AAChG,uBAAuB,eAAe;AACtC,6BAA6B;AAC7B,4BAA4B,aAAa,kBAAkB;AAC3D,kBAAkB,kBAAkB,oBAAoB,sBAAsB,aAAa,aAAa,eAAe;AACvH,sBAAsB,kBAAkB,MAAM,SAAS,OAAO,QAAQ,aAAa,oBAAoB,wCAAwC,0DAA0D;AACzM,mDAAmD;AACnD,8CAA8C,mDAAmD;AACjG,2BAA2B;AAC3B,iGAAiG;AACjG,6CAA6C,kBAAkB,aAAa,aAAa,sBAAsB,cAAc;AAC7H,wBAAwB,eAAe,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACniHA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AChqHA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;AC9jBA;AACA;AACA;AACA,cAAc;;AAEd;AACA,sBAAsB;;AAEtB;AACA,gBAAgB;;AAEhB;AACA,eAAe;;AAEf;AACA,aAAa;;AAEb;AACA,sBAAsB;;AAEtB;AACA,iCAAiC;;AAEjC;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,kCAAkC;;AAElC;AACA,gCAAgC;;AAEhC;AACA,gCAAgC;;AAEhC;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA;AACA,4BAA4B;;AAE5B;AACA,cAAc;;AAEd;AACA;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,wBAAwB;;AAExB;AACA,4BAA4B;;AAE5B;AACA,wBAAwB;;AAExB;AACA,0BAA0B;;AAE1B;AACA,sBAAsB;;AAEtB;AACA;AACA,4BAA4B;;AAE5B;AACA,cAAc;;AAEd;AACA;AACA,4BAA4B;;AAE5B;AACA,2CAA2C;;AAE3C;AACA,wBAAwB;;AAExB;AACA,4BAA4B;;AAE5B;AACA,wBAAwB;;AAExB;AACA,0BAA0B;;AAE1B;AACA,8BAA8B;;AAE9B;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,cAAc","file":"styles.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-block;\n font-style: normal;\n font-variant: normal;\n text-rendering: auto;\n line-height: 1;\n}\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n.fa-xs {\n font-size: 0.75em;\n}\n.fa-sm {\n font-size: 0.875em;\n}\n.fa-1x {\n font-size: 1em;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-6x {\n font-size: 6em;\n}\n.fa-7x {\n font-size: 7em;\n}\n.fa-8x {\n font-size: 8em;\n}\n.fa-9x {\n font-size: 9em;\n}\n.fa-10x {\n font-size: 10em;\n}\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n transform: scale(1, -1);\n}\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n transform: scale(-1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n filter: none;\n}\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #fff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n content: \"\";\n}\n.fa-accessible-icon:before {\n content: \"\";\n}\n.fa-accusoft:before {\n content: \"\";\n}\n.fa-acquisitions-incorporated:before {\n content: \"\";\n}\n.fa-ad:before {\n content: \"\";\n}\n.fa-address-book:before {\n content: \"\";\n}\n.fa-address-card:before {\n content: \"\";\n}\n.fa-adjust:before {\n content: \"\";\n}\n.fa-adn:before {\n content: \"\";\n}\n.fa-adversal:before {\n content: \"\";\n}\n.fa-affiliatetheme:before {\n content: \"\";\n}\n.fa-air-freshener:before {\n content: \"\";\n}\n.fa-airbnb:before {\n content: \"\";\n}\n.fa-algolia:before {\n content: \"\";\n}\n.fa-align-center:before {\n content: \"\";\n}\n.fa-align-justify:before {\n content: \"\";\n}\n.fa-align-left:before {\n content: \"\";\n}\n.fa-align-right:before {\n content: \"\";\n}\n.fa-alipay:before {\n content: \"\";\n}\n.fa-allergies:before {\n content: \"\";\n}\n.fa-amazon:before {\n content: \"\";\n}\n.fa-amazon-pay:before {\n content: \"\";\n}\n.fa-ambulance:before {\n content: \"\";\n}\n.fa-american-sign-language-interpreting:before {\n content: \"\";\n}\n.fa-amilia:before {\n content: \"\";\n}\n.fa-anchor:before {\n content: \"\";\n}\n.fa-android:before {\n content: \"\";\n}\n.fa-angellist:before {\n content: \"\";\n}\n.fa-angle-double-down:before {\n content: \"\";\n}\n.fa-angle-double-left:before {\n content: \"\";\n}\n.fa-angle-double-right:before {\n content: \"\";\n}\n.fa-angle-double-up:before {\n content: \"\";\n}\n.fa-angle-down:before {\n content: \"\";\n}\n.fa-angle-left:before {\n content: \"\";\n}\n.fa-angle-right:before {\n content: \"\";\n}\n.fa-angle-up:before {\n content: \"\";\n}\n.fa-angry:before {\n content: \"\";\n}\n.fa-angrycreative:before {\n content: \"\";\n}\n.fa-angular:before {\n content: \"\";\n}\n.fa-ankh:before {\n content: \"\";\n}\n.fa-app-store:before {\n content: \"\";\n}\n.fa-app-store-ios:before {\n content: \"\";\n}\n.fa-apper:before {\n content: \"\";\n}\n.fa-apple:before {\n content: \"\";\n}\n.fa-apple-alt:before {\n content: \"\";\n}\n.fa-apple-pay:before {\n content: \"\";\n}\n.fa-archive:before {\n content: \"\";\n}\n.fa-archway:before {\n content: \"\";\n}\n.fa-arrow-alt-circle-down:before {\n content: \"\";\n}\n.fa-arrow-alt-circle-left:before {\n content: \"\";\n}\n.fa-arrow-alt-circle-right:before {\n content: \"\";\n}\n.fa-arrow-alt-circle-up:before {\n content: \"\";\n}\n.fa-arrow-circle-down:before {\n content: \"\";\n}\n.fa-arrow-circle-left:before {\n content: \"\";\n}\n.fa-arrow-circle-right:before {\n content: \"\";\n}\n.fa-arrow-circle-up:before {\n content: \"\";\n}\n.fa-arrow-down:before {\n content: \"\";\n}\n.fa-arrow-left:before {\n content: \"\";\n}\n.fa-arrow-right:before {\n content: \"\";\n}\n.fa-arrow-up:before {\n content: \"\";\n}\n.fa-arrows-alt:before {\n content: \"\";\n}\n.fa-arrows-alt-h:before {\n content: \"\";\n}\n.fa-arrows-alt-v:before {\n content: \"\";\n}\n.fa-artstation:before {\n content: \"\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\";\n}\n.fa-asterisk:before {\n content: \"\";\n}\n.fa-asymmetrik:before {\n content: \"\";\n}\n.fa-at:before {\n content: \"\";\n}\n.fa-atlas:before {\n content: \"\";\n}\n.fa-atlassian:before {\n content: \"\";\n}\n.fa-atom:before {\n content: \"\";\n}\n.fa-audible:before {\n content: \"\";\n}\n.fa-audio-description:before {\n content: \"\";\n}\n.fa-autoprefixer:before {\n content: \"\";\n}\n.fa-avianex:before {\n content: \"\";\n}\n.fa-aviato:before {\n content: \"\";\n}\n.fa-award:before {\n content: \"\";\n}\n.fa-aws:before {\n content: \"\";\n}\n.fa-baby:before {\n content: \"\";\n}\n.fa-baby-carriage:before {\n content: \"\";\n}\n.fa-backspace:before {\n content: \"\";\n}\n.fa-backward:before {\n content: \"\";\n}\n.fa-bacon:before {\n content: \"\";\n}\n.fa-bacteria:before {\n content: \"\";\n}\n.fa-bacterium:before {\n content: \"\";\n}\n.fa-bahai:before {\n content: \"\";\n}\n.fa-balance-scale:before {\n content: \"\";\n}\n.fa-balance-scale-left:before {\n content: \"\";\n}\n.fa-balance-scale-right:before {\n content: \"\";\n}\n.fa-ban:before {\n content: \"\";\n}\n.fa-band-aid:before {\n content: \"\";\n}\n.fa-bandcamp:before {\n content: \"\";\n}\n.fa-barcode:before {\n content: \"\";\n}\n.fa-bars:before {\n content: \"\";\n}\n.fa-baseball-ball:before {\n content: \"\";\n}\n.fa-basketball-ball:before {\n content: \"\";\n}\n.fa-bath:before {\n content: \"\";\n}\n.fa-battery-empty:before {\n content: \"\";\n}\n.fa-battery-full:before {\n content: \"\";\n}\n.fa-battery-half:before {\n content: \"\";\n}\n.fa-battery-quarter:before {\n content: \"\";\n}\n.fa-battery-three-quarters:before {\n content: \"\";\n}\n.fa-battle-net:before {\n content: \"\";\n}\n.fa-bed:before {\n content: \"\";\n}\n.fa-beer:before {\n content: \"\";\n}\n.fa-behance:before {\n content: \"\";\n}\n.fa-behance-square:before {\n content: \"\";\n}\n.fa-bell:before {\n content: \"\";\n}\n.fa-bell-slash:before {\n content: \"\";\n}\n.fa-bezier-curve:before {\n content: \"\";\n}\n.fa-bible:before {\n content: \"\";\n}\n.fa-bicycle:before {\n content: \"\";\n}\n.fa-biking:before {\n content: \"\";\n}\n.fa-bimobject:before {\n content: \"\";\n}\n.fa-binoculars:before {\n content: \"\";\n}\n.fa-biohazard:before {\n content: \"\";\n}\n.fa-birthday-cake:before {\n content: \"\";\n}\n.fa-bitbucket:before {\n content: \"\";\n}\n.fa-bitcoin:before {\n content: \"\";\n}\n.fa-bity:before {\n content: \"\";\n}\n.fa-black-tie:before {\n content: \"\";\n}\n.fa-blackberry:before {\n content: \"\";\n}\n.fa-blender:before {\n content: \"\";\n}\n.fa-blender-phone:before {\n content: \"\";\n}\n.fa-blind:before {\n content: \"\";\n}\n.fa-blog:before {\n content: \"\";\n}\n.fa-blogger:before {\n content: \"\";\n}\n.fa-blogger-b:before {\n content: \"\";\n}\n.fa-bluetooth:before {\n content: \"\";\n}\n.fa-bluetooth-b:before {\n content: \"\";\n}\n.fa-bold:before {\n content: \"\";\n}\n.fa-bolt:before {\n content: \"\";\n}\n.fa-bomb:before {\n content: \"\";\n}\n.fa-bone:before {\n content: \"\";\n}\n.fa-bong:before {\n content: \"\";\n}\n.fa-book:before {\n content: \"\";\n}\n.fa-book-dead:before {\n content: \"\";\n}\n.fa-book-medical:before {\n content: \"\";\n}\n.fa-book-open:before {\n content: \"\";\n}\n.fa-book-reader:before {\n content: \"\";\n}\n.fa-bookmark:before {\n content: \"\";\n}\n.fa-bootstrap:before {\n content: \"\";\n}\n.fa-border-all:before {\n content: \"\";\n}\n.fa-border-none:before {\n content: \"\";\n}\n.fa-border-style:before {\n content: \"\";\n}\n.fa-bowling-ball:before {\n content: \"\";\n}\n.fa-box:before {\n content: \"\";\n}\n.fa-box-open:before {\n content: \"\";\n}\n.fa-box-tissue:before {\n content: \"\";\n}\n.fa-boxes:before {\n content: \"\";\n}\n.fa-braille:before {\n content: \"\";\n}\n.fa-brain:before {\n content: \"\";\n}\n.fa-bread-slice:before {\n content: \"\";\n}\n.fa-briefcase:before {\n content: \"\";\n}\n.fa-briefcase-medical:before {\n content: \"\";\n}\n.fa-broadcast-tower:before {\n content: \"\";\n}\n.fa-broom:before {\n content: \"\";\n}\n.fa-brush:before {\n content: \"\";\n}\n.fa-btc:before {\n content: \"\";\n}\n.fa-buffer:before {\n content: \"\";\n}\n.fa-bug:before {\n content: \"\";\n}\n.fa-building:before {\n content: \"\";\n}\n.fa-bullhorn:before {\n content: \"\";\n}\n.fa-bullseye:before {\n content: \"\";\n}\n.fa-burn:before {\n content: \"\";\n}\n.fa-buromobelexperte:before {\n content: \"\";\n}\n.fa-bus:before {\n content: \"\";\n}\n.fa-bus-alt:before {\n content: \"\";\n}\n.fa-business-time:before {\n content: \"\";\n}\n.fa-buy-n-large:before {\n content: \"\";\n}\n.fa-buysellads:before {\n content: \"\";\n}\n.fa-calculator:before {\n content: \"\";\n}\n.fa-calendar:before {\n content: \"\";\n}\n.fa-calendar-alt:before {\n content: \"\";\n}\n.fa-calendar-check:before {\n content: \"\";\n}\n.fa-calendar-day:before {\n content: \"\";\n}\n.fa-calendar-minus:before {\n content: \"\";\n}\n.fa-calendar-plus:before {\n content: \"\";\n}\n.fa-calendar-times:before {\n content: \"\";\n}\n.fa-calendar-week:before {\n content: \"\";\n}\n.fa-camera:before {\n content: \"\";\n}\n.fa-camera-retro:before {\n content: \"\";\n}\n.fa-campground:before {\n content: \"\";\n}\n.fa-canadian-maple-leaf:before {\n content: \"\";\n}\n.fa-candy-cane:before {\n content: \"\";\n}\n.fa-cannabis:before {\n content: \"\";\n}\n.fa-capsules:before {\n content: \"\";\n}\n.fa-car:before {\n content: \"\";\n}\n.fa-car-alt:before {\n content: \"\";\n}\n.fa-car-battery:before {\n content: \"\";\n}\n.fa-car-crash:before {\n content: \"\";\n}\n.fa-car-side:before {\n content: \"\";\n}\n.fa-caravan:before {\n content: \"\";\n}\n.fa-caret-down:before {\n content: \"\";\n}\n.fa-caret-left:before {\n content: \"\";\n}\n.fa-caret-right:before {\n content: \"\";\n}\n.fa-caret-square-down:before {\n content: \"\";\n}\n.fa-caret-square-left:before {\n content: \"\";\n}\n.fa-caret-square-right:before {\n content: \"\";\n}\n.fa-caret-square-up:before {\n content: \"\";\n}\n.fa-caret-up:before {\n content: \"\";\n}\n.fa-carrot:before {\n content: \"\";\n}\n.fa-cart-arrow-down:before {\n content: \"\";\n}\n.fa-cart-plus:before {\n content: \"\";\n}\n.fa-cash-register:before {\n content: \"\";\n}\n.fa-cat:before {\n content: \"\";\n}\n.fa-cc-amazon-pay:before {\n content: \"\";\n}\n.fa-cc-amex:before {\n content: \"\";\n}\n.fa-cc-apple-pay:before {\n content: \"\";\n}\n.fa-cc-diners-club:before {\n content: \"\";\n}\n.fa-cc-discover:before {\n content: \"\";\n}\n.fa-cc-jcb:before {\n content: \"\";\n}\n.fa-cc-mastercard:before {\n content: \"\";\n}\n.fa-cc-paypal:before {\n content: \"\";\n}\n.fa-cc-stripe:before {\n content: \"\";\n}\n.fa-cc-visa:before {\n content: \"\";\n}\n.fa-centercode:before {\n content: \"\";\n}\n.fa-centos:before {\n content: \"\";\n}\n.fa-certificate:before {\n content: \"\";\n}\n.fa-chair:before {\n content: \"\";\n}\n.fa-chalkboard:before {\n content: \"\";\n}\n.fa-chalkboard-teacher:before {\n content: \"\";\n}\n.fa-charging-station:before {\n content: \"\";\n}\n.fa-chart-area:before {\n content: \"\";\n}\n.fa-chart-bar:before {\n content: \"\";\n}\n.fa-chart-line:before {\n content: \"\";\n}\n.fa-chart-pie:before {\n content: \"\";\n}\n.fa-check:before {\n content: \"\";\n}\n.fa-check-circle:before {\n content: \"\";\n}\n.fa-check-double:before {\n content: \"\";\n}\n.fa-check-square:before {\n content: \"\";\n}\n.fa-cheese:before {\n content: \"\";\n}\n.fa-chess:before {\n content: \"\";\n}\n.fa-chess-bishop:before {\n content: \"\";\n}\n.fa-chess-board:before {\n content: \"\";\n}\n.fa-chess-king:before {\n content: \"\";\n}\n.fa-chess-knight:before {\n content: \"\";\n}\n.fa-chess-pawn:before {\n content: \"\";\n}\n.fa-chess-queen:before {\n content: \"\";\n}\n.fa-chess-rook:before {\n content: \"\";\n}\n.fa-chevron-circle-down:before {\n content: \"\";\n}\n.fa-chevron-circle-left:before {\n content: \"\";\n}\n.fa-chevron-circle-right:before {\n content: \"\";\n}\n.fa-chevron-circle-up:before {\n content: \"\";\n}\n.fa-chevron-down:before {\n content: \"\";\n}\n.fa-chevron-left:before {\n content: \"\";\n}\n.fa-chevron-right:before {\n content: \"\";\n}\n.fa-chevron-up:before {\n content: \"\";\n}\n.fa-child:before {\n content: \"\";\n}\n.fa-chrome:before {\n content: \"\";\n}\n.fa-chromecast:before {\n content: \"\";\n}\n.fa-church:before {\n content: \"\";\n}\n.fa-circle:before {\n content: \"\";\n}\n.fa-circle-notch:before {\n content: \"\";\n}\n.fa-city:before {\n content: \"\";\n}\n.fa-clinic-medical:before {\n content: \"\";\n}\n.fa-clipboard:before {\n content: \"\";\n}\n.fa-clipboard-check:before {\n content: \"\";\n}\n.fa-clipboard-list:before {\n content: \"\";\n}\n.fa-clock:before {\n content: \"\";\n}\n.fa-clone:before {\n content: \"\";\n}\n.fa-closed-captioning:before {\n content: \"\";\n}\n.fa-cloud:before {\n content: \"\";\n}\n.fa-cloud-download-alt:before {\n content: \"\";\n}\n.fa-cloud-meatball:before {\n content: \"\";\n}\n.fa-cloud-moon:before {\n content: \"\";\n}\n.fa-cloud-moon-rain:before {\n content: \"\";\n}\n.fa-cloud-rain:before {\n content: \"\";\n}\n.fa-cloud-showers-heavy:before {\n content: \"\";\n}\n.fa-cloud-sun:before {\n content: \"\";\n}\n.fa-cloud-sun-rain:before {\n content: \"\";\n}\n.fa-cloud-upload-alt:before {\n content: \"\";\n}\n.fa-cloudflare:before {\n content: \"\";\n}\n.fa-cloudscale:before {\n content: \"\";\n}\n.fa-cloudsmith:before {\n content: \"\";\n}\n.fa-cloudversify:before {\n content: \"\";\n}\n.fa-cocktail:before {\n content: \"\";\n}\n.fa-code:before {\n content: \"\";\n}\n.fa-code-branch:before {\n content: \"\";\n}\n.fa-codepen:before {\n content: \"\";\n}\n.fa-codiepie:before {\n content: \"\";\n}\n.fa-coffee:before {\n content: \"\";\n}\n.fa-cog:before {\n content: \"\";\n}\n.fa-cogs:before {\n content: \"\";\n}\n.fa-coins:before {\n content: \"\";\n}\n.fa-columns:before {\n content: \"\";\n}\n.fa-comment:before {\n content: \"\";\n}\n.fa-comment-alt:before {\n content: \"\";\n}\n.fa-comment-dollar:before {\n content: \"\";\n}\n.fa-comment-dots:before {\n content: \"\";\n}\n.fa-comment-medical:before {\n content: \"\";\n}\n.fa-comment-slash:before {\n content: \"\";\n}\n.fa-comments:before {\n content: \"\";\n}\n.fa-comments-dollar:before {\n content: \"\";\n}\n.fa-compact-disc:before {\n content: \"\";\n}\n.fa-compass:before {\n content: \"\";\n}\n.fa-compress:before {\n content: \"\";\n}\n.fa-compress-alt:before {\n content: \"\";\n}\n.fa-compress-arrows-alt:before {\n content: \"\";\n}\n.fa-concierge-bell:before {\n content: \"\";\n}\n.fa-confluence:before {\n content: \"\";\n}\n.fa-connectdevelop:before {\n content: \"\";\n}\n.fa-contao:before {\n content: \"\";\n}\n.fa-cookie:before {\n content: \"\";\n}\n.fa-cookie-bite:before {\n content: \"\";\n}\n.fa-copy:before {\n content: \"\";\n}\n.fa-copyright:before {\n content: \"\";\n}\n.fa-cotton-bureau:before {\n content: \"\";\n}\n.fa-couch:before {\n content: \"\";\n}\n.fa-cpanel:before {\n content: \"\";\n}\n.fa-creative-commons:before {\n content: \"\";\n}\n.fa-creative-commons-by:before {\n content: \"\";\n}\n.fa-creative-commons-nc:before {\n content: \"\";\n}\n.fa-creative-commons-nc-eu:before {\n content: \"\";\n}\n.fa-creative-commons-nc-jp:before {\n content: \"\";\n}\n.fa-creative-commons-nd:before {\n content: \"\";\n}\n.fa-creative-commons-pd:before {\n content: \"\";\n}\n.fa-creative-commons-pd-alt:before {\n content: \"\";\n}\n.fa-creative-commons-remix:before {\n content: \"\";\n}\n.fa-creative-commons-sa:before {\n content: \"\";\n}\n.fa-creative-commons-sampling:before {\n content: \"\";\n}\n.fa-creative-commons-sampling-plus:before {\n content: \"\";\n}\n.fa-creative-commons-share:before {\n content: \"\";\n}\n.fa-creative-commons-zero:before {\n content: \"\";\n}\n.fa-credit-card:before {\n content: \"\";\n}\n.fa-critical-role:before {\n content: \"\";\n}\n.fa-crop:before {\n content: \"\";\n}\n.fa-crop-alt:before {\n content: \"\";\n}\n.fa-cross:before {\n content: \"\";\n}\n.fa-crosshairs:before {\n content: \"\";\n}\n.fa-crow:before {\n content: \"\";\n}\n.fa-crown:before {\n content: \"\";\n}\n.fa-crutch:before {\n content: \"\";\n}\n.fa-css3:before {\n content: \"\";\n}\n.fa-css3-alt:before {\n content: \"\";\n}\n.fa-cube:before {\n content: \"\";\n}\n.fa-cubes:before {\n content: \"\";\n}\n.fa-cut:before {\n content: \"\";\n}\n.fa-cuttlefish:before {\n content: \"\";\n}\n.fa-d-and-d:before {\n content: \"\";\n}\n.fa-d-and-d-beyond:before {\n content: \"\";\n}\n.fa-dailymotion:before {\n content: \"\";\n}\n.fa-dashcube:before {\n content: \"\";\n}\n.fa-database:before {\n content: \"\";\n}\n.fa-deaf:before {\n content: \"\";\n}\n.fa-deezer:before {\n content: \"\";\n}\n.fa-delicious:before {\n content: \"\";\n}\n.fa-democrat:before {\n content: \"\";\n}\n.fa-deploydog:before {\n content: \"\";\n}\n.fa-deskpro:before {\n content: \"\";\n}\n.fa-desktop:before {\n content: \"\";\n}\n.fa-dev:before {\n content: \"\";\n}\n.fa-deviantart:before {\n content: \"\";\n}\n.fa-dharmachakra:before {\n content: \"\";\n}\n.fa-dhl:before {\n content: \"\";\n}\n.fa-diagnoses:before {\n content: \"\";\n}\n.fa-diaspora:before {\n content: \"\";\n}\n.fa-dice:before {\n content: \"\";\n}\n.fa-dice-d20:before {\n content: \"\";\n}\n.fa-dice-d6:before {\n content: \"\";\n}\n.fa-dice-five:before {\n content: \"\";\n}\n.fa-dice-four:before {\n content: \"\";\n}\n.fa-dice-one:before {\n content: \"\";\n}\n.fa-dice-six:before {\n content: \"\";\n}\n.fa-dice-three:before {\n content: \"\";\n}\n.fa-dice-two:before {\n content: \"\";\n}\n.fa-digg:before {\n content: \"\";\n}\n.fa-digital-ocean:before {\n content: \"\";\n}\n.fa-digital-tachograph:before {\n content: \"\";\n}\n.fa-directions:before {\n content: \"\";\n}\n.fa-discord:before {\n content: \"\";\n}\n.fa-discourse:before {\n content: \"\";\n}\n.fa-disease:before {\n content: \"\";\n}\n.fa-divide:before {\n content: \"\";\n}\n.fa-dizzy:before {\n content: \"\";\n}\n.fa-dna:before {\n content: \"\";\n}\n.fa-dochub:before {\n content: \"\";\n}\n.fa-docker:before {\n content: \"\";\n}\n.fa-dog:before {\n content: \"\";\n}\n.fa-dollar-sign:before {\n content: \"\";\n}\n.fa-dolly:before {\n content: \"\";\n}\n.fa-dolly-flatbed:before {\n content: \"\";\n}\n.fa-donate:before {\n content: \"\";\n}\n.fa-door-closed:before {\n content: \"\";\n}\n.fa-door-open:before {\n content: \"\";\n}\n.fa-dot-circle:before {\n content: \"\";\n}\n.fa-dove:before {\n content: \"\";\n}\n.fa-download:before {\n content: \"\";\n}\n.fa-draft2digital:before {\n content: \"\";\n}\n.fa-drafting-compass:before {\n content: \"\";\n}\n.fa-dragon:before {\n content: \"\";\n}\n.fa-draw-polygon:before {\n content: \"\";\n}\n.fa-dribbble:before {\n content: \"\";\n}\n.fa-dribbble-square:before {\n content: \"\";\n}\n.fa-dropbox:before {\n content: \"\";\n}\n.fa-drum:before {\n content: \"\";\n}\n.fa-drum-steelpan:before {\n content: \"\";\n}\n.fa-drumstick-bite:before {\n content: \"\";\n}\n.fa-drupal:before {\n content: \"\";\n}\n.fa-dumbbell:before {\n content: \"\";\n}\n.fa-dumpster:before {\n content: \"\";\n}\n.fa-dumpster-fire:before {\n content: \"\";\n}\n.fa-dungeon:before {\n content: \"\";\n}\n.fa-dyalog:before {\n content: \"\";\n}\n.fa-earlybirds:before {\n content: \"\";\n}\n.fa-ebay:before {\n content: \"\";\n}\n.fa-edge:before {\n content: \"\";\n}\n.fa-edge-legacy:before {\n content: \"\";\n}\n.fa-edit:before {\n content: \"\";\n}\n.fa-egg:before {\n content: \"\";\n}\n.fa-eject:before {\n content: \"\";\n}\n.fa-elementor:before {\n content: \"\";\n}\n.fa-ellipsis-h:before {\n content: \"\";\n}\n.fa-ellipsis-v:before {\n content: \"\";\n}\n.fa-ello:before {\n content: \"\";\n}\n.fa-ember:before {\n content: \"\";\n}\n.fa-empire:before {\n content: \"\";\n}\n.fa-envelope:before {\n content: \"\";\n}\n.fa-envelope-open:before {\n content: \"\";\n}\n.fa-envelope-open-text:before {\n content: \"\";\n}\n.fa-envelope-square:before {\n content: \"\";\n}\n.fa-envira:before {\n content: \"\";\n}\n.fa-equals:before {\n content: \"\";\n}\n.fa-eraser:before {\n content: \"\";\n}\n.fa-erlang:before {\n content: \"\";\n}\n.fa-ethereum:before {\n content: \"\";\n}\n.fa-ethernet:before {\n content: \"\";\n}\n.fa-etsy:before {\n content: \"\";\n}\n.fa-euro-sign:before {\n content: \"\";\n}\n.fa-evernote:before {\n content: \"\";\n}\n.fa-exchange-alt:before {\n content: \"\";\n}\n.fa-exclamation:before {\n content: \"\";\n}\n.fa-exclamation-circle:before {\n content: \"\";\n}\n.fa-exclamation-triangle:before {\n content: \"\";\n}\n.fa-expand:before {\n content: \"\";\n}\n.fa-expand-alt:before {\n content: \"\";\n}\n.fa-expand-arrows-alt:before {\n content: \"\";\n}\n.fa-expeditedssl:before {\n content: \"\";\n}\n.fa-external-link-alt:before {\n content: \"\";\n}\n.fa-external-link-square-alt:before {\n content: \"\";\n}\n.fa-eye:before {\n content: \"\";\n}\n.fa-eye-dropper:before {\n content: \"\";\n}\n.fa-eye-slash:before {\n content: \"\";\n}\n.fa-facebook:before {\n content: \"\";\n}\n.fa-facebook-f:before {\n content: \"\";\n}\n.fa-facebook-messenger:before {\n content: \"\";\n}\n.fa-facebook-square:before {\n content: \"\";\n}\n.fa-fan:before {\n content: \"\";\n}\n.fa-fantasy-flight-games:before {\n content: \"\";\n}\n.fa-fast-backward:before {\n content: \"\";\n}\n.fa-fast-forward:before {\n content: \"\";\n}\n.fa-faucet:before {\n content: \"\";\n}\n.fa-fax:before {\n content: \"\";\n}\n.fa-feather:before {\n content: \"\";\n}\n.fa-feather-alt:before {\n content: \"\";\n}\n.fa-fedex:before {\n content: \"\";\n}\n.fa-fedora:before {\n content: \"\";\n}\n.fa-female:before {\n content: \"\";\n}\n.fa-fighter-jet:before {\n content: \"\";\n}\n.fa-figma:before {\n content: \"\";\n}\n.fa-file:before {\n content: \"\";\n}\n.fa-file-alt:before {\n content: \"\";\n}\n.fa-file-archive:before {\n content: \"\";\n}\n.fa-file-audio:before {\n content: \"\";\n}\n.fa-file-code:before {\n content: \"\";\n}\n.fa-file-contract:before {\n content: \"\";\n}\n.fa-file-csv:before {\n content: \"\";\n}\n.fa-file-download:before {\n content: \"\";\n}\n.fa-file-excel:before {\n content: \"\";\n}\n.fa-file-export:before {\n content: \"\";\n}\n.fa-file-image:before {\n content: \"\";\n}\n.fa-file-import:before {\n content: \"\";\n}\n.fa-file-invoice:before {\n content: \"\";\n}\n.fa-file-invoice-dollar:before {\n content: \"\";\n}\n.fa-file-medical:before {\n content: \"\";\n}\n.fa-file-medical-alt:before {\n content: \"\";\n}\n.fa-file-pdf:before {\n content: \"\";\n}\n.fa-file-powerpoint:before {\n content: \"\";\n}\n.fa-file-prescription:before {\n content: \"\";\n}\n.fa-file-signature:before {\n content: \"\";\n}\n.fa-file-upload:before {\n content: \"\";\n}\n.fa-file-video:before {\n content: \"\";\n}\n.fa-file-word:before {\n content: \"\";\n}\n.fa-fill:before {\n content: \"\";\n}\n.fa-fill-drip:before {\n content: \"\";\n}\n.fa-film:before {\n content: \"\";\n}\n.fa-filter:before {\n content: \"\";\n}\n.fa-fingerprint:before {\n content: \"\";\n}\n.fa-fire:before {\n content: \"\";\n}\n.fa-fire-alt:before {\n content: \"\";\n}\n.fa-fire-extinguisher:before {\n content: \"\";\n}\n.fa-firefox:before {\n content: \"\";\n}\n.fa-firefox-browser:before {\n content: \"\";\n}\n.fa-first-aid:before {\n content: \"\";\n}\n.fa-first-order:before {\n content: \"\";\n}\n.fa-first-order-alt:before {\n content: \"\";\n}\n.fa-firstdraft:before {\n content: \"\";\n}\n.fa-fish:before {\n content: \"\";\n}\n.fa-fist-raised:before {\n content: \"\";\n}\n.fa-flag:before {\n content: \"\";\n}\n.fa-flag-checkered:before {\n content: \"\";\n}\n.fa-flag-usa:before {\n content: \"\";\n}\n.fa-flask:before {\n content: \"\";\n}\n.fa-flickr:before {\n content: \"\";\n}\n.fa-flipboard:before {\n content: \"\";\n}\n.fa-flushed:before {\n content: \"\";\n}\n.fa-fly:before {\n content: \"\";\n}\n.fa-folder:before {\n content: \"\";\n}\n.fa-folder-minus:before {\n content: \"\";\n}\n.fa-folder-open:before {\n content: \"\";\n}\n.fa-folder-plus:before {\n content: \"\";\n}\n.fa-font:before {\n content: \"\";\n}\n.fa-font-awesome:before {\n content: \"\";\n}\n.fa-font-awesome-alt:before {\n content: \"\";\n}\n.fa-font-awesome-flag:before {\n content: \"\";\n}\n.fa-font-awesome-logo-full:before {\n content: \"\";\n}\n.fa-fonticons:before {\n content: \"\";\n}\n.fa-fonticons-fi:before {\n content: \"\";\n}\n.fa-football-ball:before {\n content: \"\";\n}\n.fa-fort-awesome:before {\n content: \"\";\n}\n.fa-fort-awesome-alt:before {\n content: \"\";\n}\n.fa-forumbee:before {\n content: \"\";\n}\n.fa-forward:before {\n content: \"\";\n}\n.fa-foursquare:before {\n content: \"\";\n}\n.fa-free-code-camp:before {\n content: \"\";\n}\n.fa-freebsd:before {\n content: \"\";\n}\n.fa-frog:before {\n content: \"\";\n}\n.fa-frown:before {\n content: \"\";\n}\n.fa-frown-open:before {\n content: \"\";\n}\n.fa-fulcrum:before {\n content: \"\";\n}\n.fa-funnel-dollar:before {\n content: \"\";\n}\n.fa-futbol:before {\n content: \"\";\n}\n.fa-galactic-republic:before {\n content: \"\";\n}\n.fa-galactic-senate:before {\n content: \"\";\n}\n.fa-gamepad:before {\n content: \"\";\n}\n.fa-gas-pump:before {\n content: \"\";\n}\n.fa-gavel:before {\n content: \"\";\n}\n.fa-gem:before {\n content: \"\";\n}\n.fa-genderless:before {\n content: \"\";\n}\n.fa-get-pocket:before {\n content: \"\";\n}\n.fa-gg:before {\n content: \"\";\n}\n.fa-gg-circle:before {\n content: \"\";\n}\n.fa-ghost:before {\n content: \"\";\n}\n.fa-gift:before {\n content: \"\";\n}\n.fa-gifts:before {\n content: \"\";\n}\n.fa-git:before {\n content: \"\";\n}\n.fa-git-alt:before {\n content: \"\";\n}\n.fa-git-square:before {\n content: \"\";\n}\n.fa-github:before {\n content: \"\";\n}\n.fa-github-alt:before {\n content: \"\";\n}\n.fa-github-square:before {\n content: \"\";\n}\n.fa-gitkraken:before {\n content: \"\";\n}\n.fa-gitlab:before {\n content: \"\";\n}\n.fa-gitter:before {\n content: \"\";\n}\n.fa-glass-cheers:before {\n content: \"\";\n}\n.fa-glass-martini:before {\n content: \"\";\n}\n.fa-glass-martini-alt:before {\n content: \"\";\n}\n.fa-glass-whiskey:before {\n content: \"\";\n}\n.fa-glasses:before {\n content: \"\";\n}\n.fa-glide:before {\n content: \"\";\n}\n.fa-glide-g:before {\n content: \"\";\n}\n.fa-globe:before {\n content: \"\";\n}\n.fa-globe-africa:before {\n content: \"\";\n}\n.fa-globe-americas:before {\n content: \"\";\n}\n.fa-globe-asia:before {\n content: \"\";\n}\n.fa-globe-europe:before {\n content: \"\";\n}\n.fa-gofore:before {\n content: \"\";\n}\n.fa-golf-ball:before {\n content: \"\";\n}\n.fa-goodreads:before {\n content: \"\";\n}\n.fa-goodreads-g:before {\n content: \"\";\n}\n.fa-google:before {\n content: \"\";\n}\n.fa-google-drive:before {\n content: \"\";\n}\n.fa-google-pay:before {\n content: \"\";\n}\n.fa-google-play:before {\n content: \"\";\n}\n.fa-google-plus:before {\n content: \"\";\n}\n.fa-google-plus-g:before {\n content: \"\";\n}\n.fa-google-plus-square:before {\n content: \"\";\n}\n.fa-google-wallet:before {\n content: \"\";\n}\n.fa-gopuram:before {\n content: \"\";\n}\n.fa-graduation-cap:before {\n content: \"\";\n}\n.fa-gratipay:before {\n content: \"\";\n}\n.fa-grav:before {\n content: \"\";\n}\n.fa-greater-than:before {\n content: \"\";\n}\n.fa-greater-than-equal:before {\n content: \"\";\n}\n.fa-grimace:before {\n content: \"\";\n}\n.fa-grin:before {\n content: \"\";\n}\n.fa-grin-alt:before {\n content: \"\";\n}\n.fa-grin-beam:before {\n content: \"\";\n}\n.fa-grin-beam-sweat:before {\n content: \"\";\n}\n.fa-grin-hearts:before {\n content: \"\";\n}\n.fa-grin-squint:before {\n content: \"\";\n}\n.fa-grin-squint-tears:before {\n content: \"\";\n}\n.fa-grin-stars:before {\n content: \"\";\n}\n.fa-grin-tears:before {\n content: \"\";\n}\n.fa-grin-tongue:before {\n content: \"\";\n}\n.fa-grin-tongue-squint:before {\n content: \"\";\n}\n.fa-grin-tongue-wink:before {\n content: \"\";\n}\n.fa-grin-wink:before {\n content: \"\";\n}\n.fa-grip-horizontal:before {\n content: \"\";\n}\n.fa-grip-lines:before {\n content: \"\";\n}\n.fa-grip-lines-vertical:before {\n content: \"\";\n}\n.fa-grip-vertical:before {\n content: \"\";\n}\n.fa-gripfire:before {\n content: \"\";\n}\n.fa-grunt:before {\n content: \"\";\n}\n.fa-guilded:before {\n content: \"\";\n}\n.fa-guitar:before {\n content: \"\";\n}\n.fa-gulp:before {\n content: \"\";\n}\n.fa-h-square:before {\n content: \"\";\n}\n.fa-hacker-news:before {\n content: \"\";\n}\n.fa-hacker-news-square:before {\n content: \"\";\n}\n.fa-hackerrank:before {\n content: \"\";\n}\n.fa-hamburger:before {\n content: \"\";\n}\n.fa-hammer:before {\n content: \"\";\n}\n.fa-hamsa:before {\n content: \"\";\n}\n.fa-hand-holding:before {\n content: \"\";\n}\n.fa-hand-holding-heart:before {\n content: \"\";\n}\n.fa-hand-holding-medical:before {\n content: \"\";\n}\n.fa-hand-holding-usd:before {\n content: \"\";\n}\n.fa-hand-holding-water:before {\n content: \"\";\n}\n.fa-hand-lizard:before {\n content: \"\";\n}\n.fa-hand-middle-finger:before {\n content: \"\";\n}\n.fa-hand-paper:before {\n content: \"\";\n}\n.fa-hand-peace:before {\n content: \"\";\n}\n.fa-hand-point-down:before {\n content: \"\";\n}\n.fa-hand-point-left:before {\n content: \"\";\n}\n.fa-hand-point-right:before {\n content: \"\";\n}\n.fa-hand-point-up:before {\n content: \"\";\n}\n.fa-hand-pointer:before {\n content: \"\";\n}\n.fa-hand-rock:before {\n content: \"\";\n}\n.fa-hand-scissors:before {\n content: \"\";\n}\n.fa-hand-sparkles:before {\n content: \"\";\n}\n.fa-hand-spock:before {\n content: \"\";\n}\n.fa-hands:before {\n content: \"\";\n}\n.fa-hands-helping:before {\n content: \"\";\n}\n.fa-hands-wash:before {\n content: \"\";\n}\n.fa-handshake:before {\n content: \"\";\n}\n.fa-handshake-alt-slash:before {\n content: \"\";\n}\n.fa-handshake-slash:before {\n content: \"\";\n}\n.fa-hanukiah:before {\n content: \"\";\n}\n.fa-hard-hat:before {\n content: \"\";\n}\n.fa-hashtag:before {\n content: \"\";\n}\n.fa-hat-cowboy:before {\n content: \"\";\n}\n.fa-hat-cowboy-side:before {\n content: \"\";\n}\n.fa-hat-wizard:before {\n content: \"\";\n}\n.fa-hdd:before {\n content: \"\";\n}\n.fa-head-side-cough:before {\n content: \"\";\n}\n.fa-head-side-cough-slash:before {\n content: \"\";\n}\n.fa-head-side-mask:before {\n content: \"\";\n}\n.fa-head-side-virus:before {\n content: \"\";\n}\n.fa-heading:before {\n content: \"\";\n}\n.fa-headphones:before {\n content: \"\";\n}\n.fa-headphones-alt:before {\n content: \"\";\n}\n.fa-headset:before {\n content: \"\";\n}\n.fa-heart:before {\n content: \"\";\n}\n.fa-heart-broken:before {\n content: \"\";\n}\n.fa-heartbeat:before {\n content: \"\";\n}\n.fa-helicopter:before {\n content: \"\";\n}\n.fa-highlighter:before {\n content: \"\";\n}\n.fa-hiking:before {\n content: \"\";\n}\n.fa-hippo:before {\n content: \"\";\n}\n.fa-hips:before {\n content: \"\";\n}\n.fa-hire-a-helper:before {\n content: \"\";\n}\n.fa-history:before {\n content: \"\";\n}\n.fa-hive:before {\n content: \"\";\n}\n.fa-hockey-puck:before {\n content: \"\";\n}\n.fa-holly-berry:before {\n content: \"\";\n}\n.fa-home:before {\n content: \"\";\n}\n.fa-hooli:before {\n content: \"\";\n}\n.fa-hornbill:before {\n content: \"\";\n}\n.fa-horse:before {\n content: \"\";\n}\n.fa-horse-head:before {\n content: \"\";\n}\n.fa-hospital:before {\n content: \"\";\n}\n.fa-hospital-alt:before {\n content: \"\";\n}\n.fa-hospital-symbol:before {\n content: \"\";\n}\n.fa-hospital-user:before {\n content: \"\";\n}\n.fa-hot-tub:before {\n content: \"\";\n}\n.fa-hotdog:before {\n content: \"\";\n}\n.fa-hotel:before {\n content: \"\";\n}\n.fa-hotjar:before {\n content: \"\";\n}\n.fa-hourglass:before {\n content: \"\";\n}\n.fa-hourglass-end:before {\n content: \"\";\n}\n.fa-hourglass-half:before {\n content: \"\";\n}\n.fa-hourglass-start:before {\n content: \"\";\n}\n.fa-house-damage:before {\n content: \"\";\n}\n.fa-house-user:before {\n content: \"\";\n}\n.fa-houzz:before {\n content: \"\";\n}\n.fa-hryvnia:before {\n content: \"\";\n}\n.fa-html5:before {\n content: \"\";\n}\n.fa-hubspot:before {\n content: \"\";\n}\n.fa-i-cursor:before {\n content: \"\";\n}\n.fa-ice-cream:before {\n content: \"\";\n}\n.fa-icicles:before {\n content: \"\";\n}\n.fa-icons:before {\n content: \"\";\n}\n.fa-id-badge:before {\n content: \"\";\n}\n.fa-id-card:before {\n content: \"\";\n}\n.fa-id-card-alt:before {\n content: \"\";\n}\n.fa-ideal:before {\n content: \"\";\n}\n.fa-igloo:before {\n content: \"\";\n}\n.fa-image:before {\n content: \"\";\n}\n.fa-images:before {\n content: \"\";\n}\n.fa-imdb:before {\n content: \"\";\n}\n.fa-inbox:before {\n content: \"\";\n}\n.fa-indent:before {\n content: \"\";\n}\n.fa-industry:before {\n content: \"\";\n}\n.fa-infinity:before {\n content: \"\";\n}\n.fa-info:before {\n content: \"\";\n}\n.fa-info-circle:before {\n content: \"\";\n}\n.fa-innosoft:before {\n content: \"\";\n}\n.fa-instagram:before {\n content: \"\";\n}\n.fa-instagram-square:before {\n content: \"\";\n}\n.fa-instalod:before {\n content: \"\";\n}\n.fa-intercom:before {\n content: \"\";\n}\n.fa-internet-explorer:before {\n content: \"\";\n}\n.fa-invision:before {\n content: \"\";\n}\n.fa-ioxhost:before {\n content: \"\";\n}\n.fa-italic:before {\n content: \"\";\n}\n.fa-itch-io:before {\n content: \"\";\n}\n.fa-itunes:before {\n content: \"\";\n}\n.fa-itunes-note:before {\n content: \"\";\n}\n.fa-java:before {\n content: \"\";\n}\n.fa-jedi:before {\n content: \"\";\n}\n.fa-jedi-order:before {\n content: \"\";\n}\n.fa-jenkins:before {\n content: \"\";\n}\n.fa-jira:before {\n content: \"\";\n}\n.fa-joget:before {\n content: \"\";\n}\n.fa-joint:before {\n content: \"\";\n}\n.fa-joomla:before {\n content: \"\";\n}\n.fa-journal-whills:before {\n content: \"\";\n}\n.fa-js:before {\n content: \"\";\n}\n.fa-js-square:before {\n content: \"\";\n}\n.fa-jsfiddle:before {\n content: \"\";\n}\n.fa-kaaba:before {\n content: \"\";\n}\n.fa-kaggle:before {\n content: \"\";\n}\n.fa-key:before {\n content: \"\";\n}\n.fa-keybase:before {\n content: \"\";\n}\n.fa-keyboard:before {\n content: \"\";\n}\n.fa-keycdn:before {\n content: \"\";\n}\n.fa-khanda:before {\n content: \"\";\n}\n.fa-kickstarter:before {\n content: \"\";\n}\n.fa-kickstarter-k:before {\n content: \"\";\n}\n.fa-kiss:before {\n content: \"\";\n}\n.fa-kiss-beam:before {\n content: \"\";\n}\n.fa-kiss-wink-heart:before {\n content: \"\";\n}\n.fa-kiwi-bird:before {\n content: \"\";\n}\n.fa-korvue:before {\n content: \"\";\n}\n.fa-landmark:before {\n content: \"\";\n}\n.fa-language:before {\n content: \"\";\n}\n.fa-laptop:before {\n content: \"\";\n}\n.fa-laptop-code:before {\n content: \"\";\n}\n.fa-laptop-house:before {\n content: \"\";\n}\n.fa-laptop-medical:before {\n content: \"\";\n}\n.fa-laravel:before {\n content: \"\";\n}\n.fa-lastfm:before {\n content: \"\";\n}\n.fa-lastfm-square:before {\n content: \"\";\n}\n.fa-laugh:before {\n content: \"\";\n}\n.fa-laugh-beam:before {\n content: \"\";\n}\n.fa-laugh-squint:before {\n content: \"\";\n}\n.fa-laugh-wink:before {\n content: \"\";\n}\n.fa-layer-group:before {\n content: \"\";\n}\n.fa-leaf:before {\n content: \"\";\n}\n.fa-leanpub:before {\n content: \"\";\n}\n.fa-lemon:before {\n content: \"\";\n}\n.fa-less:before {\n content: \"\";\n}\n.fa-less-than:before {\n content: \"\";\n}\n.fa-less-than-equal:before {\n content: \"\";\n}\n.fa-level-down-alt:before {\n content: \"\";\n}\n.fa-level-up-alt:before {\n content: \"\";\n}\n.fa-life-ring:before {\n content: \"\";\n}\n.fa-lightbulb:before {\n content: \"\";\n}\n.fa-line:before {\n content: \"\";\n}\n.fa-link:before {\n content: \"\";\n}\n.fa-linkedin:before {\n content: \"\";\n}\n.fa-linkedin-in:before {\n content: \"\";\n}\n.fa-linode:before {\n content: \"\";\n}\n.fa-linux:before {\n content: \"\";\n}\n.fa-lira-sign:before {\n content: \"\";\n}\n.fa-list:before {\n content: \"\";\n}\n.fa-list-alt:before {\n content: \"\";\n}\n.fa-list-ol:before {\n content: \"\";\n}\n.fa-list-ul:before {\n content: \"\";\n}\n.fa-location-arrow:before {\n content: \"\";\n}\n.fa-lock:before {\n content: \"\";\n}\n.fa-lock-open:before {\n content: \"\";\n}\n.fa-long-arrow-alt-down:before {\n content: \"\";\n}\n.fa-long-arrow-alt-left:before {\n content: \"\";\n}\n.fa-long-arrow-alt-right:before {\n content: \"\";\n}\n.fa-long-arrow-alt-up:before {\n content: \"\";\n}\n.fa-low-vision:before {\n content: \"\";\n}\n.fa-luggage-cart:before {\n content: \"\";\n}\n.fa-lungs:before {\n content: \"\";\n}\n.fa-lungs-virus:before {\n content: \"\";\n}\n.fa-lyft:before {\n content: \"\";\n}\n.fa-magento:before {\n content: \"\";\n}\n.fa-magic:before {\n content: \"\";\n}\n.fa-magnet:before {\n content: \"\";\n}\n.fa-mail-bulk:before {\n content: \"\";\n}\n.fa-mailchimp:before {\n content: \"\";\n}\n.fa-male:before {\n content: \"\";\n}\n.fa-mandalorian:before {\n content: \"\";\n}\n.fa-map:before {\n content: \"\";\n}\n.fa-map-marked:before {\n content: \"\";\n}\n.fa-map-marked-alt:before {\n content: \"\";\n}\n.fa-map-marker:before {\n content: \"\";\n}\n.fa-map-marker-alt:before {\n content: \"\";\n}\n.fa-map-pin:before {\n content: \"\";\n}\n.fa-map-signs:before {\n content: \"\";\n}\n.fa-markdown:before {\n content: \"\";\n}\n.fa-marker:before {\n content: \"\";\n}\n.fa-mars:before {\n content: \"\";\n}\n.fa-mars-double:before {\n content: \"\";\n}\n.fa-mars-stroke:before {\n content: \"\";\n}\n.fa-mars-stroke-h:before {\n content: \"\";\n}\n.fa-mars-stroke-v:before {\n content: \"\";\n}\n.fa-mask:before {\n content: \"\";\n}\n.fa-mastodon:before {\n content: \"\";\n}\n.fa-maxcdn:before {\n content: \"\";\n}\n.fa-mdb:before {\n content: \"\";\n}\n.fa-medal:before {\n content: \"\";\n}\n.fa-medapps:before {\n content: \"\";\n}\n.fa-medium:before {\n content: \"\";\n}\n.fa-medium-m:before {\n content: \"\";\n}\n.fa-medkit:before {\n content: \"\";\n}\n.fa-medrt:before {\n content: \"\";\n}\n.fa-meetup:before {\n content: \"\";\n}\n.fa-megaport:before {\n content: \"\";\n}\n.fa-meh:before {\n content: \"\";\n}\n.fa-meh-blank:before {\n content: \"\";\n}\n.fa-meh-rolling-eyes:before {\n content: \"\";\n}\n.fa-memory:before {\n content: \"\";\n}\n.fa-mendeley:before {\n content: \"\";\n}\n.fa-menorah:before {\n content: \"\";\n}\n.fa-mercury:before {\n content: \"\";\n}\n.fa-meteor:before {\n content: \"\";\n}\n.fa-microblog:before {\n content: \"\";\n}\n.fa-microchip:before {\n content: \"\";\n}\n.fa-microphone:before {\n content: \"\";\n}\n.fa-microphone-alt:before {\n content: \"\";\n}\n.fa-microphone-alt-slash:before {\n content: \"\";\n}\n.fa-microphone-slash:before {\n content: \"\";\n}\n.fa-microscope:before {\n content: \"\";\n}\n.fa-microsoft:before {\n content: \"\";\n}\n.fa-minus:before {\n content: \"\";\n}\n.fa-minus-circle:before {\n content: \"\";\n}\n.fa-minus-square:before {\n content: \"\";\n}\n.fa-mitten:before {\n content: \"\";\n}\n.fa-mix:before {\n content: \"\";\n}\n.fa-mixcloud:before {\n content: \"\";\n}\n.fa-mixer:before {\n content: \"\";\n}\n.fa-mizuni:before {\n content: \"\";\n}\n.fa-mobile:before {\n content: \"\";\n}\n.fa-mobile-alt:before {\n content: \"\";\n}\n.fa-modx:before {\n content: \"\";\n}\n.fa-monero:before {\n content: \"\";\n}\n.fa-money-bill:before {\n content: \"\";\n}\n.fa-money-bill-alt:before {\n content: \"\";\n}\n.fa-money-bill-wave:before {\n content: \"\";\n}\n.fa-money-bill-wave-alt:before {\n content: \"\";\n}\n.fa-money-check:before {\n content: \"\";\n}\n.fa-money-check-alt:before {\n content: \"\";\n}\n.fa-monument:before {\n content: \"\";\n}\n.fa-moon:before {\n content: \"\";\n}\n.fa-mortar-pestle:before {\n content: \"\";\n}\n.fa-mosque:before {\n content: \"\";\n}\n.fa-motorcycle:before {\n content: \"\";\n}\n.fa-mountain:before {\n content: \"\";\n}\n.fa-mouse:before {\n content: \"\";\n}\n.fa-mouse-pointer:before {\n content: \"\";\n}\n.fa-mug-hot:before {\n content: \"\";\n}\n.fa-music:before {\n content: \"\";\n}\n.fa-napster:before {\n content: \"\";\n}\n.fa-neos:before {\n content: \"\";\n}\n.fa-network-wired:before {\n content: \"\";\n}\n.fa-neuter:before {\n content: \"\";\n}\n.fa-newspaper:before {\n content: \"\";\n}\n.fa-nimblr:before {\n content: \"\";\n}\n.fa-node:before {\n content: \"\";\n}\n.fa-node-js:before {\n content: \"\";\n}\n.fa-not-equal:before {\n content: \"\";\n}\n.fa-notes-medical:before {\n content: \"\";\n}\n.fa-npm:before {\n content: \"\";\n}\n.fa-ns8:before {\n content: \"\";\n}\n.fa-nutritionix:before {\n content: \"\";\n}\n.fa-object-group:before {\n content: \"\";\n}\n.fa-object-ungroup:before {\n content: \"\";\n}\n.fa-octopus-deploy:before {\n content: \"\";\n}\n.fa-odnoklassniki:before {\n content: \"\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\";\n}\n.fa-oil-can:before {\n content: \"\";\n}\n.fa-old-republic:before {\n content: \"\";\n}\n.fa-om:before {\n content: \"\";\n}\n.fa-opencart:before {\n content: \"\";\n}\n.fa-openid:before {\n content: \"\";\n}\n.fa-opera:before {\n content: \"\";\n}\n.fa-optin-monster:before {\n content: \"\";\n}\n.fa-orcid:before {\n content: \"\";\n}\n.fa-osi:before {\n content: \"\";\n}\n.fa-otter:before {\n content: \"\";\n}\n.fa-outdent:before {\n content: \"\";\n}\n.fa-page4:before {\n content: \"\";\n}\n.fa-pagelines:before {\n content: \"\";\n}\n.fa-pager:before {\n content: \"\";\n}\n.fa-paint-brush:before {\n content: \"\";\n}\n.fa-paint-roller:before {\n content: \"\";\n}\n.fa-palette:before {\n content: \"\";\n}\n.fa-palfed:before {\n content: \"\";\n}\n.fa-pallet:before {\n content: \"\";\n}\n.fa-paper-plane:before {\n content: \"\";\n}\n.fa-paperclip:before {\n content: \"\";\n}\n.fa-parachute-box:before {\n content: \"\";\n}\n.fa-paragraph:before {\n content: \"\";\n}\n.fa-parking:before {\n content: \"\";\n}\n.fa-passport:before {\n content: \"\";\n}\n.fa-pastafarianism:before {\n content: \"\";\n}\n.fa-paste:before {\n content: \"\";\n}\n.fa-patreon:before {\n content: \"\";\n}\n.fa-pause:before {\n content: \"\";\n}\n.fa-pause-circle:before {\n content: \"\";\n}\n.fa-paw:before {\n content: \"\";\n}\n.fa-paypal:before {\n content: \"\";\n}\n.fa-peace:before {\n content: \"\";\n}\n.fa-pen:before {\n content: \"\";\n}\n.fa-pen-alt:before {\n content: \"\";\n}\n.fa-pen-fancy:before {\n content: \"\";\n}\n.fa-pen-nib:before {\n content: \"\";\n}\n.fa-pen-square:before {\n content: \"\";\n}\n.fa-pencil-alt:before {\n content: \"\";\n}\n.fa-pencil-ruler:before {\n content: \"\";\n}\n.fa-penny-arcade:before {\n content: \"\";\n}\n.fa-people-arrows:before {\n content: \"\";\n}\n.fa-people-carry:before {\n content: \"\";\n}\n.fa-pepper-hot:before {\n content: \"\";\n}\n.fa-perbyte:before {\n content: \"\";\n}\n.fa-percent:before {\n content: \"\";\n}\n.fa-percentage:before {\n content: \"\";\n}\n.fa-periscope:before {\n content: \"\";\n}\n.fa-person-booth:before {\n content: \"\";\n}\n.fa-phabricator:before {\n content: \"\";\n}\n.fa-phoenix-framework:before {\n content: \"\";\n}\n.fa-phoenix-squadron:before {\n content: \"\";\n}\n.fa-phone:before {\n content: \"\";\n}\n.fa-phone-alt:before {\n content: \"\";\n}\n.fa-phone-slash:before {\n content: \"\";\n}\n.fa-phone-square:before {\n content: \"\";\n}\n.fa-phone-square-alt:before {\n content: \"\";\n}\n.fa-phone-volume:before {\n content: \"\";\n}\n.fa-photo-video:before {\n content: \"\";\n}\n.fa-php:before {\n content: \"\";\n}\n.fa-pied-piper:before {\n content: \"\";\n}\n.fa-pied-piper-alt:before {\n content: \"\";\n}\n.fa-pied-piper-hat:before {\n content: \"\";\n}\n.fa-pied-piper-pp:before {\n content: \"\";\n}\n.fa-pied-piper-square:before {\n content: \"\";\n}\n.fa-piggy-bank:before {\n content: \"\";\n}\n.fa-pills:before {\n content: \"\";\n}\n.fa-pinterest:before {\n content: \"\";\n}\n.fa-pinterest-p:before {\n content: \"\";\n}\n.fa-pinterest-square:before {\n content: \"\";\n}\n.fa-pizza-slice:before {\n content: \"\";\n}\n.fa-place-of-worship:before {\n content: \"\";\n}\n.fa-plane:before {\n content: \"\";\n}\n.fa-plane-arrival:before {\n content: \"\";\n}\n.fa-plane-departure:before {\n content: \"\";\n}\n.fa-plane-slash:before {\n content: \"\";\n}\n.fa-play:before {\n content: \"\";\n}\n.fa-play-circle:before {\n content: \"\";\n}\n.fa-playstation:before {\n content: \"\";\n}\n.fa-plug:before {\n content: \"\";\n}\n.fa-plus:before {\n content: \"\";\n}\n.fa-plus-circle:before {\n content: \"\";\n}\n.fa-plus-square:before {\n content: \"\";\n}\n.fa-podcast:before {\n content: \"\";\n}\n.fa-poll:before {\n content: \"\";\n}\n.fa-poll-h:before {\n content: \"\";\n}\n.fa-poo:before {\n content: \"\";\n}\n.fa-poo-storm:before {\n content: \"\";\n}\n.fa-poop:before {\n content: \"\";\n}\n.fa-portrait:before {\n content: \"\";\n}\n.fa-pound-sign:before {\n content: \"\";\n}\n.fa-power-off:before {\n content: \"\";\n}\n.fa-pray:before {\n content: \"\";\n}\n.fa-praying-hands:before {\n content: \"\";\n}\n.fa-prescription:before {\n content: \"\";\n}\n.fa-prescription-bottle:before {\n content: \"\";\n}\n.fa-prescription-bottle-alt:before {\n content: \"\";\n}\n.fa-print:before {\n content: \"\";\n}\n.fa-procedures:before {\n content: \"\";\n}\n.fa-product-hunt:before {\n content: \"\";\n}\n.fa-project-diagram:before {\n content: \"\";\n}\n.fa-pump-medical:before {\n content: \"\";\n}\n.fa-pump-soap:before {\n content: \"\";\n}\n.fa-pushed:before {\n content: \"\";\n}\n.fa-puzzle-piece:before {\n content: \"\";\n}\n.fa-python:before {\n content: \"\";\n}\n.fa-qq:before {\n content: \"\";\n}\n.fa-qrcode:before {\n content: \"\";\n}\n.fa-question:before {\n content: \"\";\n}\n.fa-question-circle:before {\n content: \"\";\n}\n.fa-quidditch:before {\n content: \"\";\n}\n.fa-quinscape:before {\n content: \"\";\n}\n.fa-quora:before {\n content: \"\";\n}\n.fa-quote-left:before {\n content: \"\";\n}\n.fa-quote-right:before {\n content: \"\";\n}\n.fa-quran:before {\n content: \"\";\n}\n.fa-r-project:before {\n content: \"\";\n}\n.fa-radiation:before {\n content: \"\";\n}\n.fa-radiation-alt:before {\n content: \"\";\n}\n.fa-rainbow:before {\n content: \"\";\n}\n.fa-random:before {\n content: \"\";\n}\n.fa-raspberry-pi:before {\n content: \"\";\n}\n.fa-ravelry:before {\n content: \"\";\n}\n.fa-react:before {\n content: \"\";\n}\n.fa-reacteurope:before {\n content: \"\";\n}\n.fa-readme:before {\n content: \"\";\n}\n.fa-rebel:before {\n content: \"\";\n}\n.fa-receipt:before {\n content: \"\";\n}\n.fa-record-vinyl:before {\n content: \"\";\n}\n.fa-recycle:before {\n content: \"\";\n}\n.fa-red-river:before {\n content: \"\";\n}\n.fa-reddit:before {\n content: \"\";\n}\n.fa-reddit-alien:before {\n content: \"\";\n}\n.fa-reddit-square:before {\n content: \"\";\n}\n.fa-redhat:before {\n content: \"\";\n}\n.fa-redo:before {\n content: \"\";\n}\n.fa-redo-alt:before {\n content: \"\";\n}\n.fa-registered:before {\n content: \"\";\n}\n.fa-remove-format:before {\n content: \"\";\n}\n.fa-renren:before {\n content: \"\";\n}\n.fa-reply:before {\n content: \"\";\n}\n.fa-reply-all:before {\n content: \"\";\n}\n.fa-replyd:before {\n content: \"\";\n}\n.fa-republican:before {\n content: \"\";\n}\n.fa-researchgate:before {\n content: \"\";\n}\n.fa-resolving:before {\n content: \"\";\n}\n.fa-restroom:before {\n content: \"\";\n}\n.fa-retweet:before {\n content: \"\";\n}\n.fa-rev:before {\n content: \"\";\n}\n.fa-ribbon:before {\n content: \"\";\n}\n.fa-ring:before {\n content: \"\";\n}\n.fa-road:before {\n content: \"\";\n}\n.fa-robot:before {\n content: \"\";\n}\n.fa-rocket:before {\n content: \"\";\n}\n.fa-rocketchat:before {\n content: \"\";\n}\n.fa-rockrms:before {\n content: \"\";\n}\n.fa-route:before {\n content: \"\";\n}\n.fa-rss:before {\n content: \"\";\n}\n.fa-rss-square:before {\n content: \"\";\n}\n.fa-ruble-sign:before {\n content: \"\";\n}\n.fa-ruler:before {\n content: \"\";\n}\n.fa-ruler-combined:before {\n content: \"\";\n}\n.fa-ruler-horizontal:before {\n content: \"\";\n}\n.fa-ruler-vertical:before {\n content: \"\";\n}\n.fa-running:before {\n content: \"\";\n}\n.fa-rupee-sign:before {\n content: \"\";\n}\n.fa-rust:before {\n content: \"\";\n}\n.fa-sad-cry:before {\n content: \"\";\n}\n.fa-sad-tear:before {\n content: \"\";\n}\n.fa-safari:before {\n content: \"\";\n}\n.fa-salesforce:before {\n content: \"\";\n}\n.fa-sass:before {\n content: \"\";\n}\n.fa-satellite:before {\n content: \"\";\n}\n.fa-satellite-dish:before {\n content: \"\";\n}\n.fa-save:before {\n content: \"\";\n}\n.fa-schlix:before {\n content: \"\";\n}\n.fa-school:before {\n content: \"\";\n}\n.fa-screwdriver:before {\n content: \"\";\n}\n.fa-scribd:before {\n content: \"\";\n}\n.fa-scroll:before {\n content: \"\";\n}\n.fa-sd-card:before {\n content: \"\";\n}\n.fa-search:before {\n content: \"\";\n}\n.fa-search-dollar:before {\n content: \"\";\n}\n.fa-search-location:before {\n content: \"\";\n}\n.fa-search-minus:before {\n content: \"\";\n}\n.fa-search-plus:before {\n content: \"\";\n}\n.fa-searchengin:before {\n content: \"\";\n}\n.fa-seedling:before {\n content: \"\";\n}\n.fa-sellcast:before {\n content: \"\";\n}\n.fa-sellsy:before {\n content: \"\";\n}\n.fa-server:before {\n content: \"\";\n}\n.fa-servicestack:before {\n content: \"\";\n}\n.fa-shapes:before {\n content: \"\";\n}\n.fa-share:before {\n content: \"\";\n}\n.fa-share-alt:before {\n content: \"\";\n}\n.fa-share-alt-square:before {\n content: \"\";\n}\n.fa-share-square:before {\n content: \"\";\n}\n.fa-shekel-sign:before {\n content: \"\";\n}\n.fa-shield-alt:before {\n content: \"\";\n}\n.fa-shield-virus:before {\n content: \"\";\n}\n.fa-ship:before {\n content: \"\";\n}\n.fa-shipping-fast:before {\n content: \"\";\n}\n.fa-shirtsinbulk:before {\n content: \"\";\n}\n.fa-shoe-prints:before {\n content: \"\";\n}\n.fa-shopify:before {\n content: \"\";\n}\n.fa-shopping-bag:before {\n content: \"\";\n}\n.fa-shopping-basket:before {\n content: \"\";\n}\n.fa-shopping-cart:before {\n content: \"\";\n}\n.fa-shopware:before {\n content: \"\";\n}\n.fa-shower:before {\n content: \"\";\n}\n.fa-shuttle-van:before {\n content: \"\";\n}\n.fa-sign:before {\n content: \"\";\n}\n.fa-sign-in-alt:before {\n content: \"\";\n}\n.fa-sign-language:before {\n content: \"\";\n}\n.fa-sign-out-alt:before {\n content: \"\";\n}\n.fa-signal:before {\n content: \"\";\n}\n.fa-signature:before {\n content: \"\";\n}\n.fa-sim-card:before {\n content: \"\";\n}\n.fa-simplybuilt:before {\n content: \"\";\n}\n.fa-sink:before {\n content: \"\";\n}\n.fa-sistrix:before {\n content: \"\";\n}\n.fa-sitemap:before {\n content: \"\";\n}\n.fa-sith:before {\n content: \"\";\n}\n.fa-skating:before {\n content: \"\";\n}\n.fa-sketch:before {\n content: \"\";\n}\n.fa-skiing:before {\n content: \"\";\n}\n.fa-skiing-nordic:before {\n content: \"\";\n}\n.fa-skull:before {\n content: \"\";\n}\n.fa-skull-crossbones:before {\n content: \"\";\n}\n.fa-skyatlas:before {\n content: \"\";\n}\n.fa-skype:before {\n content: \"\";\n}\n.fa-slack:before {\n content: \"\";\n}\n.fa-slack-hash:before {\n content: \"\";\n}\n.fa-slash:before {\n content: \"\";\n}\n.fa-sleigh:before {\n content: \"\";\n}\n.fa-sliders-h:before {\n content: \"\";\n}\n.fa-slideshare:before {\n content: \"\";\n}\n.fa-smile:before {\n content: \"\";\n}\n.fa-smile-beam:before {\n content: \"\";\n}\n.fa-smile-wink:before {\n content: \"\";\n}\n.fa-smog:before {\n content: \"\";\n}\n.fa-smoking:before {\n content: \"\";\n}\n.fa-smoking-ban:before {\n content: \"\";\n}\n.fa-sms:before {\n content: \"\";\n}\n.fa-snapchat:before {\n content: \"\";\n}\n.fa-snapchat-ghost:before {\n content: \"\";\n}\n.fa-snapchat-square:before {\n content: \"\";\n}\n.fa-snowboarding:before {\n content: \"\";\n}\n.fa-snowflake:before {\n content: \"\";\n}\n.fa-snowman:before {\n content: \"\";\n}\n.fa-snowplow:before {\n content: \"\";\n}\n.fa-soap:before {\n content: \"\";\n}\n.fa-socks:before {\n content: \"\";\n}\n.fa-solar-panel:before {\n content: \"\";\n}\n.fa-sort:before {\n content: \"\";\n}\n.fa-sort-alpha-down:before {\n content: \"\";\n}\n.fa-sort-alpha-down-alt:before {\n content: \"\";\n}\n.fa-sort-alpha-up:before {\n content: \"\";\n}\n.fa-sort-alpha-up-alt:before {\n content: \"\";\n}\n.fa-sort-amount-down:before {\n content: \"\";\n}\n.fa-sort-amount-down-alt:before {\n content: \"\";\n}\n.fa-sort-amount-up:before {\n content: \"\";\n}\n.fa-sort-amount-up-alt:before {\n content: \"\";\n}\n.fa-sort-down:before {\n content: \"\";\n}\n.fa-sort-numeric-down:before {\n content: \"\";\n}\n.fa-sort-numeric-down-alt:before {\n content: \"\";\n}\n.fa-sort-numeric-up:before {\n content: \"\";\n}\n.fa-sort-numeric-up-alt:before {\n content: \"\";\n}\n.fa-sort-up:before {\n content: \"\";\n}\n.fa-soundcloud:before {\n content: \"\";\n}\n.fa-sourcetree:before {\n content: \"\";\n}\n.fa-spa:before {\n content: \"\";\n}\n.fa-space-shuttle:before {\n content: \"\";\n}\n.fa-speakap:before {\n content: \"\";\n}\n.fa-speaker-deck:before {\n content: \"\";\n}\n.fa-spell-check:before {\n content: \"\";\n}\n.fa-spider:before {\n content: \"\";\n}\n.fa-spinner:before {\n content: \"\";\n}\n.fa-splotch:before {\n content: \"\";\n}\n.fa-spotify:before {\n content: \"\";\n}\n.fa-spray-can:before {\n content: \"\";\n}\n.fa-square:before {\n content: \"\";\n}\n.fa-square-full:before {\n content: \"\";\n}\n.fa-square-root-alt:before {\n content: \"\";\n}\n.fa-squarespace:before {\n content: \"\";\n}\n.fa-stack-exchange:before {\n content: \"\";\n}\n.fa-stack-overflow:before {\n content: \"\";\n}\n.fa-stackpath:before {\n content: \"\";\n}\n.fa-stamp:before {\n content: \"\";\n}\n.fa-star:before {\n content: \"\";\n}\n.fa-star-and-crescent:before {\n content: \"\";\n}\n.fa-star-half:before {\n content: \"\";\n}\n.fa-star-half-alt:before {\n content: \"\";\n}\n.fa-star-of-david:before {\n content: \"\";\n}\n.fa-star-of-life:before {\n content: \"\";\n}\n.fa-staylinked:before {\n content: \"\";\n}\n.fa-steam:before {\n content: \"\";\n}\n.fa-steam-square:before {\n content: \"\";\n}\n.fa-steam-symbol:before {\n content: \"\";\n}\n.fa-step-backward:before {\n content: \"\";\n}\n.fa-step-forward:before {\n content: \"\";\n}\n.fa-stethoscope:before {\n content: \"\";\n}\n.fa-sticker-mule:before {\n content: \"\";\n}\n.fa-sticky-note:before {\n content: \"\";\n}\n.fa-stop:before {\n content: \"\";\n}\n.fa-stop-circle:before {\n content: \"\";\n}\n.fa-stopwatch:before {\n content: \"\";\n}\n.fa-stopwatch-20:before {\n content: \"\";\n}\n.fa-store:before {\n content: \"\";\n}\n.fa-store-alt:before {\n content: \"\";\n}\n.fa-store-alt-slash:before {\n content: \"\";\n}\n.fa-store-slash:before {\n content: \"\";\n}\n.fa-strava:before {\n content: \"\";\n}\n.fa-stream:before {\n content: \"\";\n}\n.fa-street-view:before {\n content: \"\";\n}\n.fa-strikethrough:before {\n content: \"\";\n}\n.fa-stripe:before {\n content: \"\";\n}\n.fa-stripe-s:before {\n content: \"\";\n}\n.fa-stroopwafel:before {\n content: \"\";\n}\n.fa-studiovinari:before {\n content: \"\";\n}\n.fa-stumbleupon:before {\n content: \"\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\";\n}\n.fa-subscript:before {\n content: \"\";\n}\n.fa-subway:before {\n content: \"\";\n}\n.fa-suitcase:before {\n content: \"\";\n}\n.fa-suitcase-rolling:before {\n content: \"\";\n}\n.fa-sun:before {\n content: \"\";\n}\n.fa-superpowers:before {\n content: \"\";\n}\n.fa-superscript:before {\n content: \"\";\n}\n.fa-supple:before {\n content: \"\";\n}\n.fa-surprise:before {\n content: \"\";\n}\n.fa-suse:before {\n content: \"\";\n}\n.fa-swatchbook:before {\n content: \"\";\n}\n.fa-swift:before {\n content: \"\";\n}\n.fa-swimmer:before {\n content: \"\";\n}\n.fa-swimming-pool:before {\n content: \"\";\n}\n.fa-symfony:before {\n content: \"\";\n}\n.fa-synagogue:before {\n content: \"\";\n}\n.fa-sync:before {\n content: \"\";\n}\n.fa-sync-alt:before {\n content: \"\";\n}\n.fa-syringe:before {\n content: \"\";\n}\n.fa-table:before {\n content: \"\";\n}\n.fa-table-tennis:before {\n content: \"\";\n}\n.fa-tablet:before {\n content: \"\";\n}\n.fa-tablet-alt:before {\n content: \"\";\n}\n.fa-tablets:before {\n content: \"\";\n}\n.fa-tachometer-alt:before {\n content: \"\";\n}\n.fa-tag:before {\n content: \"\";\n}\n.fa-tags:before {\n content: \"\";\n}\n.fa-tape:before {\n content: \"\";\n}\n.fa-tasks:before {\n content: \"\";\n}\n.fa-taxi:before {\n content: \"\";\n}\n.fa-teamspeak:before {\n content: \"\";\n}\n.fa-teeth:before {\n content: \"\";\n}\n.fa-teeth-open:before {\n content: \"\";\n}\n.fa-telegram:before {\n content: \"\";\n}\n.fa-telegram-plane:before {\n content: \"\";\n}\n.fa-temperature-high:before {\n content: \"\";\n}\n.fa-temperature-low:before {\n content: \"\";\n}\n.fa-tencent-weibo:before {\n content: \"\";\n}\n.fa-tenge:before {\n content: \"\";\n}\n.fa-terminal:before {\n content: \"\";\n}\n.fa-text-height:before {\n content: \"\";\n}\n.fa-text-width:before {\n content: \"\";\n}\n.fa-th:before {\n content: \"\";\n}\n.fa-th-large:before {\n content: \"\";\n}\n.fa-th-list:before {\n content: \"\";\n}\n.fa-the-red-yeti:before {\n content: \"\";\n}\n.fa-theater-masks:before {\n content: \"\";\n}\n.fa-themeco:before {\n content: \"\";\n}\n.fa-themeisle:before {\n content: \"\";\n}\n.fa-thermometer:before {\n content: \"\";\n}\n.fa-thermometer-empty:before {\n content: \"\";\n}\n.fa-thermometer-full:before {\n content: \"\";\n}\n.fa-thermometer-half:before {\n content: \"\";\n}\n.fa-thermometer-quarter:before {\n content: \"\";\n}\n.fa-thermometer-three-quarters:before {\n content: \"\";\n}\n.fa-think-peaks:before {\n content: \"\";\n}\n.fa-thumbs-down:before {\n content: \"\";\n}\n.fa-thumbs-up:before {\n content: \"\";\n}\n.fa-thumbtack:before {\n content: \"\";\n}\n.fa-ticket-alt:before {\n content: \"\";\n}\n.fa-tiktok:before {\n content: \"\";\n}\n.fa-times:before {\n content: \"\";\n}\n.fa-times-circle:before {\n content: \"\";\n}\n.fa-tint:before {\n content: \"\";\n}\n.fa-tint-slash:before {\n content: \"\";\n}\n.fa-tired:before {\n content: \"\";\n}\n.fa-toggle-off:before {\n content: \"\";\n}\n.fa-toggle-on:before {\n content: \"\";\n}\n.fa-toilet:before {\n content: \"\";\n}\n.fa-toilet-paper:before {\n content: \"\";\n}\n.fa-toilet-paper-slash:before {\n content: \"\";\n}\n.fa-toolbox:before {\n content: \"\";\n}\n.fa-tools:before {\n content: \"\";\n}\n.fa-tooth:before {\n content: \"\";\n}\n.fa-torah:before {\n content: \"\";\n}\n.fa-torii-gate:before {\n content: \"\";\n}\n.fa-tractor:before {\n content: \"\";\n}\n.fa-trade-federation:before {\n content: \"\";\n}\n.fa-trademark:before {\n content: \"\";\n}\n.fa-traffic-light:before {\n content: \"\";\n}\n.fa-trailer:before {\n content: \"\";\n}\n.fa-train:before {\n content: \"\";\n}\n.fa-tram:before {\n content: \"\";\n}\n.fa-transgender:before {\n content: \"\";\n}\n.fa-transgender-alt:before {\n content: \"\";\n}\n.fa-trash:before {\n content: \"\";\n}\n.fa-trash-alt:before {\n content: \"\";\n}\n.fa-trash-restore:before {\n content: \"\";\n}\n.fa-trash-restore-alt:before {\n content: \"\";\n}\n.fa-tree:before {\n content: \"\";\n}\n.fa-trello:before {\n content: \"\";\n}\n.fa-tripadvisor:before {\n content: \"\";\n}\n.fa-trophy:before {\n content: \"\";\n}\n.fa-truck:before {\n content: \"\";\n}\n.fa-truck-loading:before {\n content: \"\";\n}\n.fa-truck-monster:before {\n content: \"\";\n}\n.fa-truck-moving:before {\n content: \"\";\n}\n.fa-truck-pickup:before {\n content: \"\";\n}\n.fa-tshirt:before {\n content: \"\";\n}\n.fa-tty:before {\n content: \"\";\n}\n.fa-tumblr:before {\n content: \"\";\n}\n.fa-tumblr-square:before {\n content: \"\";\n}\n.fa-tv:before {\n content: \"\";\n}\n.fa-twitch:before {\n content: \"\";\n}\n.fa-twitter:before {\n content: \"\";\n}\n.fa-twitter-square:before {\n content: \"\";\n}\n.fa-typo3:before {\n content: \"\";\n}\n.fa-uber:before {\n content: \"\";\n}\n.fa-ubuntu:before {\n content: \"\";\n}\n.fa-uikit:before {\n content: \"\";\n}\n.fa-umbraco:before {\n content: \"\";\n}\n.fa-umbrella:before {\n content: \"\";\n}\n.fa-umbrella-beach:before {\n content: \"\";\n}\n.fa-uncharted:before {\n content: \"\";\n}\n.fa-underline:before {\n content: \"\";\n}\n.fa-undo:before {\n content: \"\";\n}\n.fa-undo-alt:before {\n content: \"\";\n}\n.fa-uniregistry:before {\n content: \"\";\n}\n.fa-unity:before {\n content: \"\";\n}\n.fa-universal-access:before {\n content: \"\";\n}\n.fa-university:before {\n content: \"\";\n}\n.fa-unlink:before {\n content: \"\";\n}\n.fa-unlock:before {\n content: \"\";\n}\n.fa-unlock-alt:before {\n content: \"\";\n}\n.fa-unsplash:before {\n content: \"\";\n}\n.fa-untappd:before {\n content: \"\";\n}\n.fa-upload:before {\n content: \"\";\n}\n.fa-ups:before {\n content: \"\";\n}\n.fa-usb:before {\n content: \"\";\n}\n.fa-user:before {\n content: \"\";\n}\n.fa-user-alt:before {\n content: \"\";\n}\n.fa-user-alt-slash:before {\n content: \"\";\n}\n.fa-user-astronaut:before {\n content: \"\";\n}\n.fa-user-check:before {\n content: \"\";\n}\n.fa-user-circle:before {\n content: \"\";\n}\n.fa-user-clock:before {\n content: \"\";\n}\n.fa-user-cog:before {\n content: \"\";\n}\n.fa-user-edit:before {\n content: \"\";\n}\n.fa-user-friends:before {\n content: \"\";\n}\n.fa-user-graduate:before {\n content: \"\";\n}\n.fa-user-injured:before {\n content: \"\";\n}\n.fa-user-lock:before {\n content: \"\";\n}\n.fa-user-md:before {\n content: \"\";\n}\n.fa-user-minus:before {\n content: \"\";\n}\n.fa-user-ninja:before {\n content: \"\";\n}\n.fa-user-nurse:before {\n content: \"\";\n}\n.fa-user-plus:before {\n content: \"\";\n}\n.fa-user-secret:before {\n content: \"\";\n}\n.fa-user-shield:before {\n content: \"\";\n}\n.fa-user-slash:before {\n content: \"\";\n}\n.fa-user-tag:before {\n content: \"\";\n}\n.fa-user-tie:before {\n content: \"\";\n}\n.fa-user-times:before {\n content: \"\";\n}\n.fa-users:before {\n content: \"\";\n}\n.fa-users-cog:before {\n content: \"\";\n}\n.fa-users-slash:before {\n content: \"\";\n}\n.fa-usps:before {\n content: \"\";\n}\n.fa-ussunnah:before {\n content: \"\";\n}\n.fa-utensil-spoon:before {\n content: \"\";\n}\n.fa-utensils:before {\n content: \"\";\n}\n.fa-vaadin:before {\n content: \"\";\n}\n.fa-vector-square:before {\n content: \"\";\n}\n.fa-venus:before {\n content: \"\";\n}\n.fa-venus-double:before {\n content: \"\";\n}\n.fa-venus-mars:before {\n content: \"\";\n}\n.fa-vest:before {\n content: \"\";\n}\n.fa-vest-patches:before {\n content: \"\";\n}\n.fa-viacoin:before {\n content: \"\";\n}\n.fa-viadeo:before {\n content: \"\";\n}\n.fa-viadeo-square:before {\n content: \"\";\n}\n.fa-vial:before {\n content: \"\";\n}\n.fa-vials:before {\n content: \"\";\n}\n.fa-viber:before {\n content: \"\";\n}\n.fa-video:before {\n content: \"\";\n}\n.fa-video-slash:before {\n content: \"\";\n}\n.fa-vihara:before {\n content: \"\";\n}\n.fa-vimeo:before {\n content: \"\";\n}\n.fa-vimeo-square:before {\n content: \"\";\n}\n.fa-vimeo-v:before {\n content: \"\";\n}\n.fa-vine:before {\n content: \"\";\n}\n.fa-virus:before {\n content: \"\";\n}\n.fa-virus-slash:before {\n content: \"\";\n}\n.fa-viruses:before {\n content: \"\";\n}\n.fa-vk:before {\n content: \"\";\n}\n.fa-vnv:before {\n content: \"\";\n}\n.fa-voicemail:before {\n content: \"\";\n}\n.fa-volleyball-ball:before {\n content: \"\";\n}\n.fa-volume-down:before {\n content: \"\";\n}\n.fa-volume-mute:before {\n content: \"\";\n}\n.fa-volume-off:before {\n content: \"\";\n}\n.fa-volume-up:before {\n content: \"\";\n}\n.fa-vote-yea:before {\n content: \"\";\n}\n.fa-vr-cardboard:before {\n content: \"\";\n}\n.fa-vuejs:before {\n content: \"\";\n}\n.fa-walking:before {\n content: \"\";\n}\n.fa-wallet:before {\n content: \"\";\n}\n.fa-warehouse:before {\n content: \"\";\n}\n.fa-watchman-monitoring:before {\n content: \"\";\n}\n.fa-water:before {\n content: \"\";\n}\n.fa-wave-square:before {\n content: \"\";\n}\n.fa-waze:before {\n content: \"\";\n}\n.fa-weebly:before {\n content: \"\";\n}\n.fa-weibo:before {\n content: \"\";\n}\n.fa-weight:before {\n content: \"\";\n}\n.fa-weight-hanging:before {\n content: \"\";\n}\n.fa-weixin:before {\n content: \"\";\n}\n.fa-whatsapp:before {\n content: \"\";\n}\n.fa-whatsapp-square:before {\n content: \"\";\n}\n.fa-wheelchair:before {\n content: \"\";\n}\n.fa-whmcs:before {\n content: \"\";\n}\n.fa-wifi:before {\n content: \"\";\n}\n.fa-wikipedia-w:before {\n content: \"\";\n}\n.fa-wind:before {\n content: \"\";\n}\n.fa-window-close:before {\n content: \"\";\n}\n.fa-window-maximize:before {\n content: \"\";\n}\n.fa-window-minimize:before {\n content: \"\";\n}\n.fa-window-restore:before {\n content: \"\";\n}\n.fa-windows:before {\n content: \"\";\n}\n.fa-wine-bottle:before {\n content: \"\";\n}\n.fa-wine-glass:before {\n content: \"\";\n}\n.fa-wine-glass-alt:before {\n content: \"\";\n}\n.fa-wix:before {\n content: \"\";\n}\n.fa-wizards-of-the-coast:before {\n content: \"\";\n}\n.fa-wodu:before {\n content: \"\";\n}\n.fa-wolf-pack-battalion:before {\n content: \"\";\n}\n.fa-won-sign:before {\n content: \"\";\n}\n.fa-wordpress:before {\n content: \"\";\n}\n.fa-wordpress-simple:before {\n content: \"\";\n}\n.fa-wpbeginner:before {\n content: \"\";\n}\n.fa-wpexplorer:before {\n content: \"\";\n}\n.fa-wpforms:before {\n content: \"\";\n}\n.fa-wpressr:before {\n content: \"\";\n}\n.fa-wrench:before {\n content: \"\";\n}\n.fa-x-ray:before {\n content: \"\";\n}\n.fa-xbox:before {\n content: \"\";\n}\n.fa-xing:before {\n content: \"\";\n}\n.fa-xing-square:before {\n content: \"\";\n}\n.fa-y-combinator:before {\n content: \"\";\n}\n.fa-yahoo:before {\n content: \"\";\n}\n.fa-yammer:before {\n content: \"\";\n}\n.fa-yandex:before {\n content: \"\";\n}\n.fa-yandex-international:before {\n content: \"\";\n}\n.fa-yarn:before {\n content: \"\";\n}\n.fa-yelp:before {\n content: \"\";\n}\n.fa-yen-sign:before {\n content: \"\";\n}\n.fa-yin-yang:before {\n content: \"\";\n}\n.fa-yoast:before {\n content: \"\";\n}\n.fa-youtube:before {\n content: \"\";\n}\n.fa-youtube-square:before {\n content: \"\";\n}\n.fa-zhihu:before {\n content: \"\";\n}\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}","/*!\n * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n font-family: \"Font Awesome 5 Free\";\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url('fa-solid-900.eot');\n src: url('fa-solid-900.eot') format(\"embedded-opentype\"), url('fa-solid-900.woff2') format(\"woff2\"), url('fa-solid-900.woff') format(\"woff\"), url('fa-solid-900.ttf') format(\"truetype\"), url('fa-solid-900.svg') format(\"svg\");\n}\n.fa,\n.fas {\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n}","/*!\n * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n font-family: \"Font Awesome 5 Free\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url('fa-regular-400.eot');\n src: url('fa-regular-400.eot') format(\"embedded-opentype\"), url('fa-regular-400.woff2') format(\"woff2\"), url('fa-regular-400.woff') format(\"woff\"), url('fa-regular-400.ttf') format(\"truetype\"), url('fa-regular-400.svg') format(\"svg\");\n}\n.far {\n font-family: \"Font Awesome 5 Free\";\n font-weight: 400;\n}","/*!\n * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n font-family: \"Font Awesome 5 Brands\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url('fa-brands-400.eot');\n src: url('fa-brands-400.eot') format(\"embedded-opentype\"), url('fa-brands-400.woff2') format(\"woff2\"), url('fa-brands-400.woff') format(\"woff\"), url('fa-brands-400.ttf') format(\"truetype\"), url('fa-brands-400.svg') format(\"svg\");\n}\n.fab {\n font-family: \"Font Awesome 5 Brands\";\n font-weight: 400;\n}","@charset \"UTF-8\";\n/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\narticle,\naside,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection {\n display: block;\n}\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\ndt {\n font-weight: 700;\n}\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\nblockquote {\n margin: 0 0 1rem;\n}\nb,\nstrong {\n font-weight: bolder;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\nfigure {\n margin: 0 0 1rem;\n}\nimg {\n vertical-align: middle;\n border-style: none;\n}\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\ntable {\n border-collapse: collapse;\n}\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\nth {\n text-align: inherit;\n}\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\nbutton {\n border-radius: 0;\n}\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\nbutton,\ninput {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nselect {\n word-wrap: normal;\n}\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\nbutton::-moz-focus-inner,\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\ninput[type=radio],\ninput[type=checkbox] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=date],\ninput[type=time],\ninput[type=datetime-local],\ninput[type=month] {\n -webkit-appearance: listbox;\n}\ntextarea {\n overflow: auto;\n resize: vertical;\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\nprogress {\n vertical-align: baseline;\n}\n[type=number]::-webkit-inner-spin-button,\n[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n[type=search] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\noutput {\n display: inline-block;\n}\nsummary {\n display: list-item;\n cursor: pointer;\n}\ntemplate {\n display: none;\n}\n[hidden] {\n display: none !important;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\nh1,\n.h1 {\n font-size: 2.5rem;\n}\nh2,\n.h2 {\n font-size: 2rem;\n}\nh3,\n.h3 {\n font-size: 1.75rem;\n}\nh4,\n.h4 {\n font-size: 1.5rem;\n}\nh5,\n.h5 {\n font-size: 1.25rem;\n}\nh6,\n.h6 {\n font-size: 1rem;\n}\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n.list-inline-item {\n display: inline-block;\n}\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n.blockquote-footer::before {\n content: \"— \";\n}\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n.figure {\n display: inline-block;\n}\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n.container-fluid, .container-xl, .container-lg, .container-md, .container-sm {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n.no-gutters > .col,\n.no-gutters > [class*=col-] {\n padding-right: 0;\n padding-left: 0;\n}\n.col-xl,\n.col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg,\n.col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md,\n.col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm,\n.col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col,\n.col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n.row-cols-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n}\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n.row-cols-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n}\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n.col-1 {\n flex: 0 0 8.3333333333%;\n max-width: 8.3333333333%;\n}\n.col-2 {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n}\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n.col-4 {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n}\n.col-5 {\n flex: 0 0 41.6666666667%;\n max-width: 41.6666666667%;\n}\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n.col-7 {\n flex: 0 0 58.3333333333%;\n max-width: 58.3333333333%;\n}\n.col-8 {\n flex: 0 0 66.6666666667%;\n max-width: 66.6666666667%;\n}\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n.col-10 {\n flex: 0 0 83.3333333333%;\n max-width: 83.3333333333%;\n}\n.col-11 {\n flex: 0 0 91.6666666667%;\n max-width: 91.6666666667%;\n}\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n.order-first {\n order: -1;\n}\n.order-last {\n order: 13;\n}\n.order-0 {\n order: 0;\n}\n.order-1 {\n order: 1;\n}\n.order-2 {\n order: 2;\n}\n.order-3 {\n order: 3;\n}\n.order-4 {\n order: 4;\n}\n.order-5 {\n order: 5;\n}\n.order-6 {\n order: 6;\n}\n.order-7 {\n order: 7;\n}\n.order-8 {\n order: 8;\n}\n.order-9 {\n order: 9;\n}\n.order-10 {\n order: 10;\n}\n.order-11 {\n order: 11;\n}\n.order-12 {\n order: 12;\n}\n.offset-1 {\n margin-left: 8.3333333333%;\n}\n.offset-2 {\n margin-left: 16.6666666667%;\n}\n.offset-3 {\n margin-left: 25%;\n}\n.offset-4 {\n margin-left: 33.3333333333%;\n}\n.offset-5 {\n margin-left: 41.6666666667%;\n}\n.offset-6 {\n margin-left: 50%;\n}\n.offset-7 {\n margin-left: 58.3333333333%;\n}\n.offset-8 {\n margin-left: 66.6666666667%;\n}\n.offset-9 {\n margin-left: 75%;\n}\n.offset-10 {\n margin-left: 83.3333333333%;\n}\n.offset-11 {\n margin-left: 91.6666666667%;\n}\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .row-cols-sm-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n\n .row-cols-sm-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n\n .col-sm-1 {\n flex: 0 0 8.3333333333%;\n max-width: 8.3333333333%;\n }\n\n .col-sm-2 {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .col-sm-4 {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .col-sm-5 {\n flex: 0 0 41.6666666667%;\n max-width: 41.6666666667%;\n }\n\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .col-sm-7 {\n flex: 0 0 58.3333333333%;\n max-width: 58.3333333333%;\n }\n\n .col-sm-8 {\n flex: 0 0 66.6666666667%;\n max-width: 66.6666666667%;\n }\n\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n\n .col-sm-10 {\n flex: 0 0 83.3333333333%;\n max-width: 83.3333333333%;\n }\n\n .col-sm-11 {\n flex: 0 0 91.6666666667%;\n max-width: 91.6666666667%;\n }\n\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .order-sm-first {\n order: -1;\n }\n\n .order-sm-last {\n order: 13;\n }\n\n .order-sm-0 {\n order: 0;\n }\n\n .order-sm-1 {\n order: 1;\n }\n\n .order-sm-2 {\n order: 2;\n }\n\n .order-sm-3 {\n order: 3;\n }\n\n .order-sm-4 {\n order: 4;\n }\n\n .order-sm-5 {\n order: 5;\n }\n\n .order-sm-6 {\n order: 6;\n }\n\n .order-sm-7 {\n order: 7;\n }\n\n .order-sm-8 {\n order: 8;\n }\n\n .order-sm-9 {\n order: 9;\n }\n\n .order-sm-10 {\n order: 10;\n }\n\n .order-sm-11 {\n order: 11;\n }\n\n .order-sm-12 {\n order: 12;\n }\n\n .offset-sm-0 {\n margin-left: 0;\n }\n\n .offset-sm-1 {\n margin-left: 8.3333333333%;\n }\n\n .offset-sm-2 {\n margin-left: 16.6666666667%;\n }\n\n .offset-sm-3 {\n margin-left: 25%;\n }\n\n .offset-sm-4 {\n margin-left: 33.3333333333%;\n }\n\n .offset-sm-5 {\n margin-left: 41.6666666667%;\n }\n\n .offset-sm-6 {\n margin-left: 50%;\n }\n\n .offset-sm-7 {\n margin-left: 58.3333333333%;\n }\n\n .offset-sm-8 {\n margin-left: 66.6666666667%;\n }\n\n .offset-sm-9 {\n margin-left: 75%;\n }\n\n .offset-sm-10 {\n margin-left: 83.3333333333%;\n }\n\n .offset-sm-11 {\n margin-left: 91.6666666667%;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .row-cols-md-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n\n .row-cols-md-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n\n .col-md-1 {\n flex: 0 0 8.3333333333%;\n max-width: 8.3333333333%;\n }\n\n .col-md-2 {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .col-md-4 {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .col-md-5 {\n flex: 0 0 41.6666666667%;\n max-width: 41.6666666667%;\n }\n\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .col-md-7 {\n flex: 0 0 58.3333333333%;\n max-width: 58.3333333333%;\n }\n\n .col-md-8 {\n flex: 0 0 66.6666666667%;\n max-width: 66.6666666667%;\n }\n\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n\n .col-md-10 {\n flex: 0 0 83.3333333333%;\n max-width: 83.3333333333%;\n }\n\n .col-md-11 {\n flex: 0 0 91.6666666667%;\n max-width: 91.6666666667%;\n }\n\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .order-md-first {\n order: -1;\n }\n\n .order-md-last {\n order: 13;\n }\n\n .order-md-0 {\n order: 0;\n }\n\n .order-md-1 {\n order: 1;\n }\n\n .order-md-2 {\n order: 2;\n }\n\n .order-md-3 {\n order: 3;\n }\n\n .order-md-4 {\n order: 4;\n }\n\n .order-md-5 {\n order: 5;\n }\n\n .order-md-6 {\n order: 6;\n }\n\n .order-md-7 {\n order: 7;\n }\n\n .order-md-8 {\n order: 8;\n }\n\n .order-md-9 {\n order: 9;\n }\n\n .order-md-10 {\n order: 10;\n }\n\n .order-md-11 {\n order: 11;\n }\n\n .order-md-12 {\n order: 12;\n }\n\n .offset-md-0 {\n margin-left: 0;\n }\n\n .offset-md-1 {\n margin-left: 8.3333333333%;\n }\n\n .offset-md-2 {\n margin-left: 16.6666666667%;\n }\n\n .offset-md-3 {\n margin-left: 25%;\n }\n\n .offset-md-4 {\n margin-left: 33.3333333333%;\n }\n\n .offset-md-5 {\n margin-left: 41.6666666667%;\n }\n\n .offset-md-6 {\n margin-left: 50%;\n }\n\n .offset-md-7 {\n margin-left: 58.3333333333%;\n }\n\n .offset-md-8 {\n margin-left: 66.6666666667%;\n }\n\n .offset-md-9 {\n margin-left: 75%;\n }\n\n .offset-md-10 {\n margin-left: 83.3333333333%;\n }\n\n .offset-md-11 {\n margin-left: 91.6666666667%;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .row-cols-lg-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n\n .row-cols-lg-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n\n .col-lg-1 {\n flex: 0 0 8.3333333333%;\n max-width: 8.3333333333%;\n }\n\n .col-lg-2 {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .col-lg-4 {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .col-lg-5 {\n flex: 0 0 41.6666666667%;\n max-width: 41.6666666667%;\n }\n\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .col-lg-7 {\n flex: 0 0 58.3333333333%;\n max-width: 58.3333333333%;\n }\n\n .col-lg-8 {\n flex: 0 0 66.6666666667%;\n max-width: 66.6666666667%;\n }\n\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n\n .col-lg-10 {\n flex: 0 0 83.3333333333%;\n max-width: 83.3333333333%;\n }\n\n .col-lg-11 {\n flex: 0 0 91.6666666667%;\n max-width: 91.6666666667%;\n }\n\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .order-lg-first {\n order: -1;\n }\n\n .order-lg-last {\n order: 13;\n }\n\n .order-lg-0 {\n order: 0;\n }\n\n .order-lg-1 {\n order: 1;\n }\n\n .order-lg-2 {\n order: 2;\n }\n\n .order-lg-3 {\n order: 3;\n }\n\n .order-lg-4 {\n order: 4;\n }\n\n .order-lg-5 {\n order: 5;\n }\n\n .order-lg-6 {\n order: 6;\n }\n\n .order-lg-7 {\n order: 7;\n }\n\n .order-lg-8 {\n order: 8;\n }\n\n .order-lg-9 {\n order: 9;\n }\n\n .order-lg-10 {\n order: 10;\n }\n\n .order-lg-11 {\n order: 11;\n }\n\n .order-lg-12 {\n order: 12;\n }\n\n .offset-lg-0 {\n margin-left: 0;\n }\n\n .offset-lg-1 {\n margin-left: 8.3333333333%;\n }\n\n .offset-lg-2 {\n margin-left: 16.6666666667%;\n }\n\n .offset-lg-3 {\n margin-left: 25%;\n }\n\n .offset-lg-4 {\n margin-left: 33.3333333333%;\n }\n\n .offset-lg-5 {\n margin-left: 41.6666666667%;\n }\n\n .offset-lg-6 {\n margin-left: 50%;\n }\n\n .offset-lg-7 {\n margin-left: 58.3333333333%;\n }\n\n .offset-lg-8 {\n margin-left: 66.6666666667%;\n }\n\n .offset-lg-9 {\n margin-left: 75%;\n }\n\n .offset-lg-10 {\n margin-left: 83.3333333333%;\n }\n\n .offset-lg-11 {\n margin-left: 91.6666666667%;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .row-cols-xl-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n\n .row-cols-xl-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n\n .col-xl-1 {\n flex: 0 0 8.3333333333%;\n max-width: 8.3333333333%;\n }\n\n .col-xl-2 {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .col-xl-4 {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .col-xl-5 {\n flex: 0 0 41.6666666667%;\n max-width: 41.6666666667%;\n }\n\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .col-xl-7 {\n flex: 0 0 58.3333333333%;\n max-width: 58.3333333333%;\n }\n\n .col-xl-8 {\n flex: 0 0 66.6666666667%;\n max-width: 66.6666666667%;\n }\n\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n\n .col-xl-10 {\n flex: 0 0 83.3333333333%;\n max-width: 83.3333333333%;\n }\n\n .col-xl-11 {\n flex: 0 0 91.6666666667%;\n max-width: 91.6666666667%;\n }\n\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .order-xl-first {\n order: -1;\n }\n\n .order-xl-last {\n order: 13;\n }\n\n .order-xl-0 {\n order: 0;\n }\n\n .order-xl-1 {\n order: 1;\n }\n\n .order-xl-2 {\n order: 2;\n }\n\n .order-xl-3 {\n order: 3;\n }\n\n .order-xl-4 {\n order: 4;\n }\n\n .order-xl-5 {\n order: 5;\n }\n\n .order-xl-6 {\n order: 6;\n }\n\n .order-xl-7 {\n order: 7;\n }\n\n .order-xl-8 {\n order: 8;\n }\n\n .order-xl-9 {\n order: 9;\n }\n\n .order-xl-10 {\n order: 10;\n }\n\n .order-xl-11 {\n order: 11;\n }\n\n .order-xl-12 {\n order: 12;\n }\n\n .offset-xl-0 {\n margin-left: 0;\n }\n\n .offset-xl-1 {\n margin-left: 8.3333333333%;\n }\n\n .offset-xl-2 {\n margin-left: 16.6666666667%;\n }\n\n .offset-xl-3 {\n margin-left: 25%;\n }\n\n .offset-xl-4 {\n margin-left: 33.3333333333%;\n }\n\n .offset-xl-5 {\n margin-left: 41.6666666667%;\n }\n\n .offset-xl-6 {\n margin-left: 50%;\n }\n\n .offset-xl-7 {\n margin-left: 58.3333333333%;\n }\n\n .offset-xl-8 {\n margin-left: 66.6666666667%;\n }\n\n .offset-xl-9 {\n margin-left: 75%;\n }\n\n .offset-xl-10 {\n margin-left: 83.3333333333%;\n }\n\n .offset-xl-11 {\n margin-left: 91.6666666667%;\n }\n}\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n.table-dark.table-bordered {\n border: 0;\n}\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n.table-responsive > .table-bordered {\n border: 0;\n}\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\ntextarea.form-control {\n height: auto;\n}\n.form-group {\n margin-bottom: 1rem;\n}\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n.form-row > .col,\n.form-row > [class*=col-] {\n padding-right: 5px;\n padding-left: 5px;\n}\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n.form-check-label {\n margin-bottom: 0;\n}\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n.form-inline .form-check {\n width: 100%;\n}\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n.form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\ninput[type=submit].btn-block,\ninput[type=reset].btn-block,\ninput[type=button].btn-block {\n width: 100%;\n}\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n.collapse:not(.show) {\n display: none;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n.dropdown-toggle {\n white-space: nowrap;\n}\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left] {\n right: auto;\n bottom: auto;\n}\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n.dropdown-menu.show {\n display: block;\n}\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n.btn-toolbar .input-group {\n width: auto;\n}\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n.btn-group-toggle > .btn input[type=radio],\n.btn-group-toggle > .btn input[type=checkbox],\n.btn-group-toggle > .btn-group > .btn input[type=radio],\n.btn-group-toggle > .btn-group > .btn input[type=checkbox] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n}\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n.input-group-prepend {\n margin-right: -1px;\n}\n.input-group-append {\n margin-left: -1px;\n}\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n.input-group-text input[type=radio],\n.input-group-text input[type=checkbox] {\n margin-top: 0;\n}\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50%/50% 50%;\n}\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n.custom-switch {\n padding-left: 2.25rem;\n}\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n.custom-select::-ms-expand {\n display: none;\n}\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-file-input[disabled] ~ .custom-file-label, .custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.custom-range:focus {\n outline: none;\n}\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n -webkit-transition: none;\n transition: none;\n }\n}\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n -moz-transition: none;\n transition: none;\n }\n}\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n -ms-transition: none;\n transition: none;\n }\n}\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: none;\n }\n}\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n.navbar .container,\n.navbar .container-fluid,\n.navbar .container-sm,\n.navbar .container-md,\n.navbar .container-lg,\n.navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n.navbar-expand-sm > .container-fluid,\n.navbar-expand-sm > .container-sm,\n.navbar-expand-sm > .container-md,\n.navbar-expand-sm > .container-lg,\n.navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n.navbar-expand-sm > .container-fluid,\n.navbar-expand-sm > .container-sm,\n.navbar-expand-sm > .container-md,\n.navbar-expand-sm > .container-lg,\n.navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n.navbar-expand-md > .container-fluid,\n.navbar-expand-md > .container-sm,\n.navbar-expand-md > .container-md,\n.navbar-expand-md > .container-lg,\n.navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n.navbar-expand-md > .container-fluid,\n.navbar-expand-md > .container-sm,\n.navbar-expand-md > .container-md,\n.navbar-expand-md > .container-lg,\n.navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n.navbar-expand-lg > .container-fluid,\n.navbar-expand-lg > .container-sm,\n.navbar-expand-lg > .container-md,\n.navbar-expand-lg > .container-lg,\n.navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n.navbar-expand-lg > .container-fluid,\n.navbar-expand-lg > .container-sm,\n.navbar-expand-lg > .container-md,\n.navbar-expand-lg > .container-lg,\n.navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n.navbar-expand-xl > .container-fluid,\n.navbar-expand-xl > .container-sm,\n.navbar-expand-xl > .container-md,\n.navbar-expand-xl > .container-lg,\n.navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n.navbar-expand-xl > .container-fluid,\n.navbar-expand-xl > .container-sm,\n.navbar-expand-xl > .container-md,\n.navbar-expand-xl > .container-lg,\n.navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n.navbar-expand > .container,\n.navbar-expand > .container-fluid,\n.navbar-expand > .container-sm,\n.navbar-expand > .container-md,\n.navbar-expand > .container-lg,\n.navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n.navbar-expand > .container,\n.navbar-expand > .container-fluid,\n.navbar-expand > .container-sm,\n.navbar-expand > .container-md,\n.navbar-expand > .container-lg,\n.navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n.navbar-expand .navbar-toggler {\n display: none;\n}\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n.card-title {\n margin-bottom: 0.75rem;\n}\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n.card-text:last-child {\n margin-bottom: 0;\n}\n.card-link:hover {\n text-decoration: none;\n}\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n.card-deck .card {\n margin-bottom: 15px;\n}\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n.card-group > .card {\n margin-bottom: 15px;\n}\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n.card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n.card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n.card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n.card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n@media (min-width: 576px) {\n .card-columns {\n -moz-column-count: 3;\n column-count: 3;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n.accordion > .card {\n overflow: hidden;\n}\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n.breadcrumb-item.active {\n color: #6c757d;\n}\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n.alert-heading {\n color: inherit;\n}\n.alert-link {\n font-weight: 700;\n}\n.alert-dismissible {\n padding-right: 4rem;\n}\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n.alert-primary .alert-link {\n color: #002752;\n}\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n.alert-secondary .alert-link {\n color: #202326;\n}\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n.alert-success .alert-link {\n color: #0b2e13;\n}\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n.alert-info hr {\n border-top-color: #abdde5;\n}\n.alert-info .alert-link {\n color: #062c33;\n}\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n.alert-warning .alert-link {\n color: #533f03;\n}\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n.alert-danger .alert-link {\n color: #491217;\n}\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n.alert-light hr {\n border-top-color: #ececf6;\n}\n.alert-light .alert-link {\n color: #686868;\n}\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n.alert-dark .alert-link {\n color: #040505;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n.media {\n display: flex;\n align-items: flex-start;\n}\n.media-body {\n flex: 1;\n}\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n.list-group-horizontal {\n flex-direction: row;\n}\n.list-group-horizontal .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n.list-group-horizontal .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n.list-group-horizontal .list-group-item.active {\n margin-top: 0;\n}\n.list-group-horizontal .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n.list-group-horizontal .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n.list-group-flush .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n border-radius: 0;\n}\n.list-group-flush .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom-width: 0;\n}\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.5;\n}\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: 0.75;\n}\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\na.close.disabled {\n pointer-events: none;\n}\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n.toast.showing {\n opacity: 1;\n}\n.toast.show {\n display: block;\n opacity: 1;\n}\n.toast.hide {\n display: none;\n}\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n.toast-body {\n padding: 0.75rem;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n.modal.show .modal-dialog {\n transform: none;\n}\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n}\n.modal-backdrop.show {\n opacity: 0.5;\n}\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n.modal-footer > * {\n margin: 0.25rem;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n\n .modal-sm {\n max-width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg,\n.modal-xl {\n max-width: 800px;\n }\n}\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n.tooltip.show {\n opacity: 0.9;\n}\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] {\n padding: 0.4rem 0;\n}\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow {\n bottom: 0;\n}\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] {\n padding: 0 0.4rem;\n}\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] {\n padding: 0.4rem 0;\n}\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow {\n top: 0;\n}\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] {\n padding: 0 0.4rem;\n}\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n.bs-popover-top, .bs-popover-auto[x-placement^=top] {\n margin-bottom: 0.5rem;\n}\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=top] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=top] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=top] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n.bs-popover-right, .bs-popover-auto[x-placement^=right] {\n margin-left: 0.5rem;\n}\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=right] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=right] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=right] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n.bs-popover-bottom, .bs-popover-auto[x-placement^=bottom] {\n margin-top: 0.5rem;\n}\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=bottom] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=bottom] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=bottom] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n.bs-popover-left, .bs-popover-auto[x-placement^=left] {\n margin-right: 0.5rem;\n}\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=left] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=left] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=left] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n.popover-header:empty {\n display: none;\n}\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n.carousel {\n position: relative;\n}\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n.carousel-control-next {\n transition: none;\n }\n}\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n.carousel-control-prev {\n left: 0;\n}\n.carousel-control-next {\n right: 0;\n}\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50%/100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: 0.5;\n transition: opacity 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n.carousel-indicators .active {\n opacity: 1;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n@-webkit-keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border 0.75s linear infinite;\n animation: spinner-border 0.75s linear infinite;\n}\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n@-webkit-keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow 0.75s linear infinite;\n animation: spinner-grow 0.75s linear infinite;\n}\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n.align-baseline {\n vertical-align: baseline !important;\n}\n.align-top {\n vertical-align: top !important;\n}\n.align-middle {\n vertical-align: middle !important;\n}\n.align-bottom {\n vertical-align: bottom !important;\n}\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n.align-text-top {\n vertical-align: text-top !important;\n}\n.bg-primary {\n background-color: #007bff !important;\n}\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n.bg-secondary {\n background-color: #6c757d !important;\n}\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n.bg-success {\n background-color: #28a745 !important;\n}\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n.bg-info {\n background-color: #17a2b8 !important;\n}\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n.bg-warning {\n background-color: #ffc107 !important;\n}\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n.bg-danger {\n background-color: #dc3545 !important;\n}\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n.bg-light {\n background-color: #f8f9fa !important;\n}\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n.bg-dark {\n background-color: #343a40 !important;\n}\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n.bg-white {\n background-color: #fff !important;\n}\n.bg-transparent {\n background-color: transparent !important;\n}\n.border {\n border: 1px solid #dee2e6 !important;\n}\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n.border-0 {\n border: 0 !important;\n}\n.border-top-0 {\n border-top: 0 !important;\n}\n.border-right-0 {\n border-right: 0 !important;\n}\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n.border-left-0 {\n border-left: 0 !important;\n}\n.border-primary {\n border-color: #007bff !important;\n}\n.border-secondary {\n border-color: #6c757d !important;\n}\n.border-success {\n border-color: #28a745 !important;\n}\n.border-info {\n border-color: #17a2b8 !important;\n}\n.border-warning {\n border-color: #ffc107 !important;\n}\n.border-danger {\n border-color: #dc3545 !important;\n}\n.border-light {\n border-color: #f8f9fa !important;\n}\n.border-dark {\n border-color: #343a40 !important;\n}\n.border-white {\n border-color: #fff !important;\n}\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n.rounded {\n border-radius: 0.25rem !important;\n}\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n.rounded-circle {\n border-radius: 50% !important;\n}\n.rounded-pill {\n border-radius: 50rem !important;\n}\n.rounded-0 {\n border-radius: 0 !important;\n}\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n.d-none {\n display: none !important;\n}\n.d-inline {\n display: inline !important;\n}\n.d-inline-block {\n display: inline-block !important;\n}\n.d-block {\n display: block !important;\n}\n.d-table {\n display: table !important;\n}\n.d-table-row {\n display: table-row !important;\n}\n.d-table-cell {\n display: table-cell !important;\n}\n.d-flex {\n display: flex !important;\n}\n.d-inline-flex {\n display: inline-flex !important;\n}\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n\n .d-sm-inline {\n display: inline !important;\n }\n\n .d-sm-inline-block {\n display: inline-block !important;\n }\n\n .d-sm-block {\n display: block !important;\n }\n\n .d-sm-table {\n display: table !important;\n }\n\n .d-sm-table-row {\n display: table-row !important;\n }\n\n .d-sm-table-cell {\n display: table-cell !important;\n }\n\n .d-sm-flex {\n display: flex !important;\n }\n\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n\n .d-md-inline {\n display: inline !important;\n }\n\n .d-md-inline-block {\n display: inline-block !important;\n }\n\n .d-md-block {\n display: block !important;\n }\n\n .d-md-table {\n display: table !important;\n }\n\n .d-md-table-row {\n display: table-row !important;\n }\n\n .d-md-table-cell {\n display: table-cell !important;\n }\n\n .d-md-flex {\n display: flex !important;\n }\n\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n\n .d-lg-inline {\n display: inline !important;\n }\n\n .d-lg-inline-block {\n display: inline-block !important;\n }\n\n .d-lg-block {\n display: block !important;\n }\n\n .d-lg-table {\n display: table !important;\n }\n\n .d-lg-table-row {\n display: table-row !important;\n }\n\n .d-lg-table-cell {\n display: table-cell !important;\n }\n\n .d-lg-flex {\n display: flex !important;\n }\n\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n\n .d-xl-inline {\n display: inline !important;\n }\n\n .d-xl-inline-block {\n display: inline-block !important;\n }\n\n .d-xl-block {\n display: block !important;\n }\n\n .d-xl-table {\n display: table !important;\n }\n\n .d-xl-table-row {\n display: table-row !important;\n }\n\n .d-xl-table-cell {\n display: table-cell !important;\n }\n\n .d-xl-flex {\n display: flex !important;\n }\n\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n@media print {\n .d-print-none {\n display: none !important;\n }\n\n .d-print-inline {\n display: inline !important;\n }\n\n .d-print-inline-block {\n display: inline-block !important;\n }\n\n .d-print-block {\n display: block !important;\n }\n\n .d-print-table {\n display: table !important;\n }\n\n .d-print-table-row {\n display: table-row !important;\n }\n\n .d-print-table-cell {\n display: table-cell !important;\n }\n\n .d-print-flex {\n display: flex !important;\n }\n\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-21by9::before {\n padding-top: 42.8571428571%;\n}\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n.flex-row {\n flex-direction: row !important;\n}\n.flex-column {\n flex-direction: column !important;\n}\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n.flex-fill {\n flex: 1 1 auto !important;\n}\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n.justify-content-start {\n justify-content: flex-start !important;\n}\n.justify-content-end {\n justify-content: flex-end !important;\n}\n.justify-content-center {\n justify-content: center !important;\n}\n.justify-content-between {\n justify-content: space-between !important;\n}\n.justify-content-around {\n justify-content: space-around !important;\n}\n.align-items-start {\n align-items: flex-start !important;\n}\n.align-items-end {\n align-items: flex-end !important;\n}\n.align-items-center {\n align-items: center !important;\n}\n.align-items-baseline {\n align-items: baseline !important;\n}\n.align-items-stretch {\n align-items: stretch !important;\n}\n.align-content-start {\n align-content: flex-start !important;\n}\n.align-content-end {\n align-content: flex-end !important;\n}\n.align-content-center {\n align-content: center !important;\n}\n.align-content-between {\n align-content: space-between !important;\n}\n.align-content-around {\n align-content: space-around !important;\n}\n.align-content-stretch {\n align-content: stretch !important;\n}\n.align-self-auto {\n align-self: auto !important;\n}\n.align-self-start {\n align-self: flex-start !important;\n}\n.align-self-end {\n align-self: flex-end !important;\n}\n.align-self-center {\n align-self: center !important;\n}\n.align-self-baseline {\n align-self: baseline !important;\n}\n.align-self-stretch {\n align-self: stretch !important;\n}\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n\n .flex-sm-column {\n flex-direction: column !important;\n }\n\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-sm-center {\n justify-content: center !important;\n }\n\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n\n .align-items-sm-center {\n align-items: center !important;\n }\n\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n\n .align-content-sm-center {\n align-content: center !important;\n }\n\n .align-content-sm-between {\n align-content: space-between !important;\n }\n\n .align-content-sm-around {\n align-content: space-around !important;\n }\n\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n\n .align-self-sm-auto {\n align-self: auto !important;\n }\n\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n\n .align-self-sm-center {\n align-self: center !important;\n }\n\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n\n .flex-md-column {\n flex-direction: column !important;\n }\n\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-md-center {\n justify-content: center !important;\n }\n\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n\n .align-items-md-start {\n align-items: flex-start !important;\n }\n\n .align-items-md-end {\n align-items: flex-end !important;\n }\n\n .align-items-md-center {\n align-items: center !important;\n }\n\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n\n .align-content-md-start {\n align-content: flex-start !important;\n }\n\n .align-content-md-end {\n align-content: flex-end !important;\n }\n\n .align-content-md-center {\n align-content: center !important;\n }\n\n .align-content-md-between {\n align-content: space-between !important;\n }\n\n .align-content-md-around {\n align-content: space-around !important;\n }\n\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n\n .align-self-md-auto {\n align-self: auto !important;\n }\n\n .align-self-md-start {\n align-self: flex-start !important;\n }\n\n .align-self-md-end {\n align-self: flex-end !important;\n }\n\n .align-self-md-center {\n align-self: center !important;\n }\n\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n\n .flex-lg-column {\n flex-direction: column !important;\n }\n\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-lg-center {\n justify-content: center !important;\n }\n\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n\n .align-items-lg-center {\n align-items: center !important;\n }\n\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n\n .align-content-lg-center {\n align-content: center !important;\n }\n\n .align-content-lg-between {\n align-content: space-between !important;\n }\n\n .align-content-lg-around {\n align-content: space-around !important;\n }\n\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n\n .align-self-lg-auto {\n align-self: auto !important;\n }\n\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n\n .align-self-lg-center {\n align-self: center !important;\n }\n\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n\n .flex-xl-column {\n flex-direction: column !important;\n }\n\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xl-center {\n justify-content: center !important;\n }\n\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xl-center {\n align-items: center !important;\n }\n\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xl-center {\n align-content: center !important;\n }\n\n .align-content-xl-between {\n align-content: space-between !important;\n }\n\n .align-content-xl-around {\n align-content: space-around !important;\n }\n\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xl-auto {\n align-self: auto !important;\n }\n\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xl-center {\n align-self: center !important;\n }\n\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n.float-left {\n float: left !important;\n}\n.float-right {\n float: right !important;\n}\n.float-none {\n float: none !important;\n}\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n\n .float-sm-right {\n float: right !important;\n }\n\n .float-sm-none {\n float: none !important;\n }\n}\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n\n .float-md-right {\n float: right !important;\n }\n\n .float-md-none {\n float: none !important;\n }\n}\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n\n .float-lg-right {\n float: right !important;\n }\n\n .float-lg-none {\n float: none !important;\n }\n}\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n\n .float-xl-right {\n float: right !important;\n }\n\n .float-xl-none {\n float: none !important;\n }\n}\n.overflow-auto {\n overflow: auto !important;\n}\n.overflow-hidden {\n overflow: hidden !important;\n}\n.position-static {\n position: static !important;\n}\n.position-relative {\n position: relative !important;\n}\n.position-absolute {\n position: absolute !important;\n}\n.position-fixed {\n position: fixed !important;\n}\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n.shadow-none {\n box-shadow: none !important;\n}\n.w-25 {\n width: 25% !important;\n}\n.w-50 {\n width: 50% !important;\n}\n.w-75 {\n width: 75% !important;\n}\n.w-100 {\n width: 100% !important;\n}\n.w-auto {\n width: auto !important;\n}\n.h-25 {\n height: 25% !important;\n}\n.h-50 {\n height: 50% !important;\n}\n.h-75 {\n height: 75% !important;\n}\n.h-100 {\n height: 100% !important;\n}\n.h-auto {\n height: auto !important;\n}\n.mw-100 {\n max-width: 100% !important;\n}\n.mh-100 {\n max-height: 100% !important;\n}\n.min-vw-100 {\n min-width: 100vw !important;\n}\n.min-vh-100 {\n min-height: 100vh !important;\n}\n.vw-100 {\n width: 100vw !important;\n}\n.vh-100 {\n height: 100vh !important;\n}\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n.m-0 {\n margin: 0 !important;\n}\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n.m-1 {\n margin: 0.25rem !important;\n}\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n.m-2 {\n margin: 0.5rem !important;\n}\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n.m-3 {\n margin: 1rem !important;\n}\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n.m-4 {\n margin: 1.5rem !important;\n}\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n.m-5 {\n margin: 3rem !important;\n}\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n.p-0 {\n padding: 0 !important;\n}\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n.p-1 {\n padding: 0.25rem !important;\n}\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n.p-2 {\n padding: 0.5rem !important;\n}\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n.p-3 {\n padding: 1rem !important;\n}\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n.p-4 {\n padding: 1.5rem !important;\n}\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n.p-5 {\n padding: 3rem !important;\n}\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n.m-n1 {\n margin: -0.25rem !important;\n}\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n.m-n2 {\n margin: -0.5rem !important;\n}\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n.m-n3 {\n margin: -1rem !important;\n}\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n.m-n4 {\n margin: -1.5rem !important;\n}\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n.m-n5 {\n margin: -3rem !important;\n}\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n.m-auto {\n margin: auto !important;\n}\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n\n .mt-sm-0,\n.my-sm-0 {\n margin-top: 0 !important;\n }\n\n .mr-sm-0,\n.mx-sm-0 {\n margin-right: 0 !important;\n }\n\n .mb-sm-0,\n.my-sm-0 {\n margin-bottom: 0 !important;\n }\n\n .ml-sm-0,\n.mx-sm-0 {\n margin-left: 0 !important;\n }\n\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n\n .mt-sm-1,\n.my-sm-1 {\n margin-top: 0.25rem !important;\n }\n\n .mr-sm-1,\n.mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n\n .mb-sm-1,\n.my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .ml-sm-1,\n.mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n\n .mt-sm-2,\n.my-sm-2 {\n margin-top: 0.5rem !important;\n }\n\n .mr-sm-2,\n.mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n\n .mb-sm-2,\n.my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .ml-sm-2,\n.mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n\n .m-sm-3 {\n margin: 1rem !important;\n }\n\n .mt-sm-3,\n.my-sm-3 {\n margin-top: 1rem !important;\n }\n\n .mr-sm-3,\n.mx-sm-3 {\n margin-right: 1rem !important;\n }\n\n .mb-sm-3,\n.my-sm-3 {\n margin-bottom: 1rem !important;\n }\n\n .ml-sm-3,\n.mx-sm-3 {\n margin-left: 1rem !important;\n }\n\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n\n .mt-sm-4,\n.my-sm-4 {\n margin-top: 1.5rem !important;\n }\n\n .mr-sm-4,\n.mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n\n .mb-sm-4,\n.my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .ml-sm-4,\n.mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n\n .m-sm-5 {\n margin: 3rem !important;\n }\n\n .mt-sm-5,\n.my-sm-5 {\n margin-top: 3rem !important;\n }\n\n .mr-sm-5,\n.mx-sm-5 {\n margin-right: 3rem !important;\n }\n\n .mb-sm-5,\n.my-sm-5 {\n margin-bottom: 3rem !important;\n }\n\n .ml-sm-5,\n.mx-sm-5 {\n margin-left: 3rem !important;\n }\n\n .p-sm-0 {\n padding: 0 !important;\n }\n\n .pt-sm-0,\n.py-sm-0 {\n padding-top: 0 !important;\n }\n\n .pr-sm-0,\n.px-sm-0 {\n padding-right: 0 !important;\n }\n\n .pb-sm-0,\n.py-sm-0 {\n padding-bottom: 0 !important;\n }\n\n .pl-sm-0,\n.px-sm-0 {\n padding-left: 0 !important;\n }\n\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n\n .pt-sm-1,\n.py-sm-1 {\n padding-top: 0.25rem !important;\n }\n\n .pr-sm-1,\n.px-sm-1 {\n padding-right: 0.25rem !important;\n }\n\n .pb-sm-1,\n.py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pl-sm-1,\n.px-sm-1 {\n padding-left: 0.25rem !important;\n }\n\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n\n .pt-sm-2,\n.py-sm-2 {\n padding-top: 0.5rem !important;\n }\n\n .pr-sm-2,\n.px-sm-2 {\n padding-right: 0.5rem !important;\n }\n\n .pb-sm-2,\n.py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pl-sm-2,\n.px-sm-2 {\n padding-left: 0.5rem !important;\n }\n\n .p-sm-3 {\n padding: 1rem !important;\n }\n\n .pt-sm-3,\n.py-sm-3 {\n padding-top: 1rem !important;\n }\n\n .pr-sm-3,\n.px-sm-3 {\n padding-right: 1rem !important;\n }\n\n .pb-sm-3,\n.py-sm-3 {\n padding-bottom: 1rem !important;\n }\n\n .pl-sm-3,\n.px-sm-3 {\n padding-left: 1rem !important;\n }\n\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n\n .pt-sm-4,\n.py-sm-4 {\n padding-top: 1.5rem !important;\n }\n\n .pr-sm-4,\n.px-sm-4 {\n padding-right: 1.5rem !important;\n }\n\n .pb-sm-4,\n.py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pl-sm-4,\n.px-sm-4 {\n padding-left: 1.5rem !important;\n }\n\n .p-sm-5 {\n padding: 3rem !important;\n }\n\n .pt-sm-5,\n.py-sm-5 {\n padding-top: 3rem !important;\n }\n\n .pr-sm-5,\n.px-sm-5 {\n padding-right: 3rem !important;\n }\n\n .pb-sm-5,\n.py-sm-5 {\n padding-bottom: 3rem !important;\n }\n\n .pl-sm-5,\n.px-sm-5 {\n padding-left: 3rem !important;\n }\n\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n\n .mt-sm-n1,\n.my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n\n .mr-sm-n1,\n.mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n\n .mb-sm-n1,\n.my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n\n .ml-sm-n1,\n.mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n\n .mt-sm-n2,\n.my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n\n .mr-sm-n2,\n.mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n\n .mb-sm-n2,\n.my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n\n .ml-sm-n2,\n.mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n\n .m-sm-n3 {\n margin: -1rem !important;\n }\n\n .mt-sm-n3,\n.my-sm-n3 {\n margin-top: -1rem !important;\n }\n\n .mr-sm-n3,\n.mx-sm-n3 {\n margin-right: -1rem !important;\n }\n\n .mb-sm-n3,\n.my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n\n .ml-sm-n3,\n.mx-sm-n3 {\n margin-left: -1rem !important;\n }\n\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n\n .mt-sm-n4,\n.my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n\n .mr-sm-n4,\n.mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n\n .mb-sm-n4,\n.my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n\n .ml-sm-n4,\n.mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n\n .m-sm-n5 {\n margin: -3rem !important;\n }\n\n .mt-sm-n5,\n.my-sm-n5 {\n margin-top: -3rem !important;\n }\n\n .mr-sm-n5,\n.mx-sm-n5 {\n margin-right: -3rem !important;\n }\n\n .mb-sm-n5,\n.my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n\n .ml-sm-n5,\n.mx-sm-n5 {\n margin-left: -3rem !important;\n }\n\n .m-sm-auto {\n margin: auto !important;\n }\n\n .mt-sm-auto,\n.my-sm-auto {\n margin-top: auto !important;\n }\n\n .mr-sm-auto,\n.mx-sm-auto {\n margin-right: auto !important;\n }\n\n .mb-sm-auto,\n.my-sm-auto {\n margin-bottom: auto !important;\n }\n\n .ml-sm-auto,\n.mx-sm-auto {\n margin-left: auto !important;\n }\n}\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n\n .mt-md-0,\n.my-md-0 {\n margin-top: 0 !important;\n }\n\n .mr-md-0,\n.mx-md-0 {\n margin-right: 0 !important;\n }\n\n .mb-md-0,\n.my-md-0 {\n margin-bottom: 0 !important;\n }\n\n .ml-md-0,\n.mx-md-0 {\n margin-left: 0 !important;\n }\n\n .m-md-1 {\n margin: 0.25rem !important;\n }\n\n .mt-md-1,\n.my-md-1 {\n margin-top: 0.25rem !important;\n }\n\n .mr-md-1,\n.mx-md-1 {\n margin-right: 0.25rem !important;\n }\n\n .mb-md-1,\n.my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .ml-md-1,\n.mx-md-1 {\n margin-left: 0.25rem !important;\n }\n\n .m-md-2 {\n margin: 0.5rem !important;\n }\n\n .mt-md-2,\n.my-md-2 {\n margin-top: 0.5rem !important;\n }\n\n .mr-md-2,\n.mx-md-2 {\n margin-right: 0.5rem !important;\n }\n\n .mb-md-2,\n.my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .ml-md-2,\n.mx-md-2 {\n margin-left: 0.5rem !important;\n }\n\n .m-md-3 {\n margin: 1rem !important;\n }\n\n .mt-md-3,\n.my-md-3 {\n margin-top: 1rem !important;\n }\n\n .mr-md-3,\n.mx-md-3 {\n margin-right: 1rem !important;\n }\n\n .mb-md-3,\n.my-md-3 {\n margin-bottom: 1rem !important;\n }\n\n .ml-md-3,\n.mx-md-3 {\n margin-left: 1rem !important;\n }\n\n .m-md-4 {\n margin: 1.5rem !important;\n }\n\n .mt-md-4,\n.my-md-4 {\n margin-top: 1.5rem !important;\n }\n\n .mr-md-4,\n.mx-md-4 {\n margin-right: 1.5rem !important;\n }\n\n .mb-md-4,\n.my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .ml-md-4,\n.mx-md-4 {\n margin-left: 1.5rem !important;\n }\n\n .m-md-5 {\n margin: 3rem !important;\n }\n\n .mt-md-5,\n.my-md-5 {\n margin-top: 3rem !important;\n }\n\n .mr-md-5,\n.mx-md-5 {\n margin-right: 3rem !important;\n }\n\n .mb-md-5,\n.my-md-5 {\n margin-bottom: 3rem !important;\n }\n\n .ml-md-5,\n.mx-md-5 {\n margin-left: 3rem !important;\n }\n\n .p-md-0 {\n padding: 0 !important;\n }\n\n .pt-md-0,\n.py-md-0 {\n padding-top: 0 !important;\n }\n\n .pr-md-0,\n.px-md-0 {\n padding-right: 0 !important;\n }\n\n .pb-md-0,\n.py-md-0 {\n padding-bottom: 0 !important;\n }\n\n .pl-md-0,\n.px-md-0 {\n padding-left: 0 !important;\n }\n\n .p-md-1 {\n padding: 0.25rem !important;\n }\n\n .pt-md-1,\n.py-md-1 {\n padding-top: 0.25rem !important;\n }\n\n .pr-md-1,\n.px-md-1 {\n padding-right: 0.25rem !important;\n }\n\n .pb-md-1,\n.py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pl-md-1,\n.px-md-1 {\n padding-left: 0.25rem !important;\n }\n\n .p-md-2 {\n padding: 0.5rem !important;\n }\n\n .pt-md-2,\n.py-md-2 {\n padding-top: 0.5rem !important;\n }\n\n .pr-md-2,\n.px-md-2 {\n padding-right: 0.5rem !important;\n }\n\n .pb-md-2,\n.py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pl-md-2,\n.px-md-2 {\n padding-left: 0.5rem !important;\n }\n\n .p-md-3 {\n padding: 1rem !important;\n }\n\n .pt-md-3,\n.py-md-3 {\n padding-top: 1rem !important;\n }\n\n .pr-md-3,\n.px-md-3 {\n padding-right: 1rem !important;\n }\n\n .pb-md-3,\n.py-md-3 {\n padding-bottom: 1rem !important;\n }\n\n .pl-md-3,\n.px-md-3 {\n padding-left: 1rem !important;\n }\n\n .p-md-4 {\n padding: 1.5rem !important;\n }\n\n .pt-md-4,\n.py-md-4 {\n padding-top: 1.5rem !important;\n }\n\n .pr-md-4,\n.px-md-4 {\n padding-right: 1.5rem !important;\n }\n\n .pb-md-4,\n.py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pl-md-4,\n.px-md-4 {\n padding-left: 1.5rem !important;\n }\n\n .p-md-5 {\n padding: 3rem !important;\n }\n\n .pt-md-5,\n.py-md-5 {\n padding-top: 3rem !important;\n }\n\n .pr-md-5,\n.px-md-5 {\n padding-right: 3rem !important;\n }\n\n .pb-md-5,\n.py-md-5 {\n padding-bottom: 3rem !important;\n }\n\n .pl-md-5,\n.px-md-5 {\n padding-left: 3rem !important;\n }\n\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n\n .mt-md-n1,\n.my-md-n1 {\n margin-top: -0.25rem !important;\n }\n\n .mr-md-n1,\n.mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n\n .mb-md-n1,\n.my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n\n .ml-md-n1,\n.mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n\n .mt-md-n2,\n.my-md-n2 {\n margin-top: -0.5rem !important;\n }\n\n .mr-md-n2,\n.mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n\n .mb-md-n2,\n.my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n\n .ml-md-n2,\n.mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n\n .m-md-n3 {\n margin: -1rem !important;\n }\n\n .mt-md-n3,\n.my-md-n3 {\n margin-top: -1rem !important;\n }\n\n .mr-md-n3,\n.mx-md-n3 {\n margin-right: -1rem !important;\n }\n\n .mb-md-n3,\n.my-md-n3 {\n margin-bottom: -1rem !important;\n }\n\n .ml-md-n3,\n.mx-md-n3 {\n margin-left: -1rem !important;\n }\n\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n\n .mt-md-n4,\n.my-md-n4 {\n margin-top: -1.5rem !important;\n }\n\n .mr-md-n4,\n.mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n\n .mb-md-n4,\n.my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n\n .ml-md-n4,\n.mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n\n .m-md-n5 {\n margin: -3rem !important;\n }\n\n .mt-md-n5,\n.my-md-n5 {\n margin-top: -3rem !important;\n }\n\n .mr-md-n5,\n.mx-md-n5 {\n margin-right: -3rem !important;\n }\n\n .mb-md-n5,\n.my-md-n5 {\n margin-bottom: -3rem !important;\n }\n\n .ml-md-n5,\n.mx-md-n5 {\n margin-left: -3rem !important;\n }\n\n .m-md-auto {\n margin: auto !important;\n }\n\n .mt-md-auto,\n.my-md-auto {\n margin-top: auto !important;\n }\n\n .mr-md-auto,\n.mx-md-auto {\n margin-right: auto !important;\n }\n\n .mb-md-auto,\n.my-md-auto {\n margin-bottom: auto !important;\n }\n\n .ml-md-auto,\n.mx-md-auto {\n margin-left: auto !important;\n }\n}\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n\n .mt-lg-0,\n.my-lg-0 {\n margin-top: 0 !important;\n }\n\n .mr-lg-0,\n.mx-lg-0 {\n margin-right: 0 !important;\n }\n\n .mb-lg-0,\n.my-lg-0 {\n margin-bottom: 0 !important;\n }\n\n .ml-lg-0,\n.mx-lg-0 {\n margin-left: 0 !important;\n }\n\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n\n .mt-lg-1,\n.my-lg-1 {\n margin-top: 0.25rem !important;\n }\n\n .mr-lg-1,\n.mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n\n .mb-lg-1,\n.my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .ml-lg-1,\n.mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n\n .mt-lg-2,\n.my-lg-2 {\n margin-top: 0.5rem !important;\n }\n\n .mr-lg-2,\n.mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n\n .mb-lg-2,\n.my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .ml-lg-2,\n.mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n\n .m-lg-3 {\n margin: 1rem !important;\n }\n\n .mt-lg-3,\n.my-lg-3 {\n margin-top: 1rem !important;\n }\n\n .mr-lg-3,\n.mx-lg-3 {\n margin-right: 1rem !important;\n }\n\n .mb-lg-3,\n.my-lg-3 {\n margin-bottom: 1rem !important;\n }\n\n .ml-lg-3,\n.mx-lg-3 {\n margin-left: 1rem !important;\n }\n\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n\n .mt-lg-4,\n.my-lg-4 {\n margin-top: 1.5rem !important;\n }\n\n .mr-lg-4,\n.mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n\n .mb-lg-4,\n.my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .ml-lg-4,\n.mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n\n .m-lg-5 {\n margin: 3rem !important;\n }\n\n .mt-lg-5,\n.my-lg-5 {\n margin-top: 3rem !important;\n }\n\n .mr-lg-5,\n.mx-lg-5 {\n margin-right: 3rem !important;\n }\n\n .mb-lg-5,\n.my-lg-5 {\n margin-bottom: 3rem !important;\n }\n\n .ml-lg-5,\n.mx-lg-5 {\n margin-left: 3rem !important;\n }\n\n .p-lg-0 {\n padding: 0 !important;\n }\n\n .pt-lg-0,\n.py-lg-0 {\n padding-top: 0 !important;\n }\n\n .pr-lg-0,\n.px-lg-0 {\n padding-right: 0 !important;\n }\n\n .pb-lg-0,\n.py-lg-0 {\n padding-bottom: 0 !important;\n }\n\n .pl-lg-0,\n.px-lg-0 {\n padding-left: 0 !important;\n }\n\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n\n .pt-lg-1,\n.py-lg-1 {\n padding-top: 0.25rem !important;\n }\n\n .pr-lg-1,\n.px-lg-1 {\n padding-right: 0.25rem !important;\n }\n\n .pb-lg-1,\n.py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pl-lg-1,\n.px-lg-1 {\n padding-left: 0.25rem !important;\n }\n\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n\n .pt-lg-2,\n.py-lg-2 {\n padding-top: 0.5rem !important;\n }\n\n .pr-lg-2,\n.px-lg-2 {\n padding-right: 0.5rem !important;\n }\n\n .pb-lg-2,\n.py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pl-lg-2,\n.px-lg-2 {\n padding-left: 0.5rem !important;\n }\n\n .p-lg-3 {\n padding: 1rem !important;\n }\n\n .pt-lg-3,\n.py-lg-3 {\n padding-top: 1rem !important;\n }\n\n .pr-lg-3,\n.px-lg-3 {\n padding-right: 1rem !important;\n }\n\n .pb-lg-3,\n.py-lg-3 {\n padding-bottom: 1rem !important;\n }\n\n .pl-lg-3,\n.px-lg-3 {\n padding-left: 1rem !important;\n }\n\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n\n .pt-lg-4,\n.py-lg-4 {\n padding-top: 1.5rem !important;\n }\n\n .pr-lg-4,\n.px-lg-4 {\n padding-right: 1.5rem !important;\n }\n\n .pb-lg-4,\n.py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pl-lg-4,\n.px-lg-4 {\n padding-left: 1.5rem !important;\n }\n\n .p-lg-5 {\n padding: 3rem !important;\n }\n\n .pt-lg-5,\n.py-lg-5 {\n padding-top: 3rem !important;\n }\n\n .pr-lg-5,\n.px-lg-5 {\n padding-right: 3rem !important;\n }\n\n .pb-lg-5,\n.py-lg-5 {\n padding-bottom: 3rem !important;\n }\n\n .pl-lg-5,\n.px-lg-5 {\n padding-left: 3rem !important;\n }\n\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n\n .mt-lg-n1,\n.my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n\n .mr-lg-n1,\n.mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n\n .mb-lg-n1,\n.my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n\n .ml-lg-n1,\n.mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n\n .mt-lg-n2,\n.my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n\n .mr-lg-n2,\n.mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n\n .mb-lg-n2,\n.my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n\n .ml-lg-n2,\n.mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n\n .m-lg-n3 {\n margin: -1rem !important;\n }\n\n .mt-lg-n3,\n.my-lg-n3 {\n margin-top: -1rem !important;\n }\n\n .mr-lg-n3,\n.mx-lg-n3 {\n margin-right: -1rem !important;\n }\n\n .mb-lg-n3,\n.my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n\n .ml-lg-n3,\n.mx-lg-n3 {\n margin-left: -1rem !important;\n }\n\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n\n .mt-lg-n4,\n.my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n\n .mr-lg-n4,\n.mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n\n .mb-lg-n4,\n.my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n\n .ml-lg-n4,\n.mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n\n .m-lg-n5 {\n margin: -3rem !important;\n }\n\n .mt-lg-n5,\n.my-lg-n5 {\n margin-top: -3rem !important;\n }\n\n .mr-lg-n5,\n.mx-lg-n5 {\n margin-right: -3rem !important;\n }\n\n .mb-lg-n5,\n.my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n\n .ml-lg-n5,\n.mx-lg-n5 {\n margin-left: -3rem !important;\n }\n\n .m-lg-auto {\n margin: auto !important;\n }\n\n .mt-lg-auto,\n.my-lg-auto {\n margin-top: auto !important;\n }\n\n .mr-lg-auto,\n.mx-lg-auto {\n margin-right: auto !important;\n }\n\n .mb-lg-auto,\n.my-lg-auto {\n margin-bottom: auto !important;\n }\n\n .ml-lg-auto,\n.mx-lg-auto {\n margin-left: auto !important;\n }\n}\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n\n .mt-xl-0,\n.my-xl-0 {\n margin-top: 0 !important;\n }\n\n .mr-xl-0,\n.mx-xl-0 {\n margin-right: 0 !important;\n }\n\n .mb-xl-0,\n.my-xl-0 {\n margin-bottom: 0 !important;\n }\n\n .ml-xl-0,\n.mx-xl-0 {\n margin-left: 0 !important;\n }\n\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n\n .mt-xl-1,\n.my-xl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mr-xl-1,\n.mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n\n .mb-xl-1,\n.my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .ml-xl-1,\n.mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n\n .mt-xl-2,\n.my-xl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mr-xl-2,\n.mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n\n .mb-xl-2,\n.my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .ml-xl-2,\n.mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n\n .m-xl-3 {\n margin: 1rem !important;\n }\n\n .mt-xl-3,\n.my-xl-3 {\n margin-top: 1rem !important;\n }\n\n .mr-xl-3,\n.mx-xl-3 {\n margin-right: 1rem !important;\n }\n\n .mb-xl-3,\n.my-xl-3 {\n margin-bottom: 1rem !important;\n }\n\n .ml-xl-3,\n.mx-xl-3 {\n margin-left: 1rem !important;\n }\n\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n\n .mt-xl-4,\n.my-xl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mr-xl-4,\n.mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n\n .mb-xl-4,\n.my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .ml-xl-4,\n.mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n\n .m-xl-5 {\n margin: 3rem !important;\n }\n\n .mt-xl-5,\n.my-xl-5 {\n margin-top: 3rem !important;\n }\n\n .mr-xl-5,\n.mx-xl-5 {\n margin-right: 3rem !important;\n }\n\n .mb-xl-5,\n.my-xl-5 {\n margin-bottom: 3rem !important;\n }\n\n .ml-xl-5,\n.mx-xl-5 {\n margin-left: 3rem !important;\n }\n\n .p-xl-0 {\n padding: 0 !important;\n }\n\n .pt-xl-0,\n.py-xl-0 {\n padding-top: 0 !important;\n }\n\n .pr-xl-0,\n.px-xl-0 {\n padding-right: 0 !important;\n }\n\n .pb-xl-0,\n.py-xl-0 {\n padding-bottom: 0 !important;\n }\n\n .pl-xl-0,\n.px-xl-0 {\n padding-left: 0 !important;\n }\n\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n\n .pt-xl-1,\n.py-xl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pr-xl-1,\n.px-xl-1 {\n padding-right: 0.25rem !important;\n }\n\n .pb-xl-1,\n.py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pl-xl-1,\n.px-xl-1 {\n padding-left: 0.25rem !important;\n }\n\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n\n .pt-xl-2,\n.py-xl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pr-xl-2,\n.px-xl-2 {\n padding-right: 0.5rem !important;\n }\n\n .pb-xl-2,\n.py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pl-xl-2,\n.px-xl-2 {\n padding-left: 0.5rem !important;\n }\n\n .p-xl-3 {\n padding: 1rem !important;\n }\n\n .pt-xl-3,\n.py-xl-3 {\n padding-top: 1rem !important;\n }\n\n .pr-xl-3,\n.px-xl-3 {\n padding-right: 1rem !important;\n }\n\n .pb-xl-3,\n.py-xl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pl-xl-3,\n.px-xl-3 {\n padding-left: 1rem !important;\n }\n\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n\n .pt-xl-4,\n.py-xl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pr-xl-4,\n.px-xl-4 {\n padding-right: 1.5rem !important;\n }\n\n .pb-xl-4,\n.py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pl-xl-4,\n.px-xl-4 {\n padding-left: 1.5rem !important;\n }\n\n .p-xl-5 {\n padding: 3rem !important;\n }\n\n .pt-xl-5,\n.py-xl-5 {\n padding-top: 3rem !important;\n }\n\n .pr-xl-5,\n.px-xl-5 {\n padding-right: 3rem !important;\n }\n\n .pb-xl-5,\n.py-xl-5 {\n padding-bottom: 3rem !important;\n }\n\n .pl-xl-5,\n.px-xl-5 {\n padding-left: 3rem !important;\n }\n\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n\n .mt-xl-n1,\n.my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n\n .mr-xl-n1,\n.mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n\n .mb-xl-n1,\n.my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n\n .ml-xl-n1,\n.mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n\n .mt-xl-n2,\n.my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n\n .mr-xl-n2,\n.mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n\n .mb-xl-n2,\n.my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n\n .ml-xl-n2,\n.mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n\n .m-xl-n3 {\n margin: -1rem !important;\n }\n\n .mt-xl-n3,\n.my-xl-n3 {\n margin-top: -1rem !important;\n }\n\n .mr-xl-n3,\n.mx-xl-n3 {\n margin-right: -1rem !important;\n }\n\n .mb-xl-n3,\n.my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n\n .ml-xl-n3,\n.mx-xl-n3 {\n margin-left: -1rem !important;\n }\n\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n\n .mt-xl-n4,\n.my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n\n .mr-xl-n4,\n.mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n\n .mb-xl-n4,\n.my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n\n .ml-xl-n4,\n.mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n\n .m-xl-n5 {\n margin: -3rem !important;\n }\n\n .mt-xl-n5,\n.my-xl-n5 {\n margin-top: -3rem !important;\n }\n\n .mr-xl-n5,\n.mx-xl-n5 {\n margin-right: -3rem !important;\n }\n\n .mb-xl-n5,\n.my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n\n .ml-xl-n5,\n.mx-xl-n5 {\n margin-left: -3rem !important;\n }\n\n .m-xl-auto {\n margin: auto !important;\n }\n\n .mt-xl-auto,\n.my-xl-auto {\n margin-top: auto !important;\n }\n\n .mr-xl-auto,\n.mx-xl-auto {\n margin-right: auto !important;\n }\n\n .mb-xl-auto,\n.my-xl-auto {\n margin-bottom: auto !important;\n }\n\n .ml-xl-auto,\n.mx-xl-auto {\n margin-left: auto !important;\n }\n}\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n.text-justify {\n text-align: justify !important;\n}\n.text-wrap {\n white-space: normal !important;\n}\n.text-nowrap {\n white-space: nowrap !important;\n}\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.text-left {\n text-align: left !important;\n}\n.text-right {\n text-align: right !important;\n}\n.text-center {\n text-align: center !important;\n}\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n\n .text-sm-right {\n text-align: right !important;\n }\n\n .text-sm-center {\n text-align: center !important;\n }\n}\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n\n .text-md-right {\n text-align: right !important;\n }\n\n .text-md-center {\n text-align: center !important;\n }\n}\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n\n .text-lg-right {\n text-align: right !important;\n }\n\n .text-lg-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n\n .text-xl-right {\n text-align: right !important;\n }\n\n .text-xl-center {\n text-align: center !important;\n }\n}\n.text-lowercase {\n text-transform: lowercase !important;\n}\n.text-uppercase {\n text-transform: uppercase !important;\n}\n.text-capitalize {\n text-transform: capitalize !important;\n}\n.font-weight-light {\n font-weight: 300 !important;\n}\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n.font-weight-normal {\n font-weight: 400 !important;\n}\n.font-weight-bold {\n font-weight: 700 !important;\n}\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n.font-italic {\n font-style: italic !important;\n}\n.text-white {\n color: #fff !important;\n}\n.text-primary {\n color: #007bff !important;\n}\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n.text-secondary {\n color: #6c757d !important;\n}\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n.text-success {\n color: #28a745 !important;\n}\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n.text-info {\n color: #17a2b8 !important;\n}\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n.text-warning {\n color: #ffc107 !important;\n}\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n.text-danger {\n color: #dc3545 !important;\n}\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n.text-light {\n color: #f8f9fa !important;\n}\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n.text-dark {\n color: #343a40 !important;\n}\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n.text-body {\n color: #212529 !important;\n}\n.text-muted {\n color: #6c757d !important;\n}\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.text-decoration-none {\n text-decoration: none !important;\n}\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n.text-reset {\n color: inherit !important;\n}\n.visible {\n visibility: visible !important;\n}\n.invisible {\n visibility: hidden !important;\n}\n@media print {\n *,\n*::before,\n*::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n\n a:not(.btn) {\n text-decoration: underline;\n }\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n pre {\n white-space: pre-wrap !important;\n }\n\n pre,\nblockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group;\n }\n\n tr,\nimg {\n page-break-inside: avoid;\n }\n\n p,\nh2,\nh3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\nh3 {\n page-break-after: avoid;\n }\n\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n\n .container {\n min-width: 992px !important;\n }\n\n .navbar {\n display: none;\n }\n\n .badge {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n.table th {\n background-color: #fff !important;\n }\n\n .table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}","@charset \"UTF-8\";\n/*!\n * Material Design for Bootstrap 4\n * Version: MDB PRO 4.8.2\n *\n *\n * Copyright: Material Design for Bootstrap\n * https://mdbootstrap.com/\n *\n * Read the license: https://mdbootstrap.com/general/license/\n *\n *\n * Documentation: https://mdbootstrap.com/\n *\n * Getting started: https://mdbootstrap.com/docs/jquery/getting-started/download/\n *\n * Tutorials: https://mdbootstrap.com/education/bootstrap/\n *\n * Templates: https://mdbootstrap.com/templates/\n *\n * Support: https://mdbootstrap.com/support/\n *\n * Contact: office@mdbootstrap.com\n *\n * Attribution: Animate CSS, Twitter Bootstrap, Materialize CSS, Normalize CSS, Waves JS, WOW JS, Toastr, Chart.js\n *\n */\n.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}\n.cdk-overlay-container{position:fixed;z-index:1000}\n.cdk-overlay-container:empty{display:none}\n.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}\n.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}\n.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}\n@media screen and (-ms-high-contrast: active){.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}}\n.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}\n.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}\n.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}\n.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}\n.cdk-overlay-container {\n z-index: 1050 !important;\n}\n/*** Global ***/\n.mdb-color.lighten-5 {\n background-color: #d0d6e2 !important;\n}\n.mdb-color.lighten-4 {\n background-color: #b1bace !important;\n}\n.mdb-color.lighten-3 {\n background-color: #929fba !important;\n}\n.mdb-color.lighten-2 {\n background-color: #7283a7 !important;\n}\n.mdb-color.lighten-1 {\n background-color: #59698d !important;\n}\n.mdb-color {\n background-color: #45526e !important;\n}\n.mdb-color-text {\n color: #45526e !important;\n}\n.rgba-mdb-color-slight,\n.rgba-mdb-color-slight:after {\n background-color: rgba(69, 82, 110, 0.1);\n}\n.rgba-mdb-color-light,\n.rgba-mdb-color-light:after {\n background-color: rgba(69, 82, 110, 0.3);\n}\n.rgba-mdb-color-strong,\n.rgba-mdb-color-strong:after {\n background-color: rgba(69, 82, 110, 0.7);\n}\n.mdb-color.darken-1 {\n background-color: #3b465e !important;\n}\n.mdb-color.darken-2 {\n background-color: #2e3951 !important;\n}\n.mdb-color.darken-3 {\n background-color: #1c2a48 !important;\n}\n.mdb-color.darken-4 {\n background-color: #1c2331 !important;\n}\n.red.lighten-5 {\n background-color: #ffebee !important;\n}\n.red.lighten-4 {\n background-color: #ffcdd2 !important;\n}\n.red.lighten-3 {\n background-color: #ef9a9a !important;\n}\n.red.lighten-2 {\n background-color: #e57373 !important;\n}\n.red.lighten-1 {\n background-color: #ef5350 !important;\n}\n.red {\n background-color: #f44336 !important;\n}\n.red-text {\n color: #f44336 !important;\n}\n.rgba-red-slight,\n.rgba-red-slight:after {\n background-color: rgba(244, 67, 54, 0.1);\n}\n.rgba-red-light,\n.rgba-red-light:after {\n background-color: rgba(244, 67, 54, 0.3);\n}\n.rgba-red-strong,\n.rgba-red-strong:after {\n background-color: rgba(244, 67, 54, 0.7);\n}\n.red.darken-1 {\n background-color: #e53935 !important;\n}\n.red.darken-2 {\n background-color: #d32f2f !important;\n}\n.red.darken-3 {\n background-color: #c62828 !important;\n}\n.red.darken-4 {\n background-color: #b71c1c !important;\n}\n.red.accent-1 {\n background-color: #ff8a80 !important;\n}\n.red.accent-2 {\n background-color: #ff5252 !important;\n}\n.red.accent-3 {\n background-color: #ff1744 !important;\n}\n.red.accent-4 {\n background-color: #d50000 !important;\n}\n.pink.lighten-5 {\n background-color: #fce4ec !important;\n}\n.pink.lighten-4 {\n background-color: #f8bbd0 !important;\n}\n.pink.lighten-3 {\n background-color: #f48fb1 !important;\n}\n.pink.lighten-2 {\n background-color: #f06292 !important;\n}\n.pink.lighten-1 {\n background-color: #ec407a !important;\n}\n.pink {\n background-color: #e91e63 !important;\n}\n.pink-text {\n color: #e91e63 !important;\n}\n.rgba-pink-slight,\n.rgba-pink-slight:after {\n background-color: rgba(233, 30, 99, 0.1);\n}\n.rgba-pink-light,\n.rgba-pink-light:after {\n background-color: rgba(233, 30, 99, 0.3);\n}\n.rgba-pink-strong,\n.rgba-pink-strong:after {\n background-color: rgba(233, 30, 99, 0.7);\n}\n.pink.darken-1 {\n background-color: #d81b60 !important;\n}\n.pink.darken-2 {\n background-color: #c2185b !important;\n}\n.pink.darken-3 {\n background-color: #ad1457 !important;\n}\n.pink.darken-4 {\n background-color: #880e4f !important;\n}\n.pink.accent-1 {\n background-color: #ff80ab !important;\n}\n.pink.accent-2 {\n background-color: #ff4081 !important;\n}\n.pink.accent-3 {\n background-color: #f50057 !important;\n}\n.pink.accent-4 {\n background-color: #c51162 !important;\n}\n.purple.lighten-5 {\n background-color: #f3e5f5 !important;\n}\n.purple.lighten-4 {\n background-color: #e1bee7 !important;\n}\n.purple.lighten-3 {\n background-color: #ce93d8 !important;\n}\n.purple.lighten-2 {\n background-color: #ba68c8 !important;\n}\n.purple.lighten-1 {\n background-color: #ab47bc !important;\n}\n.purple {\n background-color: #9c27b0 !important;\n}\n.purple-text {\n color: #9c27b0 !important;\n}\n.rgba-purple-slight,\n.rgba-purple-slight:after {\n background-color: rgba(156, 39, 176, 0.1);\n}\n.rgba-purple-light,\n.rgba-purple-light:after {\n background-color: rgba(156, 39, 176, 0.3);\n}\n.rgba-purple-strong,\n.rgba-purple-strong:after {\n background-color: rgba(156, 39, 176, 0.7);\n}\n.purple.darken-1 {\n background-color: #8e24aa !important;\n}\n.purple.darken-2 {\n background-color: #7b1fa2 !important;\n}\n.purple.darken-3 {\n background-color: #6a1b9a !important;\n}\n.purple.darken-4 {\n background-color: #4a148c !important;\n}\n.purple.accent-1 {\n background-color: #ea80fc !important;\n}\n.purple.accent-2 {\n background-color: #e040fb !important;\n}\n.purple.accent-3 {\n background-color: #d500f9 !important;\n}\n.purple.accent-4 {\n background-color: #aa00ff !important;\n}\n.deep-purple.lighten-5 {\n background-color: #ede7f6 !important;\n}\n.deep-purple.lighten-4 {\n background-color: #d1c4e9 !important;\n}\n.deep-purple.lighten-3 {\n background-color: #b39ddb !important;\n}\n.deep-purple.lighten-2 {\n background-color: #9575cd !important;\n}\n.deep-purple.lighten-1 {\n background-color: #7e57c2 !important;\n}\n.deep-purple {\n background-color: #673ab7 !important;\n}\n.deep-purple-text {\n color: #673ab7 !important;\n}\n.rgba-deep-purple-slight,\n.rgba-deep-purple-slight:after {\n background-color: rgba(103, 58, 183, 0.1);\n}\n.rgba-deep-purple-light,\n.rgba-deep-purple-light:after {\n background-color: rgba(103, 58, 183, 0.3);\n}\n.rgba-deep-purple-strong,\n.rgba-deep-purple-strong:after {\n background-color: rgba(103, 58, 183, 0.7);\n}\n.deep-purple.darken-1 {\n background-color: #5e35b1 !important;\n}\n.deep-purple.darken-2 {\n background-color: #512da8 !important;\n}\n.deep-purple.darken-3 {\n background-color: #4527a0 !important;\n}\n.deep-purple.darken-4 {\n background-color: #311b92 !important;\n}\n.deep-purple.accent-1 {\n background-color: #b388ff !important;\n}\n.deep-purple.accent-2 {\n background-color: #7c4dff !important;\n}\n.deep-purple.accent-3 {\n background-color: #651fff !important;\n}\n.deep-purple.accent-4 {\n background-color: #6200ea !important;\n}\n.indigo.lighten-5 {\n background-color: #e8eaf6 !important;\n}\n.indigo.lighten-4 {\n background-color: #c5cae9 !important;\n}\n.indigo.lighten-3 {\n background-color: #9fa8da !important;\n}\n.indigo.lighten-2 {\n background-color: #7986cb !important;\n}\n.indigo.lighten-1 {\n background-color: #5c6bc0 !important;\n}\n.indigo {\n background-color: #3f51b5 !important;\n}\n.indigo-text {\n color: #3f51b5 !important;\n}\n.rgba-indigo-slight,\n.rgba-indigo-slight:after {\n background-color: rgba(63, 81, 181, 0.1);\n}\n.rgba-indigo-light,\n.rgba-indigo-light:after {\n background-color: rgba(63, 81, 181, 0.3);\n}\n.rgba-indigo-strong,\n.rgba-indigo-strong:after {\n background-color: rgba(63, 81, 181, 0.7);\n}\n.indigo.darken-1 {\n background-color: #3949ab !important;\n}\n.indigo.darken-2 {\n background-color: #303f9f !important;\n}\n.indigo.darken-3 {\n background-color: #283593 !important;\n}\n.indigo.darken-4 {\n background-color: #1a237e !important;\n}\n.indigo.accent-1 {\n background-color: #8c9eff !important;\n}\n.indigo.accent-2 {\n background-color: #536dfe !important;\n}\n.indigo.accent-3 {\n background-color: #3d5afe !important;\n}\n.indigo.accent-4 {\n background-color: #304ffe !important;\n}\n.blue.lighten-5 {\n background-color: #e3f2fd !important;\n}\n.blue.lighten-4 {\n background-color: #bbdefb !important;\n}\n.blue.lighten-3 {\n background-color: #90caf9 !important;\n}\n.blue.lighten-2 {\n background-color: #64b5f6 !important;\n}\n.blue.lighten-1 {\n background-color: #42a5f5 !important;\n}\n.blue {\n background-color: #2196f3 !important;\n}\n.blue-text {\n color: #2196f3 !important;\n}\n.rgba-blue-slight,\n.rgba-blue-slight:after {\n background-color: rgba(33, 150, 243, 0.1);\n}\n.rgba-blue-light,\n.rgba-blue-light:after {\n background-color: rgba(33, 150, 243, 0.3);\n}\n.rgba-blue-strong,\n.rgba-blue-strong:after {\n background-color: rgba(33, 150, 243, 0.7);\n}\n.blue.darken-1 {\n background-color: #1e88e5 !important;\n}\n.blue.darken-2 {\n background-color: #1976d2 !important;\n}\n.blue.darken-3 {\n background-color: #1565c0 !important;\n}\n.blue.darken-4 {\n background-color: #0d47a1 !important;\n}\n.blue.accent-1 {\n background-color: #82b1ff !important;\n}\n.blue.accent-2 {\n background-color: #448aff !important;\n}\n.blue.accent-3 {\n background-color: #2979ff !important;\n}\n.blue.accent-4 {\n background-color: #2962ff !important;\n}\n.light-blue.lighten-5 {\n background-color: #e1f5fe !important;\n}\n.light-blue.lighten-4 {\n background-color: #b3e5fc !important;\n}\n.light-blue.lighten-3 {\n background-color: #81d4fa !important;\n}\n.light-blue.lighten-2 {\n background-color: #4fc3f7 !important;\n}\n.light-blue.lighten-1 {\n background-color: #29b6f6 !important;\n}\n.light-blue {\n background-color: #03a9f4 !important;\n}\n.light-blue-text {\n color: #03a9f4 !important;\n}\n.rgba-light-blue-slight,\n.rgba-light-blue-slight:after {\n background-color: rgba(3, 169, 244, 0.1);\n}\n.rgba-light-blue-light,\n.rgba-light-blue-light:after {\n background-color: rgba(3, 169, 244, 0.3);\n}\n.rgba-light-blue-strong,\n.rgba-light-blue-strong:after {\n background-color: rgba(3, 169, 244, 0.7);\n}\n.light-blue.darken-1 {\n background-color: #039be5 !important;\n}\n.light-blue.darken-2 {\n background-color: #0288d1 !important;\n}\n.light-blue.darken-3 {\n background-color: #0277bd !important;\n}\n.light-blue.darken-4 {\n background-color: #01579b !important;\n}\n.light-blue.accent-1 {\n background-color: #80d8ff !important;\n}\n.light-blue.accent-2 {\n background-color: #40c4ff !important;\n}\n.light-blue.accent-3 {\n background-color: #00b0ff !important;\n}\n.light-blue.accent-4 {\n background-color: #0091ea !important;\n}\n.cyan.lighten-5 {\n background-color: #e0f7fa !important;\n}\n.cyan.lighten-4 {\n background-color: #b2ebf2 !important;\n}\n.cyan.lighten-3 {\n background-color: #80deea !important;\n}\n.cyan.lighten-2 {\n background-color: #4dd0e1 !important;\n}\n.cyan.lighten-1 {\n background-color: #26c6da !important;\n}\n.cyan {\n background-color: #00bcd4 !important;\n}\n.cyan-text {\n color: #00bcd4 !important;\n}\n.rgba-cyan-slight,\n.rgba-cyan-slight:after {\n background-color: rgba(0, 188, 212, 0.1);\n}\n.rgba-cyan-light,\n.rgba-cyan-light:after {\n background-color: rgba(0, 188, 212, 0.3);\n}\n.rgba-cyan-strong,\n.rgba-cyan-strong:after {\n background-color: rgba(0, 188, 212, 0.7);\n}\n.cyan.darken-1 {\n background-color: #00acc1 !important;\n}\n.cyan.darken-2 {\n background-color: #0097a7 !important;\n}\n.cyan.darken-3 {\n background-color: #00838f !important;\n}\n.cyan.darken-4 {\n background-color: #006064 !important;\n}\n.cyan.accent-1 {\n background-color: #84ffff !important;\n}\n.cyan.accent-2 {\n background-color: #18ffff !important;\n}\n.cyan.accent-3 {\n background-color: #00e5ff !important;\n}\n.cyan.accent-4 {\n background-color: #00b8d4 !important;\n}\n.teal.lighten-5 {\n background-color: #e0f2f1 !important;\n}\n.teal.lighten-4 {\n background-color: #b2dfdb !important;\n}\n.teal.lighten-3 {\n background-color: #80cbc4 !important;\n}\n.teal.lighten-2 {\n background-color: #4db6ac !important;\n}\n.teal.lighten-1 {\n background-color: #26a69a !important;\n}\n.teal {\n background-color: #009688 !important;\n}\n.teal-text {\n color: #009688 !important;\n}\n.rgba-teal-slight,\n.rgba-teal-slight:after {\n background-color: rgba(0, 150, 136, 0.1);\n}\n.rgba-teal-light,\n.rgba-teal-light:after {\n background-color: rgba(0, 150, 136, 0.3);\n}\n.rgba-teal-strong,\n.rgba-teal-strong:after {\n background-color: rgba(0, 150, 136, 0.7);\n}\n.teal.darken-1 {\n background-color: #00897b !important;\n}\n.teal.darken-2 {\n background-color: #00796b !important;\n}\n.teal.darken-3 {\n background-color: #00695c !important;\n}\n.teal.darken-4 {\n background-color: #004d40 !important;\n}\n.teal.accent-1 {\n background-color: #a7ffeb !important;\n}\n.teal.accent-2 {\n background-color: #64ffda !important;\n}\n.teal.accent-3 {\n background-color: #1de9b6 !important;\n}\n.teal.accent-4 {\n background-color: #00bfa5 !important;\n}\n.green.lighten-5 {\n background-color: #e8f5e9 !important;\n}\n.green.lighten-4 {\n background-color: #c8e6c9 !important;\n}\n.green.lighten-3 {\n background-color: #a5d6a7 !important;\n}\n.green.lighten-2 {\n background-color: #81c784 !important;\n}\n.green.lighten-1 {\n background-color: #66bb6a !important;\n}\n.green {\n background-color: #4caf50 !important;\n}\n.green-text {\n color: #4caf50 !important;\n}\n.rgba-green-slight,\n.rgba-green-slight:after {\n background-color: rgba(76, 175, 80, 0.1);\n}\n.rgba-green-light,\n.rgba-green-light:after {\n background-color: rgba(76, 175, 80, 0.3);\n}\n.rgba-green-strong,\n.rgba-green-strong:after {\n background-color: rgba(76, 175, 80, 0.7);\n}\n.green.darken-1 {\n background-color: #43a047 !important;\n}\n.green.darken-2 {\n background-color: #388e3c !important;\n}\n.green.darken-3 {\n background-color: #2e7d32 !important;\n}\n.green.darken-4 {\n background-color: #1b5e20 !important;\n}\n.green.accent-1 {\n background-color: #b9f6ca !important;\n}\n.green.accent-2 {\n background-color: #69f0ae !important;\n}\n.green.accent-3 {\n background-color: #00e676 !important;\n}\n.green.accent-4 {\n background-color: #00c853 !important;\n}\n.light-green.lighten-5 {\n background-color: #f1f8e9 !important;\n}\n.light-green.lighten-4 {\n background-color: #dcedc8 !important;\n}\n.light-green.lighten-3 {\n background-color: #c5e1a5 !important;\n}\n.light-green.lighten-2 {\n background-color: #aed581 !important;\n}\n.light-green.lighten-1 {\n background-color: #9ccc65 !important;\n}\n.light-green {\n background-color: #8bc34a !important;\n}\n.light-green-text {\n color: #8bc34a !important;\n}\n.rgba-light-green-slight,\n.rgba-light-green-slight:after {\n background-color: rgba(139, 195, 74, 0.1);\n}\n.rgba-light-green-light,\n.rgba-light-green-light:after {\n background-color: rgba(139, 195, 74, 0.3);\n}\n.rgba-light-green-strong,\n.rgba-light-green-strong:after {\n background-color: rgba(139, 195, 74, 0.7);\n}\n.light-green.darken-1 {\n background-color: #7cb342 !important;\n}\n.light-green.darken-2 {\n background-color: #689f38 !important;\n}\n.light-green.darken-3 {\n background-color: #558b2f !important;\n}\n.light-green.darken-4 {\n background-color: #33691e !important;\n}\n.light-green.accent-1 {\n background-color: #ccff90 !important;\n}\n.light-green.accent-2 {\n background-color: #b2ff59 !important;\n}\n.light-green.accent-3 {\n background-color: #76ff03 !important;\n}\n.light-green.accent-4 {\n background-color: #64dd17 !important;\n}\n.lime.lighten-5 {\n background-color: #f9fbe7 !important;\n}\n.lime.lighten-4 {\n background-color: #f0f4c3 !important;\n}\n.lime.lighten-3 {\n background-color: #e6ee9c !important;\n}\n.lime.lighten-2 {\n background-color: #dce775 !important;\n}\n.lime.lighten-1 {\n background-color: #d4e157 !important;\n}\n.lime {\n background-color: #cddc39 !important;\n}\n.lime-text {\n color: #cddc39 !important;\n}\n.rgba-lime-slight,\n.rgba-lime-slight:after {\n background-color: rgba(205, 220, 57, 0.1);\n}\n.rgba-lime-light,\n.rgba-lime-light:after {\n background-color: rgba(205, 220, 57, 0.3);\n}\n.rgba-lime-strong,\n.rgba-lime-strong:after {\n background-color: rgba(205, 220, 57, 0.7);\n}\n.lime.darken-1 {\n background-color: #c0ca33 !important;\n}\n.lime.darken-2 {\n background-color: #afb42b !important;\n}\n.lime.darken-3 {\n background-color: #9e9d24 !important;\n}\n.lime.darken-4 {\n background-color: #827717 !important;\n}\n.lime.accent-1 {\n background-color: #f4ff81 !important;\n}\n.lime.accent-2 {\n background-color: #eeff41 !important;\n}\n.lime.accent-3 {\n background-color: #c6ff00 !important;\n}\n.lime.accent-4 {\n background-color: #aeea00 !important;\n}\n.yellow.lighten-5 {\n background-color: #fffde7 !important;\n}\n.yellow.lighten-4 {\n background-color: #fff9c4 !important;\n}\n.yellow.lighten-3 {\n background-color: #fff59d !important;\n}\n.yellow.lighten-2 {\n background-color: #fff176 !important;\n}\n.yellow.lighten-1 {\n background-color: #ffee58 !important;\n}\n.yellow {\n background-color: #ffeb3b !important;\n}\n.yellow-text {\n color: #ffeb3b !important;\n}\n.rgba-yellow-slight,\n.rgba-yellow-slight:after {\n background-color: rgba(255, 235, 59, 0.1);\n}\n.rgba-yellow-light,\n.rgba-yellow-light:after {\n background-color: rgba(255, 235, 59, 0.3);\n}\n.rgba-yellow-strong,\n.rgba-yellow-strong:after {\n background-color: rgba(255, 235, 59, 0.7);\n}\n.yellow.darken-1 {\n background-color: #fdd835 !important;\n}\n.yellow.darken-2 {\n background-color: #fbc02d !important;\n}\n.yellow.darken-3 {\n background-color: #f9a825 !important;\n}\n.yellow.darken-4 {\n background-color: #f57f17 !important;\n}\n.yellow.accent-1 {\n background-color: #ffff8d !important;\n}\n.yellow.accent-2 {\n background-color: #ffff00 !important;\n}\n.yellow.accent-3 {\n background-color: #ffea00 !important;\n}\n.yellow.accent-4 {\n background-color: #ffd600 !important;\n}\n.amber.lighten-5 {\n background-color: #fff8e1 !important;\n}\n.amber.lighten-4 {\n background-color: #ffecb3 !important;\n}\n.amber.lighten-3 {\n background-color: #ffe082 !important;\n}\n.amber.lighten-2 {\n background-color: #ffd54f !important;\n}\n.amber.lighten-1 {\n background-color: #ffca28 !important;\n}\n.amber {\n background-color: #ffc107 !important;\n}\n.amber-text {\n color: #ffc107 !important;\n}\n.rgba-amber-slight,\n.rgba-amber-slight:after {\n background-color: rgba(255, 193, 7, 0.1);\n}\n.rgba-amber-light,\n.rgba-amber-light:after {\n background-color: rgba(255, 193, 7, 0.3);\n}\n.rgba-amber-strong,\n.rgba-amber-strong:after {\n background-color: rgba(255, 193, 7, 0.7);\n}\n.amber.darken-1 {\n background-color: #ffb300 !important;\n}\n.amber.darken-2 {\n background-color: #ffa000 !important;\n}\n.amber.darken-3 {\n background-color: #ff8f00 !important;\n}\n.amber.darken-4 {\n background-color: #ff6f00 !important;\n}\n.amber.accent-1 {\n background-color: #ffe57f !important;\n}\n.amber.accent-2 {\n background-color: #ffd740 !important;\n}\n.amber.accent-3 {\n background-color: #ffc400 !important;\n}\n.amber.accent-4 {\n background-color: #ffab00 !important;\n}\n.orange.lighten-5 {\n background-color: #fff3e0 !important;\n}\n.orange.lighten-4 {\n background-color: #ffe0b2 !important;\n}\n.orange.lighten-3 {\n background-color: #ffcc80 !important;\n}\n.orange.lighten-2 {\n background-color: #ffb74d !important;\n}\n.orange.lighten-1 {\n background-color: #ffa726 !important;\n}\n.orange {\n background-color: #ff9800 !important;\n}\n.orange-text {\n color: #ff9800 !important;\n}\n.rgba-orange-slight,\n.rgba-orange-slight:after {\n background-color: rgba(255, 152, 0, 0.1);\n}\n.rgba-orange-light,\n.rgba-orange-light:after {\n background-color: rgba(255, 152, 0, 0.3);\n}\n.rgba-orange-strong,\n.rgba-orange-strong:after {\n background-color: rgba(255, 152, 0, 0.7);\n}\n.orange.darken-1 {\n background-color: #fb8c00 !important;\n}\n.orange.darken-2 {\n background-color: #f57c00 !important;\n}\n.orange.darken-3 {\n background-color: #ef6c00 !important;\n}\n.orange.darken-4 {\n background-color: #e65100 !important;\n}\n.orange.accent-1 {\n background-color: #ffd180 !important;\n}\n.orange.accent-2 {\n background-color: #ffab40 !important;\n}\n.orange.accent-3 {\n background-color: #ff9100 !important;\n}\n.orange.accent-4 {\n background-color: #ff6d00 !important;\n}\n.deep-orange.lighten-5 {\n background-color: #fbe9e7 !important;\n}\n.deep-orange.lighten-4 {\n background-color: #ffccbc !important;\n}\n.deep-orange.lighten-3 {\n background-color: #ffab91 !important;\n}\n.deep-orange.lighten-2 {\n background-color: #ff8a65 !important;\n}\n.deep-orange.lighten-1 {\n background-color: #ff7043 !important;\n}\n.deep-orange {\n background-color: #ff5722 !important;\n}\n.deep-orange-text {\n color: #ff5722 !important;\n}\n.rgba-deep-orange-slight,\n.rgba-deep-orange-slight:after {\n background-color: rgba(255, 87, 34, 0.1);\n}\n.rgba-deep-orange-light,\n.rgba-deep-orange-light:after {\n background-color: rgba(255, 87, 34, 0.3);\n}\n.rgba-deep-orange-strong,\n.rgba-deep-orange-strong:after {\n background-color: rgba(255, 87, 34, 0.7);\n}\n.deep-orange.darken-1 {\n background-color: #f4511e !important;\n}\n.deep-orange.darken-2 {\n background-color: #e64a19 !important;\n}\n.deep-orange.darken-3 {\n background-color: #d84315 !important;\n}\n.deep-orange.darken-4 {\n background-color: #bf360c !important;\n}\n.deep-orange.accent-1 {\n background-color: #ff9e80 !important;\n}\n.deep-orange.accent-2 {\n background-color: #ff6e40 !important;\n}\n.deep-orange.accent-3 {\n background-color: #ff3d00 !important;\n}\n.deep-orange.accent-4 {\n background-color: #dd2c00 !important;\n}\n.brown.lighten-5 {\n background-color: #efebe9 !important;\n}\n.brown.lighten-4 {\n background-color: #d7ccc8 !important;\n}\n.brown.lighten-3 {\n background-color: #bcaaa4 !important;\n}\n.brown.lighten-2 {\n background-color: #a1887f !important;\n}\n.brown.lighten-1 {\n background-color: #8d6e63 !important;\n}\n.brown {\n background-color: #795548 !important;\n}\n.brown-text {\n color: #795548 !important;\n}\n.rgba-brown-slight,\n.rgba-brown-slight:after {\n background-color: rgba(121, 85, 72, 0.1);\n}\n.rgba-brown-light,\n.rgba-brown-light:after {\n background-color: rgba(121, 85, 72, 0.3);\n}\n.rgba-brown-strong,\n.rgba-brown-strong:after {\n background-color: rgba(121, 85, 72, 0.7);\n}\n.brown.darken-1 {\n background-color: #6d4c41 !important;\n}\n.brown.darken-2 {\n background-color: #5d4037 !important;\n}\n.brown.darken-3 {\n background-color: #4e342e !important;\n}\n.brown.darken-4 {\n background-color: #3e2723 !important;\n}\n.blue-grey.lighten-5 {\n background-color: #eceff1 !important;\n}\n.blue-grey.lighten-4 {\n background-color: #cfd8dc !important;\n}\n.blue-grey.lighten-3 {\n background-color: #b0bec5 !important;\n}\n.blue-grey.lighten-2 {\n background-color: #90a4ae !important;\n}\n.blue-grey.lighten-1 {\n background-color: #78909c !important;\n}\n.blue-grey {\n background-color: #607d8b !important;\n}\n.blue-grey-text {\n color: #607d8b !important;\n}\n.rgba-blue-grey-slight,\n.rgba-blue-grey-slight:after {\n background-color: rgba(96, 125, 139, 0.1);\n}\n.rgba-blue-grey-light,\n.rgba-blue-grey-light:after {\n background-color: rgba(96, 125, 139, 0.3);\n}\n.rgba-blue-grey-strong,\n.rgba-blue-grey-strong:after {\n background-color: rgba(96, 125, 139, 0.7);\n}\n.blue-grey.darken-1 {\n background-color: #546e7a !important;\n}\n.blue-grey.darken-2 {\n background-color: #455a64 !important;\n}\n.blue-grey.darken-3 {\n background-color: #37474f !important;\n}\n.blue-grey.darken-4 {\n background-color: #263238 !important;\n}\n.grey.lighten-5 {\n background-color: #fafafa !important;\n}\n.grey.lighten-4 {\n background-color: #f5f5f5 !important;\n}\n.grey.lighten-3 {\n background-color: #eeeeee !important;\n}\n.grey.lighten-2 {\n background-color: #e0e0e0 !important;\n}\n.grey.lighten-1 {\n background-color: #bdbdbd !important;\n}\n.grey {\n background-color: #9e9e9e !important;\n}\n.grey-text {\n color: #9e9e9e !important;\n}\n.rgba-grey-slight,\n.rgba-grey-slight:after {\n background-color: rgba(158, 158, 158, 0.1);\n}\n.rgba-grey-light,\n.rgba-grey-light:after {\n background-color: rgba(158, 158, 158, 0.3);\n}\n.rgba-grey-strong,\n.rgba-grey-strong:after {\n background-color: rgba(158, 158, 158, 0.7);\n}\n.grey.darken-1 {\n background-color: #757575 !important;\n}\n.grey.darken-2 {\n background-color: #616161 !important;\n}\n.grey.darken-3 {\n background-color: #424242 !important;\n}\n.grey.darken-4 {\n background-color: #212121 !important;\n}\n.black {\n background-color: #000 !important;\n}\n.black-text {\n color: #000 !important;\n}\n.rgba-black-slight,\n.rgba-black-slight:after {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.rgba-black-light,\n.rgba-black-light:after {\n background-color: rgba(0, 0, 0, 0.3);\n}\n.rgba-black-strong,\n.rgba-black-strong:after {\n background-color: rgba(0, 0, 0, 0.7);\n}\n.white {\n background-color: #fff !important;\n}\n.white-text {\n color: #fff !important;\n}\n.rgba-white-slight,\n.rgba-white-slight:after {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.rgba-white-light,\n.rgba-white-light:after {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.rgba-white-strong,\n.rgba-white-strong:after {\n background-color: rgba(255, 255, 255, 0.7);\n}\n.rgba-stylish-slight {\n background-color: rgba(62, 69, 81, 0.1);\n}\n.rgba-stylish-light {\n background-color: rgba(62, 69, 81, 0.3);\n}\n.rgba-stylish-strong {\n background-color: rgba(62, 69, 81, 0.7);\n}\n.primary-color, ul.stepper li.active a .circle, ul.stepper li.completed a .circle {\n background-color: #4285f4 !important;\n}\n.primary-color-dark {\n background-color: #0d47a1 !important;\n}\n.secondary-color {\n background-color: #aa66cc !important;\n}\n.secondary-color-dark {\n background-color: #9933cc !important;\n}\n.default-color {\n background-color: #2bbbad !important;\n}\n.default-color-dark {\n background-color: #00695c !important;\n}\n.info-color {\n background-color: #33b5e5 !important;\n}\n.info-color-dark {\n background-color: #0099cc !important;\n}\n.success-color {\n background-color: #00c851 !important;\n}\n.success-color-dark {\n background-color: #007e33 !important;\n}\n.warning-color {\n background-color: #ffbb33 !important;\n}\n.warning-color-dark {\n background-color: #ff8800 !important;\n}\n.danger-color, ul.stepper li.warning a .circle {\n background-color: #ff3547 !important;\n}\n.danger-color-dark {\n background-color: #cc0000 !important;\n}\n.elegant-color {\n background-color: #2e2e2e !important;\n}\n.elegant-color-dark {\n background-color: #212121 !important;\n}\n.stylish-color {\n background-color: #4b515d !important;\n}\n.stylish-color-dark {\n background-color: #3e4551 !important;\n}\n.unique-color {\n background-color: #3f729b !important;\n}\n.unique-color-dark {\n background-color: #1c2331 !important;\n}\n.special-color {\n background-color: #37474f !important;\n}\n.special-color-dark {\n background-color: #263238 !important;\n}\n.purple-gradient {\n background: linear-gradient(40deg, #ff6ec4, #7873f5) !important;\n}\n.peach-gradient {\n background: linear-gradient(40deg, #FFD86F, #FC6262) !important;\n}\n.aqua-gradient {\n background: linear-gradient(40deg, #2096ff, #05ffa3) !important;\n}\n.blue-gradient {\n background: linear-gradient(40deg, #45cafc, #303f9f) !important;\n}\n.purple-gradient-rgba {\n background: linear-gradient(40deg, rgba(255, 110, 196, 0.9), rgba(120, 115, 245, 0.9)) !important;\n}\n.peach-gradient-rgba {\n background: linear-gradient(40deg, rgba(255, 216, 111, 0.9), rgba(252, 98, 98, 0.9)) !important;\n}\n.aqua-gradient-rgba {\n background: linear-gradient(40deg, rgba(32, 150, 255, 0.9), rgba(5, 255, 163, 0.9)) !important;\n}\n.blue-gradient-rgba {\n background: linear-gradient(40deg, rgba(69, 202, 252, 0.9), rgba(48, 63, 159, 0.9)) !important;\n}\n.dark-grey-text {\n color: #4f4f4f !important;\n}\n.dark-grey-text:hover, .dark-grey-text:focus {\n color: #4f4f4f !important;\n}\n.hoverable {\n box-shadow: none;\n transition: all 0.55s ease-in-out;\n}\n.hoverable:hover {\n box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n transition: all 0.55s ease-in-out;\n}\n.z-depth-0 {\n box-shadow: none !important;\n}\n.z-depth-1 {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.z-depth-1-half {\n box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15) !important;\n}\n.z-depth-2 {\n box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19) !important;\n}\n.z-depth-3 {\n box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19) !important;\n}\n.z-depth-4 {\n box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21) !important;\n}\n.z-depth-5 {\n box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22) !important;\n}\n.disabled,\n:disabled {\n pointer-events: none !important;\n}\na {\n cursor: pointer;\n text-decoration: none;\n color: #007bff;\n transition: all 0.2s ease-in-out;\n}\na:hover {\n text-decoration: none;\n color: #0056b3;\n transition: all 0.2s ease-in-out;\n}\na.disabled:hover, a:disabled:hover {\n color: #007bff;\n}\na:not([href]):not([tabindex]), a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {\n color: inherit;\n text-decoration: none;\n}\n.img-fluid,\n.video-fluid {\n max-width: 100%;\n height: auto;\n}\n.flex-center {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n}\n.flex-center p {\n margin: 0;\n}\n.flex-center ul {\n text-align: center;\n}\n.flex-center ul li {\n margin-bottom: 1rem;\n}\n.flex-center ul li:last-of-type {\n margin-bottom: 0;\n}\n.hr-light {\n border-top: 1px solid #fff;\n}\n.hr-dark {\n border-top: 1px solid #666;\n}\n.w-responsive {\n width: 75%;\n}\n@media (max-width: 740px) {\n .w-responsive {\n width: 100%;\n }\n}\n.collapsible-body {\n display: none;\n}\n.jumbotron {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n border-radius: 0.125rem;\n background-color: #fff;\n}\n.bg-primary {\n background-color: #4285f4 !important;\n}\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #1266f1 !important;\n}\n.border-primary {\n border-color: #4285f4 !important;\n}\n.bg-danger {\n background-color: #ff3547 !important;\n}\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #ff0219 !important;\n}\n.border-danger {\n border-color: #ff3547 !important;\n}\n.bg-warning {\n background-color: #ffbb33 !important;\n}\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #ffaa00 !important;\n}\n.border-warning {\n border-color: #ffbb33 !important;\n}\n.bg-success {\n background-color: #00c851 !important;\n}\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #00953c !important;\n}\n.border-success {\n border-color: #00c851 !important;\n}\n.bg-info {\n background-color: #33b5e5 !important;\n}\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #1a9bcb !important;\n}\n.border-info {\n border-color: #33b5e5 !important;\n}\n.bg-default {\n background-color: #2bbbad !important;\n}\na.bg-default:hover, a.bg-default:focus,\nbutton.bg-default:hover,\nbutton.bg-default:focus {\n background-color: #219287 !important;\n}\n.border-default {\n border-color: #2bbbad !important;\n}\n.bg-secondary {\n background-color: #aa66cc !important;\n}\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #9540bf !important;\n}\n.border-secondary {\n border-color: #aa66cc !important;\n}\n.bg-dark {\n background-color: #212121 !important;\n}\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #080808 !important;\n}\n.border-dark {\n border-color: #212121 !important;\n}\n.bg-light {\n background-color: #e0e0e0 !important;\n}\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #c7c7c7 !important;\n}\n.border-light {\n border-color: #e0e0e0 !important;\n}\n.card-img-100 {\n width: 100px;\n height: 100px;\n}\n.card-img-64 {\n width: 64px;\n height: 64px;\n}\n.mml-1 {\n margin-left: -0.25rem !important;\n}\n.flex-1 {\n flex: 1;\n}\nbody {\n font-family: \"Roboto\", sans-serif;\n font-weight: 300;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: 300;\n}\n.h1-responsive {\n font-size: 150%;\n}\n.h2-responsive {\n font-size: 145%;\n}\n.h3-responsive {\n font-size: 135%;\n}\n.h4-responsive {\n font-size: 135%;\n}\n.h5-responsive {\n font-size: 135%;\n}\n@media (min-width: 576px) {\n .h1-responsive {\n font-size: 170%;\n }\n\n .h2-responsive {\n font-size: 140%;\n }\n\n .h3-responsive {\n font-size: 125%;\n }\n\n .h4-responsive {\n font-size: 125%;\n }\n\n .h5-responsive {\n font-size: 125%;\n }\n}\n@media (min-width: 768px) {\n .h1-responsive {\n font-size: 200%;\n }\n\n .h2-responsive {\n font-size: 170%;\n }\n\n .h3-responsive {\n font-size: 140%;\n }\n\n .h4-responsive {\n font-size: 125%;\n }\n\n .h5-responsive {\n font-size: 125%;\n }\n}\n@media (min-width: 992px) {\n .h1-responsive {\n font-size: 200%;\n }\n\n .h2-responsive {\n font-size: 170%;\n }\n\n .h3-responsive {\n font-size: 140%;\n }\n\n .h4-responsive {\n font-size: 125%;\n }\n\n .h5-responsive {\n font-size: 125%;\n }\n}\n@media (min-width: 1200px) {\n .h1-responsive {\n font-size: 250%;\n }\n\n .h2-responsive {\n font-size: 200%;\n }\n\n .h3-responsive {\n font-size: 170%;\n }\n\n .h4-responsive {\n font-size: 140%;\n }\n\n .h5-responsive {\n font-size: 125%;\n }\n}\n.divider-new {\n flex-direction: row;\n justify-content: center;\n align-items: center;\n display: flex;\n margin-top: 2.8rem;\n margin-bottom: 2.8rem;\n}\n.divider-new > h1,\n.divider-new h2,\n.divider-new h3,\n.divider-new h4,\n.divider-new h5,\n.divider-new h6 {\n margin-bottom: 0;\n}\n.divider-new:before, .divider-new:after {\n content: \"\";\n height: 1.5px;\n flex: 1;\n height: 2px;\n background: #c6c6c6;\n}\n.divider-new:before {\n margin: 0 0.5rem 0 0;\n}\n.divider-new:after {\n margin: 0 0 0 0.5rem;\n}\n.blockquote {\n padding: 0.5rem 1rem;\n border-left: 0.25rem solid #eceeef;\n}\n.blockquote.text-right {\n border-left: none;\n border-right: 0.25rem solid #eceeef;\n}\n.blockquote .bq-title {\n margin-bottom: 0;\n font-size: 1.5rem;\n font-weight: 400;\n}\n.blockquote p {\n padding: 1rem 0;\n font-size: 1.1rem;\n}\n.bq-primary {\n border-left: 3px solid #4285f4 !important;\n}\n.bq-primary .bq-title {\n color: #4285f4 !important;\n}\n.bq-danger {\n border-left: 3px solid #ff3547 !important;\n}\n.bq-danger .bq-title {\n color: #ff3547 !important;\n}\n.bq-warning {\n border-left: 3px solid #ffbb33 !important;\n}\n.bq-warning .bq-title {\n color: #ffbb33 !important;\n}\n.bq-success {\n border-left: 3px solid #00c851 !important;\n}\n.bq-success .bq-title {\n color: #00c851 !important;\n}\n.bq-info {\n border-left: 3px solid #33b5e5 !important;\n}\n.bq-info .bq-title {\n color: #33b5e5 !important;\n}\n.text-primary {\n color: #4285f4 !important;\n}\na.text-primary:hover, a.text-primary:focus {\n color: #1266f1 !important;\n}\n.text-danger {\n color: #ff3547 !important;\n}\na.text-danger:hover, a.text-danger:focus {\n color: #ff0219 !important;\n}\n.text-warning {\n color: #ffbb33 !important;\n}\na.text-warning:hover, a.text-warning:focus {\n color: #ffaa00 !important;\n}\n.text-success {\n color: #00c851 !important;\n}\na.text-success:hover, a.text-success:focus {\n color: #00953c !important;\n}\n.text-info {\n color: #33b5e5 !important;\n}\na.text-info:hover, a.text-info:focus {\n color: #1a9bcb !important;\n}\n.text-default {\n color: #2bbbad !important;\n}\na.text-default:hover, a.text-default:focus {\n color: #219287 !important;\n}\n.text-secondary {\n color: #aa66cc !important;\n}\na.text-secondary:hover, a.text-secondary:focus {\n color: #9540bf !important;\n}\n.text-dark {\n color: #212121 !important;\n}\na.text-dark:hover, a.text-dark:focus {\n color: #080808 !important;\n}\n.text-light {\n color: #e0e0e0 !important;\n}\na.text-light:hover, a.text-light:focus {\n color: #c7c7c7 !important;\n}\n.font-small {\n font-size: 0.9rem;\n}\n.view {\n position: relative;\n overflow: hidden;\n cursor: default;\n}\n.view .mask {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n width: 100%;\n height: 100%;\n background-attachment: fixed;\n}\n.view img,\n.view video {\n position: relative;\n display: block;\n}\n.view video.video-intro {\n z-index: -100;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n transition: 1s opacity;\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n}\n.overlay .mask {\n opacity: 0;\n transition: all 0.4s ease-in-out;\n}\n.overlay .mask:hover {\n opacity: 1;\n}\n.zoom img,\n.zoom video {\n transition: all 0.2s linear;\n}\n.zoom:hover img,\n.zoom:hover video {\n transform: scale(1.1);\n}\n.pattern-1 {\n background: url('01.png');\n background-attachment: fixed;\n}\n.pattern-2 {\n background: url('02.png');\n background-attachment: fixed;\n}\n.pattern-3 {\n background: url('03.png');\n background-attachment: fixed;\n}\n.pattern-4 {\n background: url('04.png');\n background-attachment: fixed;\n}\n.pattern-5 {\n background: url('05.png');\n background-attachment: fixed;\n}\n.pattern-6 {\n background: url('06.png');\n background-attachment: fixed;\n}\n.pattern-7 {\n background: url('07.png');\n background-attachment: fixed;\n}\n.pattern-8 {\n background: url('08.png');\n background-attachment: fixed;\n}\n.pattern-9 {\n background: url('09.png');\n background-attachment: fixed;\n}\n/*!\n * Waves v0.7.6\n * http://fian.my.id/Waves\n *\n * Copyright 2014-2018 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE */\n.waves-effect {\n position: relative;\n cursor: pointer;\n overflow: hidden;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n.waves-effect .waves-ripple {\n position: absolute;\n border-radius: 50%;\n width: 100px;\n height: 100px;\n margin-top: -50px;\n margin-left: -50px;\n opacity: 0;\n background: rgba(0, 0, 0, 0.2);\n background: radial-gradient(rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n transition: all 0.5s ease-out;\n transition-property: transform, opacity;\n transform: scale(0) translate(0, 0);\n pointer-events: none;\n}\n.waves-effect.waves-light .waves-ripple {\n background: rgba(255, 255, 255, 0.4);\n background: radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n}\n.waves-effect.waves-classic .waves-ripple {\n background: rgba(0, 0, 0, 0.2);\n}\n.waves-effect.waves-classic.waves-light .waves-ripple {\n background: rgba(255, 255, 255, 0.4);\n}\n.waves-notransition {\n transition: none !important;\n}\n.waves-button,\n.waves-circle {\n transform: translateZ(0);\n -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n.waves-button,\n.waves-button:hover,\n.waves-button:visited,\n.waves-button-input {\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n border: none;\n outline: none;\n color: inherit;\n background-color: rgba(0, 0, 0, 0);\n font-size: 1em;\n line-height: 1em;\n text-align: center;\n text-decoration: none;\n z-index: 1;\n}\n.waves-button {\n padding: 0.85em 1.1em;\n border-radius: 0.2em;\n}\n.waves-button-input {\n margin: 0;\n padding: 0.85em 1.1em;\n}\n.waves-input-wrapper {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n border-radius: 0.2em;\n}\n.waves-input-wrapper.waves-button {\n padding: 0;\n}\n.waves-input-wrapper .waves-button-input {\n position: relative;\n top: 0;\n left: 0;\n z-index: 1;\n}\n.waves-circle {\n text-align: center;\n width: 2.5em;\n height: 2.5em;\n line-height: 2.5em;\n border-radius: 50%;\n}\n.waves-float {\n -webkit-mask-image: none;\n box-shadow: 0px 1px 1.5px 1px rgba(0, 0, 0, 0.12);\n transition: all 300ms;\n}\n.waves-float:active {\n box-shadow: 0px 8px 20px 1px rgba(0, 0, 0, 0.3);\n}\n.waves-block {\n display: block;\n}\na:not(.nav-link).waves-effect, a:not(.nav-link).waves-light {\n display: inline-block;\n}\n.md-form {\n position: relative;\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n.md-form input[type=text],\n.md-form input[type=password],\n.md-form input[type=email],\n.md-form input[type=url],\n.md-form input[type=time],\n.md-form input[type=date],\n.md-form input[type=datetime-local],\n.md-form input[type=tel],\n.md-form input[type=number],\n.md-form input[type=search-md],\n.md-form input[type=search],\n.md-form textarea.md-textarea {\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n outline: none;\n box-shadow: none;\n border: none;\n border-bottom: 1px solid #ced4da;\n border-radius: 0;\n box-sizing: content-box;\n background-color: transparent;\n}\n.md-form input[type=text]:focus:not([readonly]),\n.md-form input[type=password]:focus:not([readonly]),\n.md-form input[type=email]:focus:not([readonly]),\n.md-form input[type=url]:focus:not([readonly]),\n.md-form input[type=time]:focus:not([readonly]),\n.md-form input[type=date]:focus:not([readonly]),\n.md-form input[type=datetime-local]:focus:not([readonly]),\n.md-form input[type=tel]:focus:not([readonly]),\n.md-form input[type=number]:focus:not([readonly]),\n.md-form input[type=search-md]:focus:not([readonly]),\n.md-form input[type=search]:focus:not([readonly]),\n.md-form textarea.md-textarea:focus:not([readonly]) {\n box-shadow: 0 1px 0 0 #4285f4;\n border-bottom: 1px solid #4285f4;\n}\n.md-form input[type=text]:focus:not([readonly]) + label,\n.md-form input[type=password]:focus:not([readonly]) + label,\n.md-form input[type=email]:focus:not([readonly]) + label,\n.md-form input[type=url]:focus:not([readonly]) + label,\n.md-form input[type=time]:focus:not([readonly]) + label,\n.md-form input[type=date]:focus:not([readonly]) + label,\n.md-form input[type=datetime-local]:focus:not([readonly]) + label,\n.md-form input[type=tel]:focus:not([readonly]) + label,\n.md-form input[type=number]:focus:not([readonly]) + label,\n.md-form input[type=search-md]:focus:not([readonly]) + label,\n.md-form input[type=search]:focus:not([readonly]) + label,\n.md-form textarea.md-textarea:focus:not([readonly]) + label {\n color: #4285f4;\n}\n.md-form input[type=text] + label:after,\n.md-form input[type=password] + label:after,\n.md-form input[type=email] + label:after,\n.md-form input[type=url] + label:after,\n.md-form input[type=time] + label:after,\n.md-form input[type=date] + label:after,\n.md-form input[type=datetime-local] + label:after,\n.md-form input[type=tel] + label:after,\n.md-form input[type=number] + label:after,\n.md-form input[type=search-md] + label:after,\n.md-form input[type=search] + label:after,\n.md-form textarea.md-textarea + label:after {\n content: \"\";\n position: absolute;\n top: 65px;\n display: block;\n opacity: 0;\n transition: 0.2s opacity ease-out, 0.2s color ease-out;\n}\n.md-form input[type=text].valid, .md-form input[type=text]:focus.valid,\n.md-form input[type=password].valid,\n.md-form input[type=password]:focus.valid,\n.md-form input[type=email].valid,\n.md-form input[type=email]:focus.valid,\n.md-form input[type=url].valid,\n.md-form input[type=url]:focus.valid,\n.md-form input[type=time].valid,\n.md-form input[type=time]:focus.valid,\n.md-form input[type=date].valid,\n.md-form input[type=date]:focus.valid,\n.md-form input[type=datetime-local].valid,\n.md-form input[type=datetime-local]:focus.valid,\n.md-form input[type=tel].valid,\n.md-form input[type=tel]:focus.valid,\n.md-form input[type=number].valid,\n.md-form input[type=number]:focus.valid,\n.md-form input[type=search-md].valid,\n.md-form input[type=search-md]:focus.valid,\n.md-form input[type=search].valid,\n.md-form input[type=search]:focus.valid,\n.md-form textarea.md-textarea.valid,\n.md-form textarea.md-textarea:focus.valid {\n border-bottom: 1px solid #00c851;\n box-shadow: 0 1px 0 0 #00c851;\n}\n.md-form input[type=text].valid + label:after, .md-form input[type=text]:focus.valid + label:after,\n.md-form input[type=password].valid + label:after,\n.md-form input[type=password]:focus.valid + label:after,\n.md-form input[type=email].valid + label:after,\n.md-form input[type=email]:focus.valid + label:after,\n.md-form input[type=url].valid + label:after,\n.md-form input[type=url]:focus.valid + label:after,\n.md-form input[type=time].valid + label:after,\n.md-form input[type=time]:focus.valid + label:after,\n.md-form input[type=date].valid + label:after,\n.md-form input[type=date]:focus.valid + label:after,\n.md-form input[type=datetime-local].valid + label:after,\n.md-form input[type=datetime-local]:focus.valid + label:after,\n.md-form input[type=tel].valid + label:after,\n.md-form input[type=tel]:focus.valid + label:after,\n.md-form input[type=number].valid + label:after,\n.md-form input[type=number]:focus.valid + label:after,\n.md-form input[type=search-md].valid + label:after,\n.md-form input[type=search-md]:focus.valid + label:after,\n.md-form input[type=search].valid + label:after,\n.md-form input[type=search]:focus.valid + label:after,\n.md-form textarea.md-textarea.valid + label:after,\n.md-form textarea.md-textarea:focus.valid + label:after {\n content: attr(data-success);\n color: #00c851;\n opacity: 1;\n}\n.md-form input[type=text].invalid, .md-form input[type=text]:focus.invalid,\n.md-form input[type=password].invalid,\n.md-form input[type=password]:focus.invalid,\n.md-form input[type=email].invalid,\n.md-form input[type=email]:focus.invalid,\n.md-form input[type=url].invalid,\n.md-form input[type=url]:focus.invalid,\n.md-form input[type=time].invalid,\n.md-form input[type=time]:focus.invalid,\n.md-form input[type=date].invalid,\n.md-form input[type=date]:focus.invalid,\n.md-form input[type=datetime-local].invalid,\n.md-form input[type=datetime-local]:focus.invalid,\n.md-form input[type=tel].invalid,\n.md-form input[type=tel]:focus.invalid,\n.md-form input[type=number].invalid,\n.md-form input[type=number]:focus.invalid,\n.md-form input[type=search-md].invalid,\n.md-form input[type=search-md]:focus.invalid,\n.md-form input[type=search].invalid,\n.md-form input[type=search]:focus.invalid,\n.md-form textarea.md-textarea.invalid,\n.md-form textarea.md-textarea:focus.invalid {\n border-bottom: 1px solid #f44336;\n box-shadow: 0 1px 0 0 #f44336;\n}\n.md-form input[type=text].invalid + label:after, .md-form input[type=text]:focus.invalid + label:after,\n.md-form input[type=password].invalid + label:after,\n.md-form input[type=password]:focus.invalid + label:after,\n.md-form input[type=email].invalid + label:after,\n.md-form input[type=email]:focus.invalid + label:after,\n.md-form input[type=url].invalid + label:after,\n.md-form input[type=url]:focus.invalid + label:after,\n.md-form input[type=time].invalid + label:after,\n.md-form input[type=time]:focus.invalid + label:after,\n.md-form input[type=date].invalid + label:after,\n.md-form input[type=date]:focus.invalid + label:after,\n.md-form input[type=datetime-local].invalid + label:after,\n.md-form input[type=datetime-local]:focus.invalid + label:after,\n.md-form input[type=tel].invalid + label:after,\n.md-form input[type=tel]:focus.invalid + label:after,\n.md-form input[type=number].invalid + label:after,\n.md-form input[type=number]:focus.invalid + label:after,\n.md-form input[type=search-md].invalid + label:after,\n.md-form input[type=search-md]:focus.invalid + label:after,\n.md-form input[type=search].invalid + label:after,\n.md-form input[type=search]:focus.invalid + label:after,\n.md-form textarea.md-textarea.invalid + label:after,\n.md-form textarea.md-textarea:focus.invalid + label:after {\n content: attr(data-error);\n color: #f44336;\n opacity: 1;\n}\n.md-form input[type=text].form-control.valid + label:after, .md-form input[type=text].form-control:focus.valid + label:after,\n.md-form input[type=password].form-control.valid + label:after,\n.md-form input[type=password].form-control:focus.valid + label:after,\n.md-form input[type=email].form-control.valid + label:after,\n.md-form input[type=email].form-control:focus.valid + label:after,\n.md-form input[type=url].form-control.valid + label:after,\n.md-form input[type=url].form-control:focus.valid + label:after,\n.md-form input[type=time].form-control.valid + label:after,\n.md-form input[type=time].form-control:focus.valid + label:after,\n.md-form input[type=date].form-control.valid + label:after,\n.md-form input[type=date].form-control:focus.valid + label:after,\n.md-form input[type=datetime-local].form-control.valid + label:after,\n.md-form input[type=datetime-local].form-control:focus.valid + label:after,\n.md-form input[type=tel].form-control.valid + label:after,\n.md-form input[type=tel].form-control:focus.valid + label:after,\n.md-form input[type=number].form-control.valid + label:after,\n.md-form input[type=number].form-control:focus.valid + label:after,\n.md-form input[type=search-md].form-control.valid + label:after,\n.md-form input[type=search-md].form-control:focus.valid + label:after,\n.md-form input[type=search].form-control.valid + label:after,\n.md-form input[type=search].form-control:focus.valid + label:after,\n.md-form textarea.md-textarea.form-control.valid + label:after,\n.md-form textarea.md-textarea.form-control:focus.valid + label:after {\n top: 4.1rem;\n}\n.md-form input[type=text].form-control.invalid + label:after, .md-form input[type=text].form-control:focus.invalid + label:after,\n.md-form input[type=password].form-control.invalid + label:after,\n.md-form input[type=password].form-control:focus.invalid + label:after,\n.md-form input[type=email].form-control.invalid + label:after,\n.md-form input[type=email].form-control:focus.invalid + label:after,\n.md-form input[type=url].form-control.invalid + label:after,\n.md-form input[type=url].form-control:focus.invalid + label:after,\n.md-form input[type=time].form-control.invalid + label:after,\n.md-form input[type=time].form-control:focus.invalid + label:after,\n.md-form input[type=date].form-control.invalid + label:after,\n.md-form input[type=date].form-control:focus.invalid + label:after,\n.md-form input[type=datetime-local].form-control.invalid + label:after,\n.md-form input[type=datetime-local].form-control:focus.invalid + label:after,\n.md-form input[type=tel].form-control.invalid + label:after,\n.md-form input[type=tel].form-control:focus.invalid + label:after,\n.md-form input[type=number].form-control.invalid + label:after,\n.md-form input[type=number].form-control:focus.invalid + label:after,\n.md-form input[type=search-md].form-control.invalid + label:after,\n.md-form input[type=search-md].form-control:focus.invalid + label:after,\n.md-form input[type=search].form-control.invalid + label:after,\n.md-form input[type=search].form-control:focus.invalid + label:after,\n.md-form textarea.md-textarea.form-control.invalid + label:after,\n.md-form textarea.md-textarea.form-control:focus.invalid + label:after {\n top: 4rem;\n}\n.md-form input[type=text].form-control-lg.valid + label:after, .md-form input[type=text].form-control-lg:focus.valid + label:after,\n.md-form input[type=password].form-control-lg.valid + label:after,\n.md-form input[type=password].form-control-lg:focus.valid + label:after,\n.md-form input[type=email].form-control-lg.valid + label:after,\n.md-form input[type=email].form-control-lg:focus.valid + label:after,\n.md-form input[type=url].form-control-lg.valid + label:after,\n.md-form input[type=url].form-control-lg:focus.valid + label:after,\n.md-form input[type=time].form-control-lg.valid + label:after,\n.md-form input[type=time].form-control-lg:focus.valid + label:after,\n.md-form input[type=date].form-control-lg.valid + label:after,\n.md-form input[type=date].form-control-lg:focus.valid + label:after,\n.md-form input[type=datetime-local].form-control-lg.valid + label:after,\n.md-form input[type=datetime-local].form-control-lg:focus.valid + label:after,\n.md-form input[type=tel].form-control-lg.valid + label:after,\n.md-form input[type=tel].form-control-lg:focus.valid + label:after,\n.md-form input[type=number].form-control-lg.valid + label:after,\n.md-form input[type=number].form-control-lg:focus.valid + label:after,\n.md-form input[type=search-md].form-control-lg.valid + label:after,\n.md-form input[type=search-md].form-control-lg:focus.valid + label:after,\n.md-form input[type=search].form-control-lg.valid + label:after,\n.md-form input[type=search].form-control-lg:focus.valid + label:after,\n.md-form textarea.md-textarea.form-control-lg.valid + label:after,\n.md-form textarea.md-textarea.form-control-lg:focus.valid + label:after {\n top: 4.6rem;\n}\n.md-form input[type=text].form-control-lg.invalid + label:after, .md-form input[type=text].form-control-lg:focus.invalid + label:after,\n.md-form input[type=password].form-control-lg.invalid + label:after,\n.md-form input[type=password].form-control-lg:focus.invalid + label:after,\n.md-form input[type=email].form-control-lg.invalid + label:after,\n.md-form input[type=email].form-control-lg:focus.invalid + label:after,\n.md-form input[type=url].form-control-lg.invalid + label:after,\n.md-form input[type=url].form-control-lg:focus.invalid + label:after,\n.md-form input[type=time].form-control-lg.invalid + label:after,\n.md-form input[type=time].form-control-lg:focus.invalid + label:after,\n.md-form input[type=date].form-control-lg.invalid + label:after,\n.md-form input[type=date].form-control-lg:focus.invalid + label:after,\n.md-form input[type=datetime-local].form-control-lg.invalid + label:after,\n.md-form input[type=datetime-local].form-control-lg:focus.invalid + label:after,\n.md-form input[type=tel].form-control-lg.invalid + label:after,\n.md-form input[type=tel].form-control-lg:focus.invalid + label:after,\n.md-form input[type=number].form-control-lg.invalid + label:after,\n.md-form input[type=number].form-control-lg:focus.invalid + label:after,\n.md-form input[type=search-md].form-control-lg.invalid + label:after,\n.md-form input[type=search-md].form-control-lg:focus.invalid + label:after,\n.md-form input[type=search].form-control-lg.invalid + label:after,\n.md-form input[type=search].form-control-lg:focus.invalid + label:after,\n.md-form textarea.md-textarea.form-control-lg.invalid + label:after,\n.md-form textarea.md-textarea.form-control-lg:focus.invalid + label:after {\n top: 4.6rem;\n}\n.md-form input[type=text].form-control-sm.valid + label:after, .md-form input[type=text].form-control-sm:focus.valid + label:after,\n.md-form input[type=password].form-control-sm.valid + label:after,\n.md-form input[type=password].form-control-sm:focus.valid + label:after,\n.md-form input[type=email].form-control-sm.valid + label:after,\n.md-form input[type=email].form-control-sm:focus.valid + label:after,\n.md-form input[type=url].form-control-sm.valid + label:after,\n.md-form input[type=url].form-control-sm:focus.valid + label:after,\n.md-form input[type=time].form-control-sm.valid + label:after,\n.md-form input[type=time].form-control-sm:focus.valid + label:after,\n.md-form input[type=date].form-control-sm.valid + label:after,\n.md-form input[type=date].form-control-sm:focus.valid + label:after,\n.md-form input[type=datetime-local].form-control-sm.valid + label:after,\n.md-form input[type=datetime-local].form-control-sm:focus.valid + label:after,\n.md-form input[type=tel].form-control-sm.valid + label:after,\n.md-form input[type=tel].form-control-sm:focus.valid + label:after,\n.md-form input[type=number].form-control-sm.valid + label:after,\n.md-form input[type=number].form-control-sm:focus.valid + label:after,\n.md-form input[type=search-md].form-control-sm.valid + label:after,\n.md-form input[type=search-md].form-control-sm:focus.valid + label:after,\n.md-form input[type=search].form-control-sm.valid + label:after,\n.md-form input[type=search].form-control-sm:focus.valid + label:after,\n.md-form textarea.md-textarea.form-control-sm.valid + label:after,\n.md-form textarea.md-textarea.form-control-sm:focus.valid + label:after {\n top: 3.7rem;\n}\n.md-form input[type=text].form-control-sm.invalid + label:after, .md-form input[type=text].form-control-sm:focus.invalid + label:after,\n.md-form input[type=password].form-control-sm.invalid + label:after,\n.md-form input[type=password].form-control-sm:focus.invalid + label:after,\n.md-form input[type=email].form-control-sm.invalid + label:after,\n.md-form input[type=email].form-control-sm:focus.invalid + label:after,\n.md-form input[type=url].form-control-sm.invalid + label:after,\n.md-form input[type=url].form-control-sm:focus.invalid + label:after,\n.md-form input[type=time].form-control-sm.invalid + label:after,\n.md-form input[type=time].form-control-sm:focus.invalid + label:after,\n.md-form input[type=date].form-control-sm.invalid + label:after,\n.md-form input[type=date].form-control-sm:focus.invalid + label:after,\n.md-form input[type=datetime-local].form-control-sm.invalid + label:after,\n.md-form input[type=datetime-local].form-control-sm:focus.invalid + label:after,\n.md-form input[type=tel].form-control-sm.invalid + label:after,\n.md-form input[type=tel].form-control-sm:focus.invalid + label:after,\n.md-form input[type=number].form-control-sm.invalid + label:after,\n.md-form input[type=number].form-control-sm:focus.invalid + label:after,\n.md-form input[type=search-md].form-control-sm.invalid + label:after,\n.md-form input[type=search-md].form-control-sm:focus.invalid + label:after,\n.md-form input[type=search].form-control-sm.invalid + label:after,\n.md-form input[type=search].form-control-sm:focus.invalid + label:after,\n.md-form textarea.md-textarea.form-control-sm.invalid + label:after,\n.md-form textarea.md-textarea.form-control-sm:focus.invalid + label:after {\n top: 3.6rem;\n}\n.md-form > input[type=date]:not(.browser-default) + label {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n width: 125%;\n}\n.md-form > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label,\n.md-form > input[type=time]:not(.browser-default) + label {\n transform: translateY(-14px);\n transform-origin: 0 0;\n font-size: 0.8rem;\n width: 100%;\n}\n.md-form .was-validated input[type=text]:valid + label {\n color: #00c851 !important;\n}\n.md-form .was-validated input[type=text]:invalid + label {\n color: #f44336 !important;\n}\n.md-form .was-validated .form-control:valid:focus {\n box-shadow: 0 1px 0 0 #00c851 !important;\n}\n.md-form .was-validated .form-control:valid {\n border-color: #00c851 !important;\n}\n.md-form .was-validated .form-control:invalid:focus {\n box-shadow: 0 1px 0 0 #f44336 !important;\n}\n.md-form .was-validated .form-control:invalid {\n border-color: #f44336 !important;\n}\n.md-form .form-control {\n margin: 0 0 0.5rem 0;\n border-radius: 0;\n padding: 0.6rem 0 0.4rem 0;\n background-color: transparent;\n height: auto;\n}\n.md-form .form-control:focus {\n box-shadow: none;\n}\n.md-form .form-control:disabled, .md-form .form-control[readonly] {\n border-bottom: 1px solid #bdbdbd;\n background-color: transparent;\n}\n.md-form .form-control.is-valid {\n border-color: #00c851;\n}\n.md-form .form-control.is-valid:focus {\n border-color: #00c851 !important;\n box-shadow: 0 1px 0 0 #00c851 !important;\n}\n.md-form .form-control.is-invalid {\n border-color: #f44336;\n}\n.md-form .form-control.is-invalid:focus {\n box-shadow: 0 1px 0 0 #f44336 !important;\n border-color: #f44336 !important;\n}\n.md-form .form-control.is-valid, .md-form .form-control.is-invalid {\n background-position: center right !important;\n}\n.md-form .validate {\n margin-bottom: 2.5rem;\n}\n.md-form label {\n font-size: 1rem;\n}\n.md-form label.active {\n font-size: 1rem;\n}\n.md-form .prefix {\n top: 0.25rem;\n font-size: 1.75rem;\n}\n.md-form .prefix ~ input,\n.md-form .prefix ~ textarea {\n margin-left: 2.5rem;\n width: calc(100% - 2.5rem);\n}\n.md-form .prefix ~ label {\n max-width: calc(99% - 2.5rem);\n margin-left: 2.5rem;\n}\n.md-form .prefix ~ label.active {\n max-width: calc(121% - 2.5rem);\n}\n.md-form .prefix ~ .form-text {\n margin-left: 2.6rem;\n}\n.md-form label {\n position: absolute;\n top: 0;\n left: 0;\n font-size: 1rem;\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n transform-origin: 0% 100%;\n transform: translateY(12px);\n cursor: text;\n color: #757575;\n}\n.md-form label.active {\n transform: translateY(-14px) scale(0.8);\n}\n.md-form label:not(.form-check-label) {\n transition: transform 0.2s ease-out, color 0.2s ease-out, max-width 0.2s ease-out;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n}\n.md-form label:not(.form-check-label).active {\n max-width: 123%;\n}\n.md-form .switch label {\n text-overflow: unset;\n overflow: unset;\n}\n.md-form .prefix {\n position: absolute;\n transition: color 0s;\n}\n.md-form .prefix.active {\n color: #4285f4;\n}\n.md-form .prefix.active.success-message {\n color: #00c851;\n}\n.md-form .prefix.active.error-message {\n color: #f44336;\n}\n.md-form.form-lg .validate {\n margin-bottom: 2.8rem;\n}\n.md-form.form-lg label {\n font-size: 1.25rem;\n}\n.md-form.form-lg label.active {\n font-size: 1.15rem;\n}\n.md-form.form-lg .prefix {\n top: 0.4rem;\n font-size: 2rem;\n}\n.md-form.form-lg .prefix ~ input,\n.md-form.form-lg .prefix ~ textarea {\n margin-left: 3rem;\n width: calc(100% - 3rem);\n}\n.md-form.form-lg .prefix ~ label {\n max-width: calc(99% - 3rem);\n margin-left: 3rem;\n}\n.md-form.form-lg .prefix ~ label.active {\n max-width: calc(121% - 3rem);\n}\n.md-form.form-lg .prefix ~ .form-text {\n margin-left: 3.1rem;\n}\n.md-form.form-lg mdb-error,\n.md-form.form-lg mdb-success {\n left: 3rem !important;\n}\n.md-form.form-sm .validate {\n margin-bottom: 2.3rem;\n}\n.md-form.form-sm label {\n font-size: 0.875rem;\n}\n.md-form.form-sm label.active {\n font-size: 0.95rem;\n}\n.md-form.form-sm .prefix {\n top: 0.35rem;\n font-size: 1.5rem;\n}\n.md-form.form-sm .prefix ~ input,\n.md-form.form-sm .prefix ~ textarea {\n margin-left: 2rem;\n width: calc(100% - 2rem);\n}\n.md-form.form-sm .prefix ~ label {\n max-width: calc(99% - 2rem);\n margin-left: 2rem;\n}\n.md-form.form-sm .prefix ~ label.active {\n max-width: calc(121% - 2rem);\n}\n.md-form.form-sm .prefix ~ .form-text {\n margin-left: 2rem;\n}\n.md-form.form-sm mdb-error,\n.md-form.form-sm mdb-success {\n left: 2rem !important;\n}\n.md-form textarea {\n /* ~ label {\n &.active {\n color: $input-md-focus-color;\n }\n } */\n}\n.md-form textarea.md-textarea {\n overflow-y: hidden;\n padding: 1.5rem 0;\n}\n.md-form textarea.md-textarea-auto {\n padding: 0;\n padding-top: 1.5rem;\n}\n.md-form.md-outline {\n position: relative;\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n.md-form.md-outline input[type=text],\n.md-form.md-outline input[type=password],\n.md-form.md-outline input[type=email],\n.md-form.md-outline input[type=url],\n.md-form.md-outline input[type=time],\n.md-form.md-outline input[type=date],\n.md-form.md-outline input[type=datetime-local],\n.md-form.md-outline input[type=tel],\n.md-form.md-outline input[type=number],\n.md-form.md-outline input[type=search-md],\n.md-form.md-outline input[type=search],\n.md-form.md-outline textarea.md-textarea {\n transition: all 0.3s;\n outline: none;\n box-shadow: none;\n border: 1px solid #dadce0;\n border-radius: 4px;\n background-color: transparent;\n box-sizing: border-box;\n}\n.md-form.md-outline input[type=text]:focus:not([readonly]),\n.md-form.md-outline input[type=password]:focus:not([readonly]),\n.md-form.md-outline input[type=email]:focus:not([readonly]),\n.md-form.md-outline input[type=url]:focus:not([readonly]),\n.md-form.md-outline input[type=time]:focus:not([readonly]),\n.md-form.md-outline input[type=date]:focus:not([readonly]),\n.md-form.md-outline input[type=datetime-local]:focus:not([readonly]),\n.md-form.md-outline input[type=tel]:focus:not([readonly]),\n.md-form.md-outline input[type=number]:focus:not([readonly]),\n.md-form.md-outline input[type=search-md]:focus:not([readonly]),\n.md-form.md-outline input[type=search]:focus:not([readonly]),\n.md-form.md-outline textarea.md-textarea:focus:not([readonly]) {\n border-color: #4285f4;\n box-shadow: inset 0px 0px 0px 1px #4285f4;\n}\n.md-form.md-outline input[type=text]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=password]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=email]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=url]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=time]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=date]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=datetime-local]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=tel]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=number]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=search-md]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=search]:focus:not([readonly]) + label,\n.md-form.md-outline textarea.md-textarea:focus:not([readonly]) + label {\n color: #4285f4;\n}\n.md-form.md-outline input[type=text].valid, .md-form.md-outline input[type=text]:focus.valid,\n.md-form.md-outline input[type=password].valid,\n.md-form.md-outline input[type=password]:focus.valid,\n.md-form.md-outline input[type=email].valid,\n.md-form.md-outline input[type=email]:focus.valid,\n.md-form.md-outline input[type=url].valid,\n.md-form.md-outline input[type=url]:focus.valid,\n.md-form.md-outline input[type=time].valid,\n.md-form.md-outline input[type=time]:focus.valid,\n.md-form.md-outline input[type=date].valid,\n.md-form.md-outline input[type=date]:focus.valid,\n.md-form.md-outline input[type=datetime-local].valid,\n.md-form.md-outline input[type=datetime-local]:focus.valid,\n.md-form.md-outline input[type=tel].valid,\n.md-form.md-outline input[type=tel]:focus.valid,\n.md-form.md-outline input[type=number].valid,\n.md-form.md-outline input[type=number]:focus.valid,\n.md-form.md-outline input[type=search-md].valid,\n.md-form.md-outline input[type=search-md]:focus.valid,\n.md-form.md-outline input[type=search].valid,\n.md-form.md-outline input[type=search]:focus.valid,\n.md-form.md-outline textarea.md-textarea.valid,\n.md-form.md-outline textarea.md-textarea:focus.valid {\n border-color: #00c851;\n box-shadow: inset 0px 0px 0px 1px #00c851;\n}\n.md-form.md-outline input[type=text]:focus:not([readonly]).valid + label, .md-form.md-outline input[type=text].valid + label:after, .md-form.md-outline input[type=text]:focus.valid + label:after,\n.md-form.md-outline input[type=password]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=password].valid + label:after,\n.md-form.md-outline input[type=password]:focus.valid + label:after,\n.md-form.md-outline input[type=email]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=email].valid + label:after,\n.md-form.md-outline input[type=email]:focus.valid + label:after,\n.md-form.md-outline input[type=url]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=url].valid + label:after,\n.md-form.md-outline input[type=url]:focus.valid + label:after,\n.md-form.md-outline input[type=time]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=time].valid + label:after,\n.md-form.md-outline input[type=time]:focus.valid + label:after,\n.md-form.md-outline input[type=date]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=date].valid + label:after,\n.md-form.md-outline input[type=date]:focus.valid + label:after,\n.md-form.md-outline input[type=datetime-local]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=datetime-local].valid + label:after,\n.md-form.md-outline input[type=datetime-local]:focus.valid + label:after,\n.md-form.md-outline input[type=tel]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=tel].valid + label:after,\n.md-form.md-outline input[type=tel]:focus.valid + label:after,\n.md-form.md-outline input[type=number]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=number].valid + label:after,\n.md-form.md-outline input[type=number]:focus.valid + label:after,\n.md-form.md-outline input[type=search-md]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=search-md].valid + label:after,\n.md-form.md-outline input[type=search-md]:focus.valid + label:after,\n.md-form.md-outline input[type=search]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=search].valid + label:after,\n.md-form.md-outline input[type=search]:focus.valid + label:after,\n.md-form.md-outline textarea.md-textarea:focus:not([readonly]).valid + label,\n.md-form.md-outline textarea.md-textarea.valid + label:after,\n.md-form.md-outline textarea.md-textarea:focus.valid + label:after {\n content: attr(data-success);\n color: #00c851;\n opacity: 1;\n}\n.md-form.md-outline input[type=text].invalid, .md-form.md-outline input[type=text]:focus.invalid,\n.md-form.md-outline input[type=password].invalid,\n.md-form.md-outline input[type=password]:focus.invalid,\n.md-form.md-outline input[type=email].invalid,\n.md-form.md-outline input[type=email]:focus.invalid,\n.md-form.md-outline input[type=url].invalid,\n.md-form.md-outline input[type=url]:focus.invalid,\n.md-form.md-outline input[type=time].invalid,\n.md-form.md-outline input[type=time]:focus.invalid,\n.md-form.md-outline input[type=date].invalid,\n.md-form.md-outline input[type=date]:focus.invalid,\n.md-form.md-outline input[type=datetime-local].invalid,\n.md-form.md-outline input[type=datetime-local]:focus.invalid,\n.md-form.md-outline input[type=tel].invalid,\n.md-form.md-outline input[type=tel]:focus.invalid,\n.md-form.md-outline input[type=number].invalid,\n.md-form.md-outline input[type=number]:focus.invalid,\n.md-form.md-outline input[type=search-md].invalid,\n.md-form.md-outline input[type=search-md]:focus.invalid,\n.md-form.md-outline input[type=search].invalid,\n.md-form.md-outline input[type=search]:focus.invalid,\n.md-form.md-outline textarea.md-textarea.invalid,\n.md-form.md-outline textarea.md-textarea:focus.invalid {\n border-color: #f44336;\n box-shadow: inset 0px 0px 0px 1px #f44336;\n}\n.md-form.md-outline input[type=text]:focus:not([readonly]).invalid + label, .md-form.md-outline input[type=text].invalid + label:after, .md-form.md-outline input[type=text]:focus.invalid + label:after,\n.md-form.md-outline input[type=password]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=password].invalid + label:after,\n.md-form.md-outline input[type=password]:focus.invalid + label:after,\n.md-form.md-outline input[type=email]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=email].invalid + label:after,\n.md-form.md-outline input[type=email]:focus.invalid + label:after,\n.md-form.md-outline input[type=url]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=url].invalid + label:after,\n.md-form.md-outline input[type=url]:focus.invalid + label:after,\n.md-form.md-outline input[type=time]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=time].invalid + label:after,\n.md-form.md-outline input[type=time]:focus.invalid + label:after,\n.md-form.md-outline input[type=date]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=date].invalid + label:after,\n.md-form.md-outline input[type=date]:focus.invalid + label:after,\n.md-form.md-outline input[type=datetime-local]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=datetime-local].invalid + label:after,\n.md-form.md-outline input[type=datetime-local]:focus.invalid + label:after,\n.md-form.md-outline input[type=tel]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=tel].invalid + label:after,\n.md-form.md-outline input[type=tel]:focus.invalid + label:after,\n.md-form.md-outline input[type=number]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=number].invalid + label:after,\n.md-form.md-outline input[type=number]:focus.invalid + label:after,\n.md-form.md-outline input[type=search-md]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=search-md].invalid + label:after,\n.md-form.md-outline input[type=search-md]:focus.invalid + label:after,\n.md-form.md-outline input[type=search]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=search].invalid + label:after,\n.md-form.md-outline input[type=search]:focus.invalid + label:after,\n.md-form.md-outline textarea.md-textarea:focus:not([readonly]).invalid + label,\n.md-form.md-outline textarea.md-textarea.invalid + label:after,\n.md-form.md-outline textarea.md-textarea:focus.invalid + label:after {\n content: attr(data-error);\n color: #f44336;\n opacity: 1;\n}\n.md-form.md-outline input[type=text].form-control.valid + label:after, .md-form.md-outline input[type=text].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=password].form-control.valid + label:after,\n.md-form.md-outline input[type=password].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=email].form-control.valid + label:after,\n.md-form.md-outline input[type=email].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=url].form-control.valid + label:after,\n.md-form.md-outline input[type=url].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=time].form-control.valid + label:after,\n.md-form.md-outline input[type=time].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=date].form-control.valid + label:after,\n.md-form.md-outline input[type=date].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=datetime-local].form-control.valid + label:after,\n.md-form.md-outline input[type=datetime-local].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=tel].form-control.valid + label:after,\n.md-form.md-outline input[type=tel].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=number].form-control.valid + label:after,\n.md-form.md-outline input[type=number].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=search-md].form-control.valid + label:after,\n.md-form.md-outline input[type=search-md].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=search].form-control.valid + label:after,\n.md-form.md-outline input[type=search].form-control:focus.valid + label:after,\n.md-form.md-outline textarea.md-textarea.form-control.valid + label:after,\n.md-form.md-outline textarea.md-textarea.form-control:focus.valid + label:after {\n top: 2.75rem;\n left: 0;\n position: absolute;\n}\n.md-form.md-outline input[type=text].form-control.invalid + label:after, .md-form.md-outline input[type=text].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=password].form-control.invalid + label:after,\n.md-form.md-outline input[type=password].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=email].form-control.invalid + label:after,\n.md-form.md-outline input[type=email].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=url].form-control.invalid + label:after,\n.md-form.md-outline input[type=url].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=time].form-control.invalid + label:after,\n.md-form.md-outline input[type=time].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=date].form-control.invalid + label:after,\n.md-form.md-outline input[type=date].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=datetime-local].form-control.invalid + label:after,\n.md-form.md-outline input[type=datetime-local].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=tel].form-control.invalid + label:after,\n.md-form.md-outline input[type=tel].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=number].form-control.invalid + label:after,\n.md-form.md-outline input[type=number].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=search-md].form-control.invalid + label:after,\n.md-form.md-outline input[type=search-md].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=search].form-control.invalid + label:after,\n.md-form.md-outline input[type=search].form-control:focus.invalid + label:after,\n.md-form.md-outline textarea.md-textarea.form-control.invalid + label:after,\n.md-form.md-outline textarea.md-textarea.form-control:focus.invalid + label:after {\n top: 2.75rem;\n left: 0;\n position: absolute;\n}\n.md-form.md-outline > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label,\n.md-form.md-outline > input[type=time]:not(.browser-default) + label {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n background: #fff;\n font-weight: 500;\n padding-right: 5px;\n padding-left: 5px;\n font-size: 11px;\n left: 8px;\n}\n.md-form.md-outline > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label.active,\n.md-form.md-outline > input[type=time]:not(.browser-default) + label.active {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n}\n@-webkit-keyframes autofill {\n to {\n color: #495057;\n background: transparent;\n }\n}\n@keyframes autofill {\n to {\n color: #495057;\n background: transparent;\n }\n}\n.md-form.md-outline input:-webkit-autofill {\n -webkit-animation-name: autofill;\n animation-name: autofill;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n}\n.md-form.md-outline .form-control {\n padding: 0.375rem 0.75rem;\n}\n.md-form.md-outline label {\n font-size: 1rem !important;\n position: absolute;\n top: 0;\n left: 0;\n padding-left: 10px;\n transition: transform 0.2s ease-out, color 0.2s ease-out, max-width 0.2 ease-out;\n transform-origin: 0% 100%;\n transform: translateY(9px);\n cursor: text;\n color: #757575;\n}\n.md-form.md-outline label.active {\n transform: translateY(-13px) scale(0.8);\n background: #fff;\n font-weight: 500;\n padding-right: 5px;\n padding-left: 5px;\n left: 8px;\n}\n.md-form.md-outline.form-lg .form-control.form-control-lg {\n padding: 0.5rem 0.725rem;\n}\n.md-form.md-outline.form-lg label {\n font-size: 1.25rem;\n transform: translateY(10px);\n}\n.md-form.md-outline.form-lg label.active {\n font-size: 1.1rem;\n transform: translateY(-14px) scale(0.8);\n}\n.md-form.md-outline.form-lg .prefix {\n top: 0.65rem;\n font-size: 25px;\n}\n.md-form.md-outline.form-lg .prefix ~ input,\n.md-form.md-outline.form-lg .prefix ~ textarea {\n margin-left: 2.2rem;\n width: calc(100% - 2.2rem);\n}\n.md-form.md-outline.form-lg .prefix ~ label {\n margin-left: 2.2rem;\n}\n.md-form.md-outline.form-lg .prefix ~ .form-text {\n margin-left: 2.3rem;\n}\n.md-form.md-outline.form-sm .form-control.form-control-sm {\n padding: 0.25rem 0.625rem;\n}\n.md-form.md-outline.form-sm label {\n font-size: 0.8rem;\n transform: translateY(8px);\n}\n.md-form.md-outline.form-sm label.active {\n font-size: 0.85rem;\n transform: translateY(-12px) scale(0.8);\n}\n.md-form.md-outline.form-sm .prefix {\n top: 0.5rem;\n font-size: 15px;\n}\n.md-form.md-outline.form-sm .prefix ~ input,\n.md-form.md-outline.form-sm .prefix ~ textarea {\n margin-left: 1.6rem;\n width: calc(100% - 1.6rem);\n}\n.md-form.md-outline.form-sm .prefix ~ label {\n margin-left: 1.6rem;\n}\n.md-form.md-outline.form-sm .prefix ~ .form-text {\n margin-left: 1.7rem;\n}\n.md-form.md-outline .prefix {\n position: absolute;\n transition: color 0.2s;\n}\n.md-form.md-outline .prefix:focus {\n color: #4285f4;\n}\n.md-form.md-outline .prefix {\n font-size: 20px;\n}\n.md-form.md-outline .prefix ~ input,\n.md-form.md-outline .prefix ~ textarea {\n margin-left: 2rem;\n width: calc(100% - 2rem);\n}\n.md-form.md-outline .prefix ~ label {\n margin-left: 2rem;\n}\n.md-form.md-outline .prefix ~ .form-text {\n margin-left: 2.1rem;\n}\n.md-form.md-outline .character-counter {\n margin-top: -0.5rem;\n}\n.md-form.md-bg input[type=text],\n.md-form.md-bg input[type=password],\n.md-form.md-bg input[type=email],\n.md-form.md-bg input[type=url],\n.md-form.md-bg input[type=time],\n.md-form.md-bg input[type=date],\n.md-form.md-bg input[type=datetime-local],\n.md-form.md-bg input[type=tel],\n.md-form.md-bg input[type=number],\n.md-form.md-bg input[type=search-md],\n.md-form.md-bg input[type=search],\n.md-form.md-bg textarea.md-textarea {\n box-sizing: border-box;\n padding: 10px 5px;\n border: 0;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n background: #f5f5f5 no-repeat;\n background-image: linear-gradient(to bottom, #4285f4, #4285f4), linear-gradient(to bottom, #ced4da, #ced4da);\n background-size: 0 2px, 100% 1px;\n background-position: 50% 100%, 50% 100%;\n transition: background-size 0.3s cubic-bezier(0.64, 0.09, 0.08, 1);\n}\n.md-form.md-bg input[type=text]:focus:not([readonly]),\n.md-form.md-bg input[type=password]:focus:not([readonly]),\n.md-form.md-bg input[type=email]:focus:not([readonly]),\n.md-form.md-bg input[type=url]:focus:not([readonly]),\n.md-form.md-bg input[type=time]:focus:not([readonly]),\n.md-form.md-bg input[type=date]:focus:not([readonly]),\n.md-form.md-bg input[type=datetime-local]:focus:not([readonly]),\n.md-form.md-bg input[type=tel]:focus:not([readonly]),\n.md-form.md-bg input[type=number]:focus:not([readonly]),\n.md-form.md-bg input[type=search-md]:focus:not([readonly]),\n.md-form.md-bg input[type=search]:focus:not([readonly]),\n.md-form.md-bg textarea.md-textarea:focus:not([readonly]) {\n box-shadow: none;\n border-bottom: none;\n}\n.md-form.md-bg input[type=text]:focus,\n.md-form.md-bg input[type=password]:focus,\n.md-form.md-bg input[type=email]:focus,\n.md-form.md-bg input[type=url]:focus,\n.md-form.md-bg input[type=time]:focus,\n.md-form.md-bg input[type=date]:focus,\n.md-form.md-bg input[type=datetime-local]:focus,\n.md-form.md-bg input[type=tel]:focus,\n.md-form.md-bg input[type=number]:focus,\n.md-form.md-bg input[type=search-md]:focus,\n.md-form.md-bg input[type=search]:focus,\n.md-form.md-bg textarea.md-textarea:focus {\n background-color: #dcdcdc;\n background-size: 100% 2px, 100% 1px;\n outline: none;\n}\n.md-form.md-bg > input[type=date]:not(.browser-default) + label {\n transform: translateY(-12px) scale(0.8);\n transform-origin: 0 0;\n}\n.md-form.md-bg > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label,\n.md-form.md-bg > input[type=time]:not(.browser-default) + label {\n transform: translateY(-12px);\n transform-origin: 0 0;\n font-size: 0.8rem;\n}\n.md-form.md-bg .form-control {\n padding: 1.1rem 0.7rem 0.4rem !important;\n}\n.md-form.md-bg label {\n top: 0;\n padding-left: 0.7rem;\n font-size: 1rem;\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n transform-origin: 0% 100%;\n transform: translateY(13px);\n}\n.md-form.md-bg label.active {\n transform: translateY(-3px) scale(0.8);\n font-weight: 500;\n padding-left: 0.75rem;\n}\n.md-form.md-bg.form-lg label {\n transform: translateY(16px);\n}\n.md-form.md-bg.form-lg label.active {\n transform: translateY(-4px) scale(0.8);\n}\n.md-form.md-bg.form-sm label {\n transform: translateY(11px);\n}\n.md-form.md-bg.form-sm label.active {\n transform: translateY(-2px) scale(0.8);\n}\n.md-form .form-control.is-invalid,\n.was-validated .md-form .form-control:invalid {\n padding-right: 0;\n}\n.md-form .form-control.is-valid,\n.was-validated .md-form .form-control:valid {\n padding-right: 0;\n}\n.needs-validation .md-form label {\n left: 0.3rem;\n}\n.custom-file-input:lang(es) ~ .custom-file-label::after {\n content: \"Elegir\";\n}\n.custom-file-input:lang(pl-PL) ~ .custom-file-label::after {\n content: \"Wybierz\";\n}\n.custom-file-input:lang(fr) ~ .custom-file-label::after {\n content: \"Choisir\";\n}\n.custom-file-input:lang(in) ~ .custom-file-label::after {\n content: \"Pilih\";\n}\n.custom-file-input:lang(zh) ~ .custom-file-label::after {\n content: \"選擇\";\n}\n.custom-file-input:lang(de) ~ .custom-file-label::after {\n content: \"Wählen\";\n}\n.custom-file-input:lang(ru) ~ .custom-file-label::after {\n content: \"выбирать\";\n}\n.disabled {\n cursor: not-allowed !important;\n}\n.counter-danger {\n border-bottom: 1px solid #f44336 !important;\n box-shadow: 0 1px 0 0 #f44336 !important;\n}\ninput:focus ~ .chars {\n float: right;\n clear: both;\n display: block;\n}\ntextarea:focus ~ .chars {\n float: right;\n clear: both;\n display: block;\n}\n.md-form label {\n left: 0;\n}\n.md-form label.active {\n color: #757575;\n}\n.counter-success {\n border-bottom: 1px solid #00c851 !important;\n box-shadow: 0 1px 0 0 #00c851 !important;\n}\n.inputVal {\n font-size: 0.8rem;\n position: absolute;\n}\n.modal-body .md-form .prefix ~ .text-success,\n.modal-body .md-form .prefix ~ .text-danger {\n left: 2.5rem;\n}\n.md-form .prefix ~ .text-success,\n.md-form .prefix ~ .text-danger {\n left: 2.5rem;\n}\n.md-form .prefix ~ .error-message,\n.md-form .prefix ~ .success-message {\n left: 2.5rem;\n}\nmdb-tab .md-form .prefix ~ .inputVal {\n left: 2rem;\n}\ninput.counter-danger ~ span.text-danger {\n visibility: visible;\n}\ninput.counter-success ~ span.text-success {\n visibility: visible;\n}\n.md-form textarea.md-textarea {\n overflow-y: auto !important;\n}\n.md-outline input.form-control.validate-success.ng-valid.ng-dirty,\n.md-outline input.form-control.validate-success.ng-valid.ng-touched,\n.md-outline.form-submitted input.form-control.validate-success.ng-valid {\n border-color: #00c851 !important;\n box-shadow: inset 0 0 0 1px #00c851 !important;\n}\n.md-outline input.form-control.validate-success.ng-valid.ng-dirty + label,\n.md-outline input.form-control.validate-success.ng-valid.ng-touched + label,\n.md-outline.form-submitted input.form-control.validate-success.ng-valid + label {\n color: #00c851 !important;\n font-weight: normal !important;\n}\n.md-outline input.form-control.validate-error.ng-invalid.ng-touched,\n.md-outline input.form-control.validate-error.ng-invalid.ng-dirty,\n.md-outline.form-submitted input.form-control.validate-error.ng-invalid {\n border-color: #f44336 !important;\n box-shadow: inset 0 0 0 1px #f44336 !important;\n}\n.md-outline input.form-control.validate-error.ng-invalid.ng-touched + label,\n.md-outline input.form-control.validate-error.ng-invalid.ng-dirty + label,\n.md-outline.form-submitted input.form-control.validate-error.ng-invalid + label {\n color: #f44336 !important;\n font-weight: normal !important;\n}\n.md-outline .md-textarea.validate-success.ng-valid.ng-dirty,\n.md-outline .md-textarea.validate-success.ng-valid.ng-touched {\n border-color: #00c851 !important;\n box-shadow: inset 0 0 0 1px #00c851 !important;\n}\n.md-outline .md-textarea.validate-success.ng-valid.ng-dirty,\n.md-outline .md-textarea.validate-success.ng-valid.ng-touched + label {\n color: inherit !important;\n font-weight: normal !important;\n}\n.md-outline .md-textarea.validate-error.ng-invalid.ng-touched,\n.md-outline .md-textarea.validate-error.ng-invalid.ng-dirty,\n.md-outline .form-submitted .md-textarea.validate-error.ng-invalid {\n border-color: #f44336 !important;\n box-shadow: inset 0 0 0 1px #f44336 !important;\n}\n.md-outline .md-textarea.validate-error.ng-invalid.ng-touched + label,\n.md-outline .md-textarea.validate-error.ng-invalid.ng-dirty + label,\n.md-outline .form-submitted .md-textarea.validate-error.ng-invalid + label {\n color: inherit !important;\n font-weight: normal !important;\n}\ninput.form-control.validate-success.ng-valid.ng-dirty,\ninput.form-control.validate-success.ng-valid.ng-touched,\n.form-submitted input.form-control.validate-success.ng-valid {\n border-bottom: 1px solid #00c851 !important;\n box-shadow: 0 1px 0 0 #00c851 !important;\n}\ninput.form-control.validate-success.ng-valid.ng-dirty + label,\ninput.form-control.validate-success.ng-valid.ng-touched + label,\n.form-submitted input.form-control.validate-success.ng-valid + label {\n color: #00c851 !important;\n}\ninput.form-control.validate-error.ng-invalid.ng-touched,\ninput.form-control.validate-error.ng-invalid.ng-dirty,\n.form-submitted input.form-control.validate-error.ng-invalid {\n border-bottom: 1px solid #f44336 !important;\n box-shadow: 0 1px 0 0 #f44336 !important;\n}\ninput.form-control.validate-error.ng-invalid.ng-touched + label,\ninput.form-control.validate-error.ng-invalid.ng-dirty + label,\n.form-submitted input.form-control.validate-error.ng-invalid + label {\n color: #f44336 !important;\n}\n.md-textarea.validate-success.ng-valid.ng-dirty,\n.md-textarea.validate-success.ng-valid.ng-touched {\n border-bottom: 1px solid #00c851 !important;\n box-shadow: 0 1px 0 0 #00c851 !important;\n}\n.md-textarea.validate-success.ng-valid.ng-dirty + label,\n.md-textarea.validate-success.ng-valid.ng-touched + label {\n color: #00c851 !important;\n}\n.md-textarea.validate-error.ng-invalid.ng-touched,\n.md-textarea.validate-error.ng-invalid.ng-dirty,\n.form-submitted .md-textarea.validate-error.ng-invalid {\n border-bottom: 1px solid #f44336 !important;\n box-shadow: 0 1px 0 0 #f44336 !important;\n}\n.md-textarea.validate-error.ng-invalid.ng-touched + label,\n.md-textarea.validate-error.ng-invalid.ng-dirty + label,\n.form-submitted .md-textarea.validate-error.ng-invalid + label {\n color: #f44336 !important;\n}\n.md-form {\n margin-bottom: 2rem;\n}\n.error-message {\n position: absolute;\n top: 40px;\n left: 0;\n font-size: 0.8rem;\n color: #f44336;\n}\n.success-message {\n position: absolute;\n top: 40px;\n left: 0;\n font-size: 0.8rem;\n color: #00c851;\n}\n.md-form.input-group label {\n top: 0;\n margin-bottom: 0;\n}\n.md-form.input-group .input-group-text {\n background-color: #e0e0e0;\n}\n.md-form.input-group .input-group-text.md-addon {\n border: none;\n background-color: transparent;\n font-weight: 500;\n}\n.md-form.input-group .form-control {\n margin: 0;\n padding: 0.375rem 0.75rem;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-10 {\n opacity: 0.1;\n}\n.opacity-20 {\n opacity: 0.2;\n}\n.opacity-30 {\n opacity: 0.3;\n}\n.opacity-40 {\n opacity: 0.4;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-60 {\n opacity: 0.6;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.opacity-90 {\n opacity: 0.9;\n}\n.opacity-100 {\n opacity: 1;\n}\nfooter.page-footer {\n bottom: 0;\n color: #fff;\n}\nfooter.page-footer .container-fluid {\n width: auto;\n}\nfooter.page-footer .footer-copyright {\n overflow: hidden;\n background-color: rgba(0, 0, 0, 0.2);\n color: rgba(255, 255, 255, 0.6);\n}\nfooter.page-footer a {\n color: #fff;\n}\n.flex-column .nav-item a {\n width: 100%;\n margin: 0;\n color: #495057;\n margin-bottom: -1px;\n}\n.flex-column .active a {\n background-color: #007bff;\n border-color: #007bff;\n color: #fff !important;\n}\n.flex-column .list-group-item {\n border-radius: 0;\n}\n.flex-column.list-group .nav-link {\n padding: 0 !important;\n}\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: unset;\n}\n.fast.spinner-border {\n -webkit-animation: spinner-border 0.4s linear infinite;\n animation: spinner-border 0.4s linear infinite;\n}\n.fast.spinner-grow {\n -webkit-animation: spinner-grow 0.4s linear infinite;\n animation: spinner-grow 0.4s linear infinite;\n}\n.edge-header {\n display: block;\n height: 278px;\n background-color: #ccc;\n}\n.free-bird {\n margin-top: -100px;\n}\n.juicy-peach-gradient {\n background-image: linear-gradient(to right, #ffecd2 0%, #fcb69f 100%);\n}\n.young-passion-gradient {\n background-image: linear-gradient(to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100%);\n}\n.lady-lips-gradient {\n background-image: linear-gradient(to top, #ff9a9e 0%, #fecfef 99%, #fecfef 100%);\n}\n.sunny-morning-gradient {\n background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%);\n}\n.rainy-ashville-gradient {\n background-image: linear-gradient(to top, #fbc2eb 0%, #a6c1ee 100%);\n}\n.frozen-dreams-gradient {\n background-image: linear-gradient(to top, #fdcbf1 0%, #fdcbf1 1%, #e6dee9 100%);\n}\n.warm-flame-gradient {\n background-image: linear-gradient(45deg, #ff9a9e 0%, #fad0c4 99%, #fad0c4 100%);\n}\n.night-fade-gradient {\n background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%);\n}\n.spring-warmth-gradient {\n background-image: linear-gradient(to top, #fad0c4 0%, #ffd1ff 100%);\n}\n.winter-neva-gradient {\n background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);\n}\n.dusty-grass-gradient {\n background-image: linear-gradient(120deg, #d4fc79 0%, #96e6a1 100%);\n}\n.tempting-azure-gradient {\n background-image: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%);\n}\n.heavy-rain-gradient {\n background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);\n}\n.amy-crisp-gradient {\n background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);\n}\n.mean-fruit-gradient {\n background-image: linear-gradient(120deg, #fccb90 0%, #d57eeb 100%);\n}\n.deep-blue-gradient {\n background-image: linear-gradient(120deg, #e0c3fc 0%, #8ec5fc 100%);\n}\n.ripe-malinka-gradient {\n background-image: linear-gradient(120deg, #f093fb 0%, #f5576c 100%);\n}\n.cloudy-knoxville-gradient {\n background-image: linear-gradient(120deg, #fdfbfb 0%, #ebedee 100%);\n}\n.morpheus-den-gradient {\n background-image: linear-gradient(to top, #30cfd0 0%, #330867 100%);\n}\n.rare-wind-gradient {\n background-image: linear-gradient(to top, #a8edea 0%, #fed6e3 100%);\n}\n.near-moon-gradient {\n background-image: linear-gradient(to top, #5ee7df 0%, #b490ca 100%);\n}\n.schedule-list .hr-bold {\n border-top: 2px solid #212529;\n}\n.schedule-list .font-smaller {\n font-size: 0.8rem;\n}\n.note {\n padding: 10px;\n border-left: 6px solid;\n border-radius: 5px;\n}\n.note strong {\n font-weight: 600;\n}\n.note p {\n font-weight: 500;\n}\n.note.note-primary {\n background-color: #dfeefd;\n border-color: #176ac4;\n}\n.note.note-secondary {\n background-color: #e2e3e5;\n border-color: #58595a;\n}\n.note.note-success {\n background-color: #e2f0e5;\n border-color: #49a75f;\n}\n.note.note-danger {\n background-color: #fae7e8;\n border-color: #e45460;\n}\n.note.note-warning {\n background-color: #faf4e0;\n border-color: #c2a442;\n}\n.note.note-info {\n background-color: #e4f2f5;\n border-color: #2492a5;\n}\n.note.note-light {\n background-color: #fefefe;\n border-color: #0f0f0f;\n}\n.pagination .page-item.active .page-link {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n transition: all 0.2s linear;\n border-radius: 0.125rem;\n background-color: #4285f4;\n color: #fff;\n}\n.pagination .page-item.active .page-link:hover {\n background-color: #4285f4;\n}\n.pagination .page-item.disabled .page-link {\n color: #868e96;\n}\n.pagination .page-item .page-link {\n transition: all 0.3s linear;\n outline: 0;\n border: 0;\n background-color: transparent;\n font-size: 0.9rem;\n color: #212529;\n}\n.pagination .page-item .page-link:hover {\n transition: all 0.3s linear;\n border-radius: 0.125rem;\n background-color: #eee;\n}\n.pagination .page-item .page-link:focus {\n background-color: transparent;\n box-shadow: none;\n}\n.pagination.pagination-lg .page-item .page-link {\n font-size: 1rem;\n}\n.pagination.pagination-sm .page-item .page-link {\n font-size: 0.8rem;\n}\n.pagination.pagination-circle .page-item .page-link {\n margin-left: 2px;\n margin-right: 2px;\n border-radius: 50%;\n}\n.pagination.pagination-circle .page-item .page-link:hover {\n border-radius: 50%;\n}\n.pagination.pagination-circle .page-item.active .page-link {\n border-radius: 50%;\n}\n.pagination.pg-blue .page-item.active .page-link {\n background-color: #4285f4;\n}\n.pagination.pg-blue .page-item.active .page-link:hover {\n background-color: #4285f4;\n}\n.pagination.pg-red .page-item.active .page-link {\n background-color: #ff3547;\n}\n.pagination.pg-red .page-item.active .page-link:hover {\n background-color: #ff3547;\n}\n.pagination.pg-teal .page-item.active .page-link {\n background-color: #2bbbad;\n}\n.pagination.pg-teal .page-item.active .page-link:hover {\n background-color: #2bbbad;\n}\n.pagination.pg-dark-grey .page-item.active .page-link {\n background-color: #37474f;\n}\n.pagination.pg-dark-grey .page-item.active .page-link:hover {\n background-color: #37474f;\n}\n.pagination.pg-dark .page-item.active .page-link {\n background-color: #2e2e2e;\n}\n.pagination.pg-dark .page-item.active .page-link:hover {\n background-color: #2e2e2e;\n}\n.pagination.pg-blue-grey .page-item.active .page-link {\n background-color: #3f729b;\n}\n.pagination.pg-blue-grey .page-item.active .page-link:hover {\n background-color: #3f729b;\n}\n.pagination.pg-amber .page-item.active .page-link {\n background-color: #ff6f00;\n}\n.pagination.pg-amber .page-item.active .page-link:hover {\n background-color: #ff6f00;\n}\n.pagination.pg-purple .page-item.active .page-link {\n background-color: #5e35b1;\n}\n.pagination.pg-purple .page-item.active .page-link:hover {\n background-color: #5e35b1;\n}\nul.stepper {\n counter-reset: section;\n overflow-y: auto;\n overflow-x: hidden;\n margin: 1em -1.5rem;\n padding: 0 1.5rem;\n padding: 1.5rem;\n}\nul.stepper li a {\n padding: 1.5rem;\n text-align: center;\n}\nul.stepper li a .circle {\n display: inline-block;\n color: #fff;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.38);\n width: 1.75rem;\n height: 1.75rem;\n text-align: center;\n line-height: 1.7rem;\n margin-right: 0.5rem;\n}\nul.stepper li a .label {\n display: inline-block;\n color: rgba(0, 0, 0, 0.38);\n}\nul.stepper li.active a .label, ul.stepper li.completed a .label {\n font-weight: 600;\n color: rgba(0, 0, 0, 0.87);\n}\n.stepper-horizontal {\n position: relative;\n display: flex;\n justify-content: space-between;\n}\n.stepper-horizontal li {\n transition: 0.5s;\n display: flex;\n align-items: center;\n flex: 1;\n position: relative;\n}\n.stepper-horizontal li a .label {\n margin-top: 0.63rem;\n}\n.stepper-horizontal li:not(:last-child):after {\n content: \"\";\n position: relative;\n flex: 1;\n margin: 0.5rem 0 0 0;\n height: 1px;\n background-color: rgba(0, 0, 0, 0.1);\n}\n.stepper-horizontal li:not(:first-child):before {\n content: \"\";\n position: relative;\n flex: 1;\n margin: 0.5rem 0 0 0;\n height: 1px;\n background-color: rgba(0, 0, 0, 0.1);\n}\n.stepper-horizontal li:hover {\n background-color: rgba(0, 0, 0, 0.06);\n}\n@media (max-width: 47.9375rem) {\n .stepper-horizontal {\n flex-direction: column;\n }\n .stepper-horizontal li {\n align-items: flex-start;\n flex-direction: column;\n }\n .stepper-horizontal li a .label {\n flex-flow: column nowrap;\n order: 2;\n margin-top: 0.2rem;\n }\n .stepper-horizontal li:not(:last-child):after {\n content: \"\";\n position: absolute;\n width: 1px;\n height: calc(100% - 40px);\n left: 2.19rem;\n top: 3.75rem;\n }\n}\n.stepper-horizontal > li:not(:last-of-type) {\n margin-bottom: 0 !important;\n}\n.stepper-vertical {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n.stepper-vertical li {\n display: flex;\n align-items: flex-start;\n flex: 1;\n flex-direction: column;\n position: relative;\n}\n.stepper-vertical li a {\n align-self: flex-start;\n display: flex;\n position: relative;\n}\n.stepper-vertical li a .circle {\n order: 1;\n}\n.stepper-vertical li a .label {\n flex-flow: column nowrap;\n order: 2;\n margin-top: 0.2rem;\n}\n.stepper-vertical li.completed a .label {\n font-weight: 500;\n}\n.stepper-vertical li .step-content {\n display: block;\n margin-top: 0;\n margin-left: 3.13rem;\n padding: 0.94rem;\n}\n.stepper-vertical li .step-content p {\n font-size: 0.88rem;\n}\n.stepper-vertical li:not(:last-child):after {\n content: \"\";\n position: absolute;\n width: 1px;\n height: calc(100% - 40px);\n left: 2.19rem;\n top: 3.44rem;\n background-color: rgba(0, 0, 0, 0.1);\n}\n.bs-switch {\n position: relative;\n display: inline-block;\n width: 60px;\n height: 34px;\n}\n.bs-switch input {\n display: none;\n}\n.bs-switch input:checked + .slider {\n background-color: #2196f3;\n}\n.bs-switch input:checked + .slider:before {\n transform: translateX(26px);\n}\n.bs-switch input:focus + .slider {\n box-shadow: 0 0 1px #2196f3;\n}\n.bs-switch .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #ccc;\n transition: 0.4s;\n}\n.bs-switch .slider:before {\n position: absolute;\n content: \"\";\n height: 26px;\n width: 26px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n transition: 0.4s;\n}\n.bs-switch .slider.round {\n border-radius: 34px;\n}\n.bs-switch .slider.round:before {\n border-radius: 50%;\n}\n.carousel .carousel-control-prev-icon {\n background-image: url('arrow_left.svg') !important;\n}\n.carousel .carousel-control-next-icon {\n background-image: url('arrow_right.svg') !important;\n}\n.custom-select.validate-error.ng-touched.ng-invalid {\n border-color: #ff4444;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.custom-select.validate-error.ng-touched.ng-invalid:focus {\n border-color: #ff4444;\n box-shadow: 0 0 0 0.2rem rgba(255, 68, 68, 0.25);\n}\n.custom-select.validate-success.ng-touched.ng-valid {\n border-color: #00c851;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.custom-select.validate-success.ng-touched.ng-valid:focus {\n border-color: #00c851;\n box-shadow: 0 0 0 0.2rem rgba(0, 200, 81, 0.25);\n}","@charset \"UTF-8\";/*!\n * animate.css - https://animate.style/\n * Version - 4.1.1\n * Licensed under the MIT license - http://opensource.org/licenses/MIT\n *\n * Copyright (c) 2020 Animate.css\n */:root {\n --animate-duration: 1s;\n --animate-delay: 1s;\n --animate-repeat: 1;\n}.animate__animated {\n -webkit-animation-duration: 1s;\n animation-duration: 1s;\n -webkit-animation-duration: var(--animate-duration);\n animation-duration: var(--animate-duration);\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n}.animate__animated.animate__infinite {\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n}.animate__animated.animate__repeat-1 {\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-animation-iteration-count: var(--animate-repeat);\n animation-iteration-count: var(--animate-repeat);\n}.animate__animated.animate__repeat-2 {\n -webkit-animation-iteration-count: calc(1 * 2);\n animation-iteration-count: calc(1 * 2);\n -webkit-animation-iteration-count: calc(var(--animate-repeat) * 2);\n animation-iteration-count: calc(var(--animate-repeat) * 2);\n}.animate__animated.animate__repeat-3 {\n -webkit-animation-iteration-count: calc(1 * 3);\n animation-iteration-count: calc(1 * 3);\n -webkit-animation-iteration-count: calc(var(--animate-repeat) * 3);\n animation-iteration-count: calc(var(--animate-repeat) * 3);\n}.animate__animated.animate__delay-1s {\n -webkit-animation-delay: 1s;\n animation-delay: 1s;\n -webkit-animation-delay: var(--animate-delay);\n animation-delay: var(--animate-delay);\n}.animate__animated.animate__delay-2s {\n -webkit-animation-delay: calc(1s * 2);\n animation-delay: calc(1s * 2);\n -webkit-animation-delay: calc(var(--animate-delay) * 2);\n animation-delay: calc(var(--animate-delay) * 2);\n}.animate__animated.animate__delay-3s {\n -webkit-animation-delay: calc(1s * 3);\n animation-delay: calc(1s * 3);\n -webkit-animation-delay: calc(var(--animate-delay) * 3);\n animation-delay: calc(var(--animate-delay) * 3);\n}.animate__animated.animate__delay-4s {\n -webkit-animation-delay: calc(1s * 4);\n animation-delay: calc(1s * 4);\n -webkit-animation-delay: calc(var(--animate-delay) * 4);\n animation-delay: calc(var(--animate-delay) * 4);\n}.animate__animated.animate__delay-5s {\n -webkit-animation-delay: calc(1s * 5);\n animation-delay: calc(1s * 5);\n -webkit-animation-delay: calc(var(--animate-delay) * 5);\n animation-delay: calc(var(--animate-delay) * 5);\n}.animate__animated.animate__faster {\n -webkit-animation-duration: calc(1s / 2);\n animation-duration: calc(1s / 2);\n -webkit-animation-duration: calc(var(--animate-duration) / 2);\n animation-duration: calc(var(--animate-duration) / 2);\n}.animate__animated.animate__fast {\n -webkit-animation-duration: calc(1s * 0.8);\n animation-duration: calc(1s * 0.8);\n -webkit-animation-duration: calc(var(--animate-duration) * 0.8);\n animation-duration: calc(var(--animate-duration) * 0.8);\n}.animate__animated.animate__slow {\n -webkit-animation-duration: calc(1s * 2);\n animation-duration: calc(1s * 2);\n -webkit-animation-duration: calc(var(--animate-duration) * 2);\n animation-duration: calc(var(--animate-duration) * 2);\n}.animate__animated.animate__slower {\n -webkit-animation-duration: calc(1s * 3);\n animation-duration: calc(1s * 3);\n -webkit-animation-duration: calc(var(--animate-duration) * 3);\n animation-duration: calc(var(--animate-duration) * 3);\n}@media print, (prefers-reduced-motion: reduce) {\n .animate__animated {\n -webkit-animation-duration: 1ms !important;\n animation-duration: 1ms !important;\n -webkit-transition-duration: 1ms !important;\n transition-duration: 1ms !important;\n -webkit-animation-iteration-count: 1 !important;\n animation-iteration-count: 1 !important;\n }\n\n .animate__animated[class*='Out'] {\n opacity: 0;\n }\n}/* Attention seekers */@-webkit-keyframes bounce {\n from,\n 20%,\n 53%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 40%,\n 43% {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1);\n transform: translate3d(0, -30px, 0) scaleY(1.1);\n }\n\n 70% {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05);\n transform: translate3d(0, -15px, 0) scaleY(1.05);\n }\n\n 80% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n -webkit-transform: translate3d(0, 0, 0) scaleY(0.95);\n transform: translate3d(0, 0, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02);\n transform: translate3d(0, -4px, 0) scaleY(1.02);\n }\n}@keyframes bounce {\n from,\n 20%,\n 53%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 40%,\n 43% {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1);\n transform: translate3d(0, -30px, 0) scaleY(1.1);\n }\n\n 70% {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05);\n transform: translate3d(0, -15px, 0) scaleY(1.05);\n }\n\n 80% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n -webkit-transform: translate3d(0, 0, 0) scaleY(0.95);\n transform: translate3d(0, 0, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02);\n transform: translate3d(0, -4px, 0) scaleY(1.02);\n }\n}.animate__bounce {\n -webkit-animation-name: bounce;\n animation-name: bounce;\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n}@-webkit-keyframes flash {\n from,\n 50%,\n to {\n opacity: 1;\n }\n\n 25%,\n 75% {\n opacity: 0;\n }\n}@keyframes flash {\n from,\n 50%,\n to {\n opacity: 1;\n }\n\n 25%,\n 75% {\n opacity: 0;\n }\n}.animate__flash {\n -webkit-animation-name: flash;\n animation-name: flash;\n}/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */@-webkit-keyframes pulse {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.05, 1.05, 1.05);\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}@keyframes pulse {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.05, 1.05, 1.05);\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}.animate__pulse {\n -webkit-animation-name: pulse;\n animation-name: pulse;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n}@-webkit-keyframes rubberBand {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n -webkit-transform: scale3d(1.25, 0.75, 1);\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.75, 1.25, 1);\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.15, 0.85, 1);\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n -webkit-transform: scale3d(0.95, 1.05, 1);\n transform: scale3d(0.95, 1.05, 1);\n }\n\n 75% {\n -webkit-transform: scale3d(1.05, 0.95, 1);\n transform: scale3d(1.05, 0.95, 1);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}@keyframes rubberBand {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n -webkit-transform: scale3d(1.25, 0.75, 1);\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.75, 1.25, 1);\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.15, 0.85, 1);\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n -webkit-transform: scale3d(0.95, 1.05, 1);\n transform: scale3d(0.95, 1.05, 1);\n }\n\n 75% {\n -webkit-transform: scale3d(1.05, 0.95, 1);\n transform: scale3d(1.05, 0.95, 1);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}.animate__rubberBand {\n -webkit-animation-name: rubberBand;\n animation-name: rubberBand;\n}@-webkit-keyframes shakeX {\n from,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n}@keyframes shakeX {\n from,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n}.animate__shakeX {\n -webkit-animation-name: shakeX;\n animation-name: shakeX;\n}@-webkit-keyframes shakeY {\n from,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n}@keyframes shakeY {\n from,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n}.animate__shakeY {\n -webkit-animation-name: shakeY;\n animation-name: shakeY;\n}@-webkit-keyframes headShake {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 6.5% {\n -webkit-transform: translateX(-6px) rotateY(-9deg);\n transform: translateX(-6px) rotateY(-9deg);\n }\n\n 18.5% {\n -webkit-transform: translateX(5px) rotateY(7deg);\n transform: translateX(5px) rotateY(7deg);\n }\n\n 31.5% {\n -webkit-transform: translateX(-3px) rotateY(-5deg);\n transform: translateX(-3px) rotateY(-5deg);\n }\n\n 43.5% {\n -webkit-transform: translateX(2px) rotateY(3deg);\n transform: translateX(2px) rotateY(3deg);\n }\n\n 50% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}@keyframes headShake {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 6.5% {\n -webkit-transform: translateX(-6px) rotateY(-9deg);\n transform: translateX(-6px) rotateY(-9deg);\n }\n\n 18.5% {\n -webkit-transform: translateX(5px) rotateY(7deg);\n transform: translateX(5px) rotateY(7deg);\n }\n\n 31.5% {\n -webkit-transform: translateX(-3px) rotateY(-5deg);\n transform: translateX(-3px) rotateY(-5deg);\n }\n\n 43.5% {\n -webkit-transform: translateX(2px) rotateY(3deg);\n transform: translateX(2px) rotateY(3deg);\n }\n\n 50% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}.animate__headShake {\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n -webkit-animation-name: headShake;\n animation-name: headShake;\n}@-webkit-keyframes swing {\n 20% {\n -webkit-transform: rotate3d(0, 0, 1, 15deg);\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n -webkit-transform: rotate3d(0, 0, 1, -10deg);\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 5deg);\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, -5deg);\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n}@keyframes swing {\n 20% {\n -webkit-transform: rotate3d(0, 0, 1, 15deg);\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n -webkit-transform: rotate3d(0, 0, 1, -10deg);\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 5deg);\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, -5deg);\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n}.animate__swing {\n -webkit-transform-origin: top center;\n transform-origin: top center;\n -webkit-animation-name: swing;\n animation-name: swing;\n}@-webkit-keyframes tada {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 10%,\n 20% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%,\n 60%,\n 80% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}@keyframes tada {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 10%,\n 20% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%,\n 60%,\n 80% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}.animate__tada {\n -webkit-animation-name: tada;\n animation-name: tada;\n}/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */@-webkit-keyframes wobble {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes wobble {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__wobble {\n -webkit-animation-name: wobble;\n animation-name: wobble;\n}@-webkit-keyframes jello {\n from,\n 11.1%,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 22.2% {\n -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);\n transform: skewX(-12.5deg) skewY(-12.5deg);\n }\n\n 33.3% {\n -webkit-transform: skewX(6.25deg) skewY(6.25deg);\n transform: skewX(6.25deg) skewY(6.25deg);\n }\n\n 44.4% {\n -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);\n transform: skewX(-3.125deg) skewY(-3.125deg);\n }\n\n 55.5% {\n -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);\n transform: skewX(1.5625deg) skewY(1.5625deg);\n }\n\n 66.6% {\n -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);\n transform: skewX(-0.78125deg) skewY(-0.78125deg);\n }\n\n 77.7% {\n -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);\n transform: skewX(0.390625deg) skewY(0.390625deg);\n }\n\n 88.8% {\n -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n }\n}@keyframes jello {\n from,\n 11.1%,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 22.2% {\n -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);\n transform: skewX(-12.5deg) skewY(-12.5deg);\n }\n\n 33.3% {\n -webkit-transform: skewX(6.25deg) skewY(6.25deg);\n transform: skewX(6.25deg) skewY(6.25deg);\n }\n\n 44.4% {\n -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);\n transform: skewX(-3.125deg) skewY(-3.125deg);\n }\n\n 55.5% {\n -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);\n transform: skewX(1.5625deg) skewY(1.5625deg);\n }\n\n 66.6% {\n -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);\n transform: skewX(-0.78125deg) skewY(-0.78125deg);\n }\n\n 77.7% {\n -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);\n transform: skewX(0.390625deg) skewY(0.390625deg);\n }\n\n 88.8% {\n -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n }\n}.animate__jello {\n -webkit-animation-name: jello;\n animation-name: jello;\n -webkit-transform-origin: center;\n transform-origin: center;\n}@-webkit-keyframes heartBeat {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 14% {\n -webkit-transform: scale(1.3);\n transform: scale(1.3);\n }\n\n 28% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 42% {\n -webkit-transform: scale(1.3);\n transform: scale(1.3);\n }\n\n 70% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}@keyframes heartBeat {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 14% {\n -webkit-transform: scale(1.3);\n transform: scale(1.3);\n }\n\n 28% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 42% {\n -webkit-transform: scale(1.3);\n transform: scale(1.3);\n }\n\n 70% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}.animate__heartBeat {\n -webkit-animation-name: heartBeat;\n animation-name: heartBeat;\n -webkit-animation-duration: calc(1s * 1.3);\n animation-duration: calc(1s * 1.3);\n -webkit-animation-duration: calc(var(--animate-duration) * 1.3);\n animation-duration: calc(var(--animate-duration) * 1.3);\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n}/* Back entrances */@-webkit-keyframes backInDown {\n 0% {\n -webkit-transform: translateY(-1200px) scale(0.7);\n transform: translateY(-1200px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}@keyframes backInDown {\n 0% {\n -webkit-transform: translateY(-1200px) scale(0.7);\n transform: translateY(-1200px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}.animate__backInDown {\n -webkit-animation-name: backInDown;\n animation-name: backInDown;\n}@-webkit-keyframes backInLeft {\n 0% {\n -webkit-transform: translateX(-2000px) scale(0.7);\n transform: translateX(-2000px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}@keyframes backInLeft {\n 0% {\n -webkit-transform: translateX(-2000px) scale(0.7);\n transform: translateX(-2000px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}.animate__backInLeft {\n -webkit-animation-name: backInLeft;\n animation-name: backInLeft;\n}@-webkit-keyframes backInRight {\n 0% {\n -webkit-transform: translateX(2000px) scale(0.7);\n transform: translateX(2000px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}@keyframes backInRight {\n 0% {\n -webkit-transform: translateX(2000px) scale(0.7);\n transform: translateX(2000px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}.animate__backInRight {\n -webkit-animation-name: backInRight;\n animation-name: backInRight;\n}@-webkit-keyframes backInUp {\n 0% {\n -webkit-transform: translateY(1200px) scale(0.7);\n transform: translateY(1200px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}@keyframes backInUp {\n 0% {\n -webkit-transform: translateY(1200px) scale(0.7);\n transform: translateY(1200px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}.animate__backInUp {\n -webkit-animation-name: backInUp;\n animation-name: backInUp;\n}/* Back exits */@-webkit-keyframes backOutDown {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateY(700px) scale(0.7);\n transform: translateY(700px) scale(0.7);\n opacity: 0.7;\n }\n}@keyframes backOutDown {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateY(700px) scale(0.7);\n transform: translateY(700px) scale(0.7);\n opacity: 0.7;\n }\n}.animate__backOutDown {\n -webkit-animation-name: backOutDown;\n animation-name: backOutDown;\n}@-webkit-keyframes backOutLeft {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateX(-2000px) scale(0.7);\n transform: translateX(-2000px) scale(0.7);\n opacity: 0.7;\n }\n}@keyframes backOutLeft {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateX(-2000px) scale(0.7);\n transform: translateX(-2000px) scale(0.7);\n opacity: 0.7;\n }\n}.animate__backOutLeft {\n -webkit-animation-name: backOutLeft;\n animation-name: backOutLeft;\n}@-webkit-keyframes backOutRight {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateX(2000px) scale(0.7);\n transform: translateX(2000px) scale(0.7);\n opacity: 0.7;\n }\n}@keyframes backOutRight {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateX(2000px) scale(0.7);\n transform: translateX(2000px) scale(0.7);\n opacity: 0.7;\n }\n}.animate__backOutRight {\n -webkit-animation-name: backOutRight;\n animation-name: backOutRight;\n}@-webkit-keyframes backOutUp {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateY(-700px) scale(0.7);\n transform: translateY(-700px) scale(0.7);\n opacity: 0.7;\n }\n}@keyframes backOutUp {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateY(-700px) scale(0.7);\n transform: translateY(-700px) scale(0.7);\n opacity: 0.7;\n }\n}.animate__backOutUp {\n -webkit-animation-name: backOutUp;\n animation-name: backOutUp;\n}/* Bouncing entrances */@-webkit-keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 20% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n -webkit-transform: scale3d(0.97, 0.97, 0.97);\n transform: scale3d(0.97, 0.97, 0.97);\n }\n\n to {\n opacity: 1;\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}@keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 20% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n -webkit-transform: scale3d(0.97, 0.97, 0.97);\n transform: scale3d(0.97, 0.97, 0.97);\n }\n\n to {\n opacity: 1;\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}.animate__bounceIn {\n -webkit-animation-duration: calc(1s * 0.75);\n animation-duration: calc(1s * 0.75);\n -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\n animation-duration: calc(var(--animate-duration) * 0.75);\n -webkit-animation-name: bounceIn;\n animation-name: bounceIn;\n}@-webkit-keyframes bounceInDown {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -3000px, 0) scaleY(3);\n transform: translate3d(0, -3000px, 0) scaleY(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, 25px, 0) scaleY(0.9);\n transform: translate3d(0, 25px, 0) scaleY(0.9);\n }\n\n 75% {\n -webkit-transform: translate3d(0, -10px, 0) scaleY(0.95);\n transform: translate3d(0, -10px, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, 5px, 0) scaleY(0.985);\n transform: translate3d(0, 5px, 0) scaleY(0.985);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes bounceInDown {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -3000px, 0) scaleY(3);\n transform: translate3d(0, -3000px, 0) scaleY(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, 25px, 0) scaleY(0.9);\n transform: translate3d(0, 25px, 0) scaleY(0.9);\n }\n\n 75% {\n -webkit-transform: translate3d(0, -10px, 0) scaleY(0.95);\n transform: translate3d(0, -10px, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, 5px, 0) scaleY(0.985);\n transform: translate3d(0, 5px, 0) scaleY(0.985);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__bounceInDown {\n -webkit-animation-name: bounceInDown;\n animation-name: bounceInDown;\n}@-webkit-keyframes bounceInLeft {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-3000px, 0, 0) scaleX(3);\n transform: translate3d(-3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(25px, 0, 0) scaleX(1);\n transform: translate3d(25px, 0, 0) scaleX(1);\n }\n\n 75% {\n -webkit-transform: translate3d(-10px, 0, 0) scaleX(0.98);\n transform: translate3d(-10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n -webkit-transform: translate3d(5px, 0, 0) scaleX(0.995);\n transform: translate3d(5px, 0, 0) scaleX(0.995);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes bounceInLeft {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-3000px, 0, 0) scaleX(3);\n transform: translate3d(-3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(25px, 0, 0) scaleX(1);\n transform: translate3d(25px, 0, 0) scaleX(1);\n }\n\n 75% {\n -webkit-transform: translate3d(-10px, 0, 0) scaleX(0.98);\n transform: translate3d(-10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n -webkit-transform: translate3d(5px, 0, 0) scaleX(0.995);\n transform: translate3d(5px, 0, 0) scaleX(0.995);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__bounceInLeft {\n -webkit-animation-name: bounceInLeft;\n animation-name: bounceInLeft;\n}@-webkit-keyframes bounceInRight {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n -webkit-transform: translate3d(3000px, 0, 0) scaleX(3);\n transform: translate3d(3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(-25px, 0, 0) scaleX(1);\n transform: translate3d(-25px, 0, 0) scaleX(1);\n }\n\n 75% {\n -webkit-transform: translate3d(10px, 0, 0) scaleX(0.98);\n transform: translate3d(10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n -webkit-transform: translate3d(-5px, 0, 0) scaleX(0.995);\n transform: translate3d(-5px, 0, 0) scaleX(0.995);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes bounceInRight {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n -webkit-transform: translate3d(3000px, 0, 0) scaleX(3);\n transform: translate3d(3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(-25px, 0, 0) scaleX(1);\n transform: translate3d(-25px, 0, 0) scaleX(1);\n }\n\n 75% {\n -webkit-transform: translate3d(10px, 0, 0) scaleX(0.98);\n transform: translate3d(10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n -webkit-transform: translate3d(-5px, 0, 0) scaleX(0.995);\n transform: translate3d(-5px, 0, 0) scaleX(0.995);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__bounceInRight {\n -webkit-animation-name: bounceInRight;\n animation-name: bounceInRight;\n}@-webkit-keyframes bounceInUp {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 3000px, 0) scaleY(5);\n transform: translate3d(0, 3000px, 0) scaleY(5);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n 75% {\n -webkit-transform: translate3d(0, 10px, 0) scaleY(0.95);\n transform: translate3d(0, 10px, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -5px, 0) scaleY(0.985);\n transform: translate3d(0, -5px, 0) scaleY(0.985);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes bounceInUp {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 3000px, 0) scaleY(5);\n transform: translate3d(0, 3000px, 0) scaleY(5);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n 75% {\n -webkit-transform: translate3d(0, 10px, 0) scaleY(0.95);\n transform: translate3d(0, 10px, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -5px, 0) scaleY(0.985);\n transform: translate3d(0, -5px, 0) scaleY(0.985);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__bounceInUp {\n -webkit-animation-name: bounceInUp;\n animation-name: bounceInUp;\n}/* Bouncing exits */@-webkit-keyframes bounceOut {\n 20% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 50%,\n 55% {\n opacity: 1;\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n}@keyframes bounceOut {\n 20% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 50%,\n 55% {\n opacity: 1;\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n}.animate__bounceOut {\n -webkit-animation-duration: calc(1s * 0.75);\n animation-duration: calc(1s * 0.75);\n -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\n animation-duration: calc(var(--animate-duration) * 0.75);\n -webkit-animation-name: bounceOut;\n animation-name: bounceOut;\n}@-webkit-keyframes bounceOutDown {\n 20% {\n -webkit-transform: translate3d(0, 10px, 0) scaleY(0.985);\n transform: translate3d(0, 10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0) scaleY(3);\n transform: translate3d(0, 2000px, 0) scaleY(3);\n }\n}@keyframes bounceOutDown {\n 20% {\n -webkit-transform: translate3d(0, 10px, 0) scaleY(0.985);\n transform: translate3d(0, 10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0) scaleY(3);\n transform: translate3d(0, 2000px, 0) scaleY(3);\n }\n}.animate__bounceOutDown {\n -webkit-animation-name: bounceOutDown;\n animation-name: bounceOutDown;\n}@-webkit-keyframes bounceOutLeft {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(20px, 0, 0) scaleX(0.9);\n transform: translate3d(20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0) scaleX(2);\n transform: translate3d(-2000px, 0, 0) scaleX(2);\n }\n}@keyframes bounceOutLeft {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(20px, 0, 0) scaleX(0.9);\n transform: translate3d(20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0) scaleX(2);\n transform: translate3d(-2000px, 0, 0) scaleX(2);\n }\n}.animate__bounceOutLeft {\n -webkit-animation-name: bounceOutLeft;\n animation-name: bounceOutLeft;\n}@-webkit-keyframes bounceOutRight {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(-20px, 0, 0) scaleX(0.9);\n transform: translate3d(-20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0) scaleX(2);\n transform: translate3d(2000px, 0, 0) scaleX(2);\n }\n}@keyframes bounceOutRight {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(-20px, 0, 0) scaleX(0.9);\n transform: translate3d(-20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0) scaleX(2);\n transform: translate3d(2000px, 0, 0) scaleX(2);\n }\n}.animate__bounceOutRight {\n -webkit-animation-name: bounceOutRight;\n animation-name: bounceOutRight;\n}@-webkit-keyframes bounceOutUp {\n 20% {\n -webkit-transform: translate3d(0, -10px, 0) scaleY(0.985);\n transform: translate3d(0, -10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, 20px, 0) scaleY(0.9);\n transform: translate3d(0, 20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0) scaleY(3);\n transform: translate3d(0, -2000px, 0) scaleY(3);\n }\n}@keyframes bounceOutUp {\n 20% {\n -webkit-transform: translate3d(0, -10px, 0) scaleY(0.985);\n transform: translate3d(0, -10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, 20px, 0) scaleY(0.9);\n transform: translate3d(0, 20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0) scaleY(3);\n transform: translate3d(0, -2000px, 0) scaleY(3);\n }\n}.animate__bounceOutUp {\n -webkit-animation-name: bounceOutUp;\n animation-name: bounceOutUp;\n}/* Fading entrances */@-webkit-keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}.animate__fadeIn {\n -webkit-animation-name: fadeIn;\n animation-name: fadeIn;\n}@-webkit-keyframes fadeInDown {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInDown {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInDown {\n -webkit-animation-name: fadeInDown;\n animation-name: fadeInDown;\n}@-webkit-keyframes fadeInDownBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInDownBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInDownBig {\n -webkit-animation-name: fadeInDownBig;\n animation-name: fadeInDownBig;\n}@-webkit-keyframes fadeInLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInLeft {\n -webkit-animation-name: fadeInLeft;\n animation-name: fadeInLeft;\n}@-webkit-keyframes fadeInLeftBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInLeftBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInLeftBig {\n -webkit-animation-name: fadeInLeftBig;\n animation-name: fadeInLeftBig;\n}@-webkit-keyframes fadeInRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInRight {\n -webkit-animation-name: fadeInRight;\n animation-name: fadeInRight;\n}@-webkit-keyframes fadeInRightBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInRightBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInRightBig {\n -webkit-animation-name: fadeInRightBig;\n animation-name: fadeInRightBig;\n}@-webkit-keyframes fadeInUp {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInUp {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInUp {\n -webkit-animation-name: fadeInUp;\n animation-name: fadeInUp;\n}@-webkit-keyframes fadeInUpBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInUpBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInUpBig {\n -webkit-animation-name: fadeInUpBig;\n animation-name: fadeInUpBig;\n}@-webkit-keyframes fadeInTopLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, -100%, 0);\n transform: translate3d(-100%, -100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInTopLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, -100%, 0);\n transform: translate3d(-100%, -100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInTopLeft {\n -webkit-animation-name: fadeInTopLeft;\n animation-name: fadeInTopLeft;\n}@-webkit-keyframes fadeInTopRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, -100%, 0);\n transform: translate3d(100%, -100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInTopRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, -100%, 0);\n transform: translate3d(100%, -100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInTopRight {\n -webkit-animation-name: fadeInTopRight;\n animation-name: fadeInTopRight;\n}@-webkit-keyframes fadeInBottomLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 100%, 0);\n transform: translate3d(-100%, 100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInBottomLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 100%, 0);\n transform: translate3d(-100%, 100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInBottomLeft {\n -webkit-animation-name: fadeInBottomLeft;\n animation-name: fadeInBottomLeft;\n}@-webkit-keyframes fadeInBottomRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, 100%, 0);\n transform: translate3d(100%, 100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInBottomRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, 100%, 0);\n transform: translate3d(100%, 100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInBottomRight {\n -webkit-animation-name: fadeInBottomRight;\n animation-name: fadeInBottomRight;\n}/* Fading exits */@-webkit-keyframes fadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}@keyframes fadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}.animate__fadeOut {\n -webkit-animation-name: fadeOut;\n animation-name: fadeOut;\n}@-webkit-keyframes fadeOutDown {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}@keyframes fadeOutDown {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}.animate__fadeOutDown {\n -webkit-animation-name: fadeOutDown;\n animation-name: fadeOutDown;\n}@-webkit-keyframes fadeOutDownBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}@keyframes fadeOutDownBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}.animate__fadeOutDownBig {\n -webkit-animation-name: fadeOutDownBig;\n animation-name: fadeOutDownBig;\n}@-webkit-keyframes fadeOutLeft {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}@keyframes fadeOutLeft {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}.animate__fadeOutLeft {\n -webkit-animation-name: fadeOutLeft;\n animation-name: fadeOutLeft;\n}@-webkit-keyframes fadeOutLeftBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}@keyframes fadeOutLeftBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}.animate__fadeOutLeftBig {\n -webkit-animation-name: fadeOutLeftBig;\n animation-name: fadeOutLeftBig;\n}@-webkit-keyframes fadeOutRight {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}@keyframes fadeOutRight {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}.animate__fadeOutRight {\n -webkit-animation-name: fadeOutRight;\n animation-name: fadeOutRight;\n}@-webkit-keyframes fadeOutRightBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}@keyframes fadeOutRightBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}.animate__fadeOutRightBig {\n -webkit-animation-name: fadeOutRightBig;\n animation-name: fadeOutRightBig;\n}@-webkit-keyframes fadeOutUp {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}@keyframes fadeOutUp {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}.animate__fadeOutUp {\n -webkit-animation-name: fadeOutUp;\n animation-name: fadeOutUp;\n}@-webkit-keyframes fadeOutUpBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}@keyframes fadeOutUpBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}.animate__fadeOutUpBig {\n -webkit-animation-name: fadeOutUpBig;\n animation-name: fadeOutUpBig;\n}@-webkit-keyframes fadeOutTopLeft {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, -100%, 0);\n transform: translate3d(-100%, -100%, 0);\n }\n}@keyframes fadeOutTopLeft {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, -100%, 0);\n transform: translate3d(-100%, -100%, 0);\n }\n}.animate__fadeOutTopLeft {\n -webkit-animation-name: fadeOutTopLeft;\n animation-name: fadeOutTopLeft;\n}@-webkit-keyframes fadeOutTopRight {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, -100%, 0);\n transform: translate3d(100%, -100%, 0);\n }\n}@keyframes fadeOutTopRight {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, -100%, 0);\n transform: translate3d(100%, -100%, 0);\n }\n}.animate__fadeOutTopRight {\n -webkit-animation-name: fadeOutTopRight;\n animation-name: fadeOutTopRight;\n}@-webkit-keyframes fadeOutBottomRight {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 100%, 0);\n transform: translate3d(100%, 100%, 0);\n }\n}@keyframes fadeOutBottomRight {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 100%, 0);\n transform: translate3d(100%, 100%, 0);\n }\n}.animate__fadeOutBottomRight {\n -webkit-animation-name: fadeOutBottomRight;\n animation-name: fadeOutBottomRight;\n}@-webkit-keyframes fadeOutBottomLeft {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 100%, 0);\n transform: translate3d(-100%, 100%, 0);\n }\n}@keyframes fadeOutBottomLeft {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 100%, 0);\n transform: translate3d(-100%, 100%, 0);\n }\n}.animate__fadeOutBottomLeft {\n -webkit-animation-name: fadeOutBottomLeft;\n animation-name: fadeOutBottomLeft;\n}/* Flippers */@-webkit-keyframes flip {\n from {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 40% {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 50% {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 80% {\n -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n to {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n}@keyframes flip {\n from {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 40% {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 50% {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 80% {\n -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n to {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n}.animate__animated.animate__flip {\n -webkit-backface-visibility: visible;\n backface-visibility: visible;\n -webkit-animation-name: flip;\n animation-name: flip;\n}@-webkit-keyframes flipInX {\n from {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n to {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}@keyframes flipInX {\n from {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n to {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}.animate__flipInX {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipInX;\n animation-name: flipInX;\n}@-webkit-keyframes flipInY {\n from {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n to {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}@keyframes flipInY {\n from {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n to {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}.animate__flipInY {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipInY;\n animation-name: flipInY;\n}@-webkit-keyframes flipOutX {\n from {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n to {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}@keyframes flipOutX {\n from {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n to {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}.animate__flipOutX {\n -webkit-animation-duration: calc(1s * 0.75);\n animation-duration: calc(1s * 0.75);\n -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\n animation-duration: calc(var(--animate-duration) * 0.75);\n -webkit-animation-name: flipOutX;\n animation-name: flipOutX;\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n}@-webkit-keyframes flipOutY {\n from {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n to {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n}@keyframes flipOutY {\n from {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n to {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n}.animate__flipOutY {\n -webkit-animation-duration: calc(1s * 0.75);\n animation-duration: calc(1s * 0.75);\n -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\n animation-duration: calc(var(--animate-duration) * 0.75);\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipOutY;\n animation-name: flipOutY;\n}/* Lightspeed */@-webkit-keyframes lightSpeedInRight {\n from {\n -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);\n transform: translate3d(100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(20deg);\n transform: skewX(20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(-5deg);\n transform: skewX(-5deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes lightSpeedInRight {\n from {\n -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);\n transform: translate3d(100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(20deg);\n transform: skewX(20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(-5deg);\n transform: skewX(-5deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__lightSpeedInRight {\n -webkit-animation-name: lightSpeedInRight;\n animation-name: lightSpeedInRight;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n}@-webkit-keyframes lightSpeedInLeft {\n from {\n -webkit-transform: translate3d(-100%, 0, 0) skewX(30deg);\n transform: translate3d(-100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(-20deg);\n transform: skewX(-20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(5deg);\n transform: skewX(5deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes lightSpeedInLeft {\n from {\n -webkit-transform: translate3d(-100%, 0, 0) skewX(30deg);\n transform: translate3d(-100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(-20deg);\n transform: skewX(-20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(5deg);\n transform: skewX(5deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__lightSpeedInLeft {\n -webkit-animation-name: lightSpeedInLeft;\n animation-name: lightSpeedInLeft;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n}@-webkit-keyframes lightSpeedOutRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);\n transform: translate3d(100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n}@keyframes lightSpeedOutRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);\n transform: translate3d(100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n}.animate__lightSpeedOutRight {\n -webkit-animation-name: lightSpeedOutRight;\n animation-name: lightSpeedOutRight;\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n}@-webkit-keyframes lightSpeedOutLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(-100%, 0, 0) skewX(-30deg);\n transform: translate3d(-100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n}@keyframes lightSpeedOutLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(-100%, 0, 0) skewX(-30deg);\n transform: translate3d(-100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n}.animate__lightSpeedOutLeft {\n -webkit-animation-name: lightSpeedOutLeft;\n animation-name: lightSpeedOutLeft;\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n}/* Rotating entrances */@-webkit-keyframes rotateIn {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -200deg);\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}@keyframes rotateIn {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -200deg);\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}.animate__rotateIn {\n -webkit-animation-name: rotateIn;\n animation-name: rotateIn;\n -webkit-transform-origin: center;\n transform-origin: center;\n}@-webkit-keyframes rotateInDownLeft {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}@keyframes rotateInDownLeft {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}.animate__rotateInDownLeft {\n -webkit-animation-name: rotateInDownLeft;\n animation-name: rotateInDownLeft;\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n}@-webkit-keyframes rotateInDownRight {\n from {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}@keyframes rotateInDownRight {\n from {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}.animate__rotateInDownRight {\n -webkit-animation-name: rotateInDownRight;\n animation-name: rotateInDownRight;\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n}@-webkit-keyframes rotateInUpLeft {\n from {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}@keyframes rotateInUpLeft {\n from {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}.animate__rotateInUpLeft {\n -webkit-animation-name: rotateInUpLeft;\n animation-name: rotateInUpLeft;\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n}@-webkit-keyframes rotateInUpRight {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -90deg);\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}@keyframes rotateInUpRight {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -90deg);\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}.animate__rotateInUpRight {\n -webkit-animation-name: rotateInUpRight;\n animation-name: rotateInUpRight;\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n}/* Rotating exits */@-webkit-keyframes rotateOut {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 200deg);\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n}@keyframes rotateOut {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 200deg);\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n}.animate__rotateOut {\n -webkit-animation-name: rotateOut;\n animation-name: rotateOut;\n -webkit-transform-origin: center;\n transform-origin: center;\n}@-webkit-keyframes rotateOutDownLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n}@keyframes rotateOutDownLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n}.animate__rotateOutDownLeft {\n -webkit-animation-name: rotateOutDownLeft;\n animation-name: rotateOutDownLeft;\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n}@-webkit-keyframes rotateOutDownRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}@keyframes rotateOutDownRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}.animate__rotateOutDownRight {\n -webkit-animation-name: rotateOutDownRight;\n animation-name: rotateOutDownRight;\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n}@-webkit-keyframes rotateOutUpLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}@keyframes rotateOutUpLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}.animate__rotateOutUpLeft {\n -webkit-animation-name: rotateOutUpLeft;\n animation-name: rotateOutUpLeft;\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n}@-webkit-keyframes rotateOutUpRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 90deg);\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n}@keyframes rotateOutUpRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 90deg);\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n}.animate__rotateOutUpRight {\n -webkit-animation-name: rotateOutUpRight;\n animation-name: rotateOutUpRight;\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n}/* Specials */@-webkit-keyframes hinge {\n 0% {\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 20%,\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 80deg);\n transform: rotate3d(0, 0, 1, 80deg);\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 40%,\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, 60deg);\n transform: rotate3d(0, 0, 1, 60deg);\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(0, 700px, 0);\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n}@keyframes hinge {\n 0% {\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 20%,\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 80deg);\n transform: rotate3d(0, 0, 1, 80deg);\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 40%,\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, 60deg);\n transform: rotate3d(0, 0, 1, 60deg);\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(0, 700px, 0);\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n}.animate__hinge {\n -webkit-animation-duration: calc(1s * 2);\n animation-duration: calc(1s * 2);\n -webkit-animation-duration: calc(var(--animate-duration) * 2);\n animation-duration: calc(var(--animate-duration) * 2);\n -webkit-animation-name: hinge;\n animation-name: hinge;\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}@-webkit-keyframes jackInTheBox {\n from {\n opacity: 0;\n -webkit-transform: scale(0.1) rotate(30deg);\n transform: scale(0.1) rotate(30deg);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n }\n\n 50% {\n -webkit-transform: rotate(-10deg);\n transform: rotate(-10deg);\n }\n\n 70% {\n -webkit-transform: rotate(3deg);\n transform: rotate(3deg);\n }\n\n to {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}@keyframes jackInTheBox {\n from {\n opacity: 0;\n -webkit-transform: scale(0.1) rotate(30deg);\n transform: scale(0.1) rotate(30deg);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n }\n\n 50% {\n -webkit-transform: rotate(-10deg);\n transform: rotate(-10deg);\n }\n\n 70% {\n -webkit-transform: rotate(3deg);\n transform: rotate(3deg);\n }\n\n to {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}.animate__jackInTheBox {\n -webkit-animation-name: jackInTheBox;\n animation-name: jackInTheBox;\n}/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */@-webkit-keyframes rollIn {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes rollIn {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__rollIn {\n -webkit-animation-name: rollIn;\n animation-name: rollIn;\n}/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */@-webkit-keyframes rollOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n}@keyframes rollOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n}.animate__rollOut {\n -webkit-animation-name: rollOut;\n animation-name: rollOut;\n}/* Zooming entrances */@-webkit-keyframes zoomIn {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 50% {\n opacity: 1;\n }\n}@keyframes zoomIn {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 50% {\n opacity: 1;\n }\n}.animate__zoomIn {\n -webkit-animation-name: zoomIn;\n animation-name: zoomIn;\n}@-webkit-keyframes zoomInDown {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomInDown {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomInDown {\n -webkit-animation-name: zoomInDown;\n animation-name: zoomInDown;\n}@-webkit-keyframes zoomInLeft {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomInLeft {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomInLeft {\n -webkit-animation-name: zoomInLeft;\n animation-name: zoomInLeft;\n}@-webkit-keyframes zoomInRight {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomInRight {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomInRight {\n -webkit-animation-name: zoomInRight;\n animation-name: zoomInRight;\n}@-webkit-keyframes zoomInUp {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomInUp {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomInUp {\n -webkit-animation-name: zoomInUp;\n animation-name: zoomInUp;\n}/* Zooming exits */@-webkit-keyframes zoomOut {\n from {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n to {\n opacity: 0;\n }\n}@keyframes zoomOut {\n from {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n to {\n opacity: 0;\n }\n}.animate__zoomOut {\n -webkit-animation-name: zoomOut;\n animation-name: zoomOut;\n}@-webkit-keyframes zoomOutDown {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomOutDown {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomOutDown {\n -webkit-animation-name: zoomOutDown;\n animation-name: zoomOutDown;\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n}@-webkit-keyframes zoomOutLeft {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);\n transform: scale(0.1) translate3d(-2000px, 0, 0);\n }\n}@keyframes zoomOutLeft {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);\n transform: scale(0.1) translate3d(-2000px, 0, 0);\n }\n}.animate__zoomOutLeft {\n -webkit-animation-name: zoomOutLeft;\n animation-name: zoomOutLeft;\n -webkit-transform-origin: left center;\n transform-origin: left center;\n}@-webkit-keyframes zoomOutRight {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);\n transform: scale(0.1) translate3d(2000px, 0, 0);\n }\n}@keyframes zoomOutRight {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);\n transform: scale(0.1) translate3d(2000px, 0, 0);\n }\n}.animate__zoomOutRight {\n -webkit-animation-name: zoomOutRight;\n animation-name: zoomOutRight;\n -webkit-transform-origin: right center;\n transform-origin: right center;\n}@-webkit-keyframes zoomOutUp {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomOutUp {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomOutUp {\n -webkit-animation-name: zoomOutUp;\n animation-name: zoomOutUp;\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n}/* Sliding entrances */@-webkit-keyframes slideInDown {\n from {\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes slideInDown {\n from {\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__slideInDown {\n -webkit-animation-name: slideInDown;\n animation-name: slideInDown;\n}@-webkit-keyframes slideInLeft {\n from {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes slideInLeft {\n from {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__slideInLeft {\n -webkit-animation-name: slideInLeft;\n animation-name: slideInLeft;\n}@-webkit-keyframes slideInRight {\n from {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes slideInRight {\n from {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__slideInRight {\n -webkit-animation-name: slideInRight;\n animation-name: slideInRight;\n}@-webkit-keyframes slideInUp {\n from {\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes slideInUp {\n from {\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__slideInUp {\n -webkit-animation-name: slideInUp;\n animation-name: slideInUp;\n}/* Sliding exits */@-webkit-keyframes slideOutDown {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}@keyframes slideOutDown {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}.animate__slideOutDown {\n -webkit-animation-name: slideOutDown;\n animation-name: slideOutDown;\n}@-webkit-keyframes slideOutLeft {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}@keyframes slideOutLeft {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}.animate__slideOutLeft {\n -webkit-animation-name: slideOutLeft;\n animation-name: slideOutLeft;\n}@-webkit-keyframes slideOutRight {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}@keyframes slideOutRight {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}.animate__slideOutRight {\n -webkit-animation-name: slideOutRight;\n animation-name: slideOutRight;\n}@-webkit-keyframes slideOutUp {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}@keyframes slideOutUp {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}.animate__slideOutUp {\n -webkit-animation-name: slideOutUp;\n animation-name: slideOutUp;\n}\n",".toast-center-center {\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.toast-top-center {\n top: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-bottom-center {\n bottom: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-top-full-width {\n top: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-bottom-full-width {\n bottom: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-top-left {\n top: 12px;\n left: 12px;\n}\n\n.toast-top-right {\n top: 12px;\n right: 12px;\n}\n\n.toast-bottom-right {\n right: 12px;\n bottom: 12px;\n}\n\n.toast-bottom-left {\n bottom: 12px;\n left: 12px;\n}\n\n.toast-container.toast-top-center .ngx-toastr,\n.toast-container.toast-bottom-center .ngx-toastr {\n width: 300px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.toast-container.toast-top-full-width .ngx-toastr,\n.toast-container.toast-bottom-full-width .ngx-toastr {\n width: 96%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.toast-container {\n pointer-events: none;\n position: fixed;\n z-index: 999999;\n}\n\n.toast-container .ngx-toastr {\n border-radius: 0.25rem;\n position: relative;\n overflow: hidden;\n margin: 0 0 6px;\n padding: 0.75rem 1.25rem 0.75rem 50px;\n width: 300px;\n background-position: 15px center;\n background-repeat: no-repeat;\n background-size: 24px;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.03);\n pointer-events: auto;\n}\n\n.toast-container .ngx-toastr .toast-title {\n font-weight: bold;\n}\n\n.toast-container .ngx-toastr .toast-message {\n word-wrap: break-word;\n}\n\n.toast-container .ngx-toastr .toast-message a:hover {\n text-decoration: underline;\n}\n\n.toast-container .ngx-toastr .toast-close-button {\n position: relative;\n right: -0.3em;\n top: -0.3em;\n float: right;\n font-size: 20px;\n font-weight: bold;\n color: inherit;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.5;\n background: transparent;\n border: 0;\n padding: 0;\n}\n\n.toast-container .ngx-toastr .toast-progress {\n position: absolute;\n left: 0;\n bottom: 0;\n height: 4px;\n background-color: #000000;\n opacity: 0.3;\n}\n\n.toast-container .ngx-toastr .toast-close-button:hover,\n.toast-container .ngx-toastr .toast-close-button:focus {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.75;\n}\n\n.toast-container .ngx-toastr:hover {\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);\n opacity: 1;\n cursor: pointer;\n}\n\n.toast-success {\n /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/solid/check.svg */\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(21, 87, 36, 0.999999)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E\");\n color: #155724;\n background-color: #d4edda;\n border: 1px solid #c3e6cb;\n}\n\n.toast-error {\n /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/solid/times-circle.svg */\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(114, 28, 36, 0.999999)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E\");\n color: #721c24;\n background-color: #f8d7da;\n border: 1px solid #f5c6cb;\n}\n\n.toast-info {\n /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/solid/info-circle.svg */\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(12, 84, 96, 0.999999)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E\");\n color: #0c5460;\n background-color: #d1ecf1;\n border: 1px solid #bee5eb;\n}\n\n.toast-warning {\n /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/solid/exclamation-triangle.svg */\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgba(133, 100, 4, 0.999999)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E\");\n color: #856404;\n background-color: #fff3cd;\n border: 1px solid #ffeeba;\n}\n\n@media all and (max-width: 240px) {\n .toast-container .ngx-toastr.div {\n padding: 8px 8px 8px 50px;\n width: 11em;\n }\n\n .toast-container .toast-close-button {\n right: -0.2em;\n top: -0.2em;\n }\n}\n\n@media all and (min-width: 241px) and (max-width: 480px) {\n .toast-container .ngx-toastr.div {\n padding: 8px 8px 8px 50px;\n width: 18em;\n }\n\n .toast-container .toast-close-button {\n right: -0.2em;\n top: -0.2em;\n }\n}\n\n@media all and (min-width: 481px) and (max-width: 768px) {\n .toast-container .ngx-toastr.div {\n padding: 15px 15px 15px 50px;\n width: 25em;\n }\n}\n\n/* You can add global styles to this file, and also import other style files */\n\n/* select starting stylings ------------------------------*/\n\n.select {\n position: relative;\n width: 300px;\n}\n\n.select-text {\n position: relative;\n font-family: inherit;\n font-weight: 300;\n color: #fff;\n background-color: transparent;\n width: 300px;\n padding: 10px 10px 5px 0px;\n font-size: 1rem;\n border-radius: 0;\n border: none;\n border-bottom: 1px solid rgba(255, 255, 255, 0.2);\n}\n\n/* Remove focus */\n\n.select-text:focus {\n outline: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0);\n}\n\n/* Use custom arrow */\n\n.select .select-text {\n -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none;\n}\n\n.select:after {\n position: absolute;\n top: 18px;\n right: 10px;\n /* Styling the down arrow */\n width: 0;\n height: 0;\n padding: 0;\n margin-top: 2px;\n content: \"\";\n background: #fff;\n border-left: 6px solid #263238;\n border-right: 6px solid #263238;\n border-top: 6px solid rgba(0, 0, 0, 0.12);\n pointer-events: none;\n}\n\n/* BOTTOM BARS ================================= */\n\n.select-bar {\n position: relative;\n display: block;\n width: 350px;\n}\n\n.select-bar:before, .select-bar:after {\n content: \"\";\n height: 2px;\n width: 0;\n bottom: 1px;\n position: absolute;\n background: #2F80ED;\n transition: 0.2s ease all;\n}\n\n.select-bar:before {\n left: 50%;\n}\n\n.select-bar:after {\n right: 50%;\n}\n\n/* active state */\n\n.select-text:focus ~ .select-bar:before, .select-text:focus ~ .select-bar:after {\n width: 50%;\n}\n\n/* HIGHLIGHTER ================================== */\n\n.select-highlight {\n position: absolute;\n height: 60%;\n width: 100px;\n top: 25%;\n left: 0;\n pointer-events: none;\n opacity: 0.5;\n}\n\n.gray-text {\n color: #ccc;\n}\n\n.adminio-logo {\n font-family: \"Righteous\", cursive;\n}\n\n.separator {\n display: flex;\n align-items: center;\n text-align: center;\n padding-bottom: 10px;\n}\n\n.separator::before, .separator::after {\n content: \"\";\n flex: 1;\n border-bottom: 1px solid #ccc;\n}\n\n.separator::before {\n margin-right: 0.25em;\n}\n\n.separator::after {\n margin-left: 0.25em;\n}\n\n.transparent {\n background-color: #ffffff !important;\n opacity: 0.8;\n color: #222;\n}\n\n.transparent > a {\n color: #222 !important;\n}\n\ndiv.align-right {\n text-align: right;\n}\n\na.action-link {\n padding: 2px;\n margin: 3px;\n}\n\n.align-center {\n text-align: center;\n}\n\nli.type-none {\n list-style-type: none;\n}\n\nul.type-none {\n -webkit-padding-start: 0px;\n padding-inline-start: 0px;\n}\n\n.dropdown-custom {\n width: 200px;\n}\n\ndiv.statement-actions {\n width: 250px;\n display: inline-block;\n}\n\ndiv.lineCut {\n display: inline-block;\n}\n\ndiv.backdrop {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n.loverlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 111;\n background-color: #fefefe;\n opacity: 0.2;\n width: 100%;\n height: 100%;\n}\n\n.lpopup {\n display: table;\n margin: 0 auto;\n left: 50%;\n top: 40%;\n background-color: transparent;\n text-align: center;\n z-index: 222;\n width: 200px;\n height: 200px;\n margin-left: -100px;\n position: absolute;\n}\n\n.error-lpopup {\n display: table;\n margin: 0 auto;\n left: 50%;\n top: 20%;\n box-shadow: 0px 3px 10px #959595;\n color: #fff;\n text-align: center;\n z-index: 222;\n width: 200px;\n height: 200px;\n margin-left: -100px;\n border-radius: 35px;\n position: absolute;\n}\n\n.error-lpopup > mdb-icon {\n margin-top: 30px;\n}\n\n.pointer {\n cursor: pointer !important;\n}\n\n.button-fix {\n margin-top: 0.23rem !important;\n}\n\n/*list css*/\n\n.c-btn {\n min-width: 485px !important;\n background: #fff;\n border: 1px solid #ccc;\n color: #333;\n}\n\n.selected-list .c-list .c-token {\n background: #0079FE;\n}\n\n.selected-list .c-list .c-token .c-label {\n color: #fff;\n}\n\n.selected-list .c-list .c-token .c-remove svg {\n fill: #fff;\n}\n\n.selected-list .c-angle-down svg, .selected-list .c-angle-up svg {\n fill: #333;\n}\n\n.dropdown-list ul li:hover {\n background: #f5f5f5;\n}\n\n.arrow-up, .arrow-down {\n border-bottom: 15px solid #fff;\n}\n\n.arrow-2 {\n border-bottom: 15px solid #ccc;\n}\n\n.list-area {\n border: 1px solid #ccc;\n background: #fff;\n box-shadow: 0px 1px 5px #959595;\n}\n\n.select-all {\n border-bottom: 1px solid #ccc;\n}\n\n.list-filter {\n border-bottom: 1px solid #ccc;\n}\n\n.list-filter .c-search svg {\n fill: #888;\n}\n\n.list-filter .c-clear svg {\n fill: #888;\n}\n\n.pure-checkbox input[type=checkbox]:focus + label:before, .pure-checkbox input[type=checkbox]:hover + label:before {\n border-color: #0079FE;\n background-color: #f2f2f2;\n}\n\n.pure-checkbox input[type=checkbox] + label {\n color: #000;\n}\n\n.pure-checkbox input[type=checkbox] + label:before {\n color: #0079FE;\n border: 1px solid #0079FE;\n}\n\n.pure-checkbox input[type=checkbox] + label:after {\n background-color: #0079FE;\n}\n\n.pure-checkbox input[type=checkbox]:disabled + label:before {\n border-color: #cccccc;\n}\n\n.pure-checkbox input[type=checkbox]:disabled:checked + label:before {\n background-color: #cccccc;\n}\n\n.pure-checkbox input[type=checkbox] + label:after {\n border-color: #ffffff;\n}\n\n.pure-checkbox input[type=radio]:checked + label:before {\n background-color: white;\n}\n\n.pure-checkbox input[type=checkbox]:checked + label:before {\n background: #0079FE;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox]:focus + label:before, .single-select-mode .pure-checkbox input[type=checkbox]:hover + label:before {\n border-color: #0079FE;\n background-color: #f2f2f2;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox] + label {\n color: #000;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox] + label:before {\n color: transparent !important;\n border: 0px solid #0079FE;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox] + label:after {\n background-color: transparent !important;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox]:disabled + label:before {\n border-color: #cccccc;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox]:disabled:checked + label:before {\n background-color: #cccccc;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox] + label:after {\n border-color: #0079FE;\n}\n\n.single-select-mode .pure-checkbox input[type=radio]:checked + label:before {\n background-color: white;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox]:checked + label:before {\n background: none !important;\n}\n\n.selected-item {\n background: #e9f4ff;\n}\n\n.btn-iceblue {\n background: #0079FE;\n border: 1px solid #ccc;\n color: #fff;\n}",".c-btn {\n background: #fff;\n border: 1px solid #ccc;\n color: #333; }\n\n.selected-list .c-list .c-token {\n background: #0079FE; }\n\n.selected-list .c-list .c-token .c-label {\n color: #fff; }\n\n.selected-list .c-list .c-token .c-remove svg {\n fill: #fff; }\n\n.selected-list .c-angle-down svg, .selected-list .c-angle-up svg {\n fill: #333; }\n\n.dropdown-list ul li:hover {\n background: #f5f5f5; }\n\n.arrow-up, .arrow-down {\n border-bottom: 15px solid #fff; }\n\n.arrow-2 {\n border-bottom: 15px solid #ccc; }\n\n.list-area {\n border: 1px solid #ccc;\n background: #fff;\n box-shadow: 0px 1px 5px #959595; }\n\n.select-all {\n border-bottom: 1px solid #ccc; }\n\n.list-filter {\n border-bottom: 1px solid #ccc; }\n\n.list-filter .c-search svg {\n fill: #888; }\n\n.list-filter .c-clear svg {\n fill: #888; }\n\n.pure-checkbox input[type=\"checkbox\"]:focus + label:before, .pure-checkbox input[type=\"checkbox\"]:hover + label:before {\n border-color: #0079FE;\n background-color: #f2f2f2; }\n\n.pure-checkbox input[type=\"checkbox\"] + label {\n color: #000; }\n\n.pure-checkbox input[type=\"checkbox\"] + label:before {\n color: #0079FE;\n border: 1px solid #0079FE; }\n\n.pure-checkbox input[type=\"checkbox\"] + label:after {\n background-color: #0079FE; }\n\n.pure-checkbox input[type=\"checkbox\"]:disabled + label:before {\n border-color: #cccccc; }\n\n.pure-checkbox input[type=\"checkbox\"]:disabled:checked + label:before {\n background-color: #cccccc; }\n\n.pure-checkbox input[type=\"checkbox\"] + label:after {\n border-color: #ffffff; }\n\n.pure-checkbox input[type=\"radio\"]:checked + label:before {\n background-color: white; }\n\n.pure-checkbox input[type=\"checkbox\"]:checked + label:before {\n background: #0079FE; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"]:focus + label:before, .single-select-mode .pure-checkbox input[type=\"checkbox\"]:hover + label:before {\n border-color: #0079FE;\n background-color: #f2f2f2; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"] + label {\n color: #000; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"] + label:before {\n color: transparent !important;\n border: 0px solid #0079FE; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"] + label:after {\n background-color: transparent !important; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"]:disabled + label:before {\n border-color: #cccccc; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"]:disabled:checked + label:before {\n background-color: #cccccc; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"] + label:after {\n border-color: #0079FE; }\n\n.single-select-mode .pure-checkbox input[type=\"radio\"]:checked + label:before {\n background-color: white; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"]:checked + label:before {\n background: none !important; }\n\n.selected-item {\n background: #e9f4ff; }\n\n.btn-iceblue {\n background: #0079FE;\n border: 1px solid #ccc;\n color: #fff; }\n"],"sourceRoot":"webpack:///"} \ No newline at end of file +{"version":3,"sources":["./node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss","./node_modules/@fortawesome/fontawesome-free/scss/solid.scss","./node_modules/@fortawesome/fontawesome-free/scss/regular.scss","./node_modules/@fortawesome/fontawesome-free/scss/brands.scss","./node_modules/angular-bootstrap-md/assets/scss/bootstrap/bootstrap.scss","./node_modules/angular-bootstrap-md/assets/scss/mdb.scss","./node_modules/animate.css/animate.css","./src/styles.scss","./node_modules/angular2-multiselect-dropdown/themes/default.theme.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACp+IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;AC5jSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oBAAoB,MAAM,OAAO,YAAY;AAChG,uBAAuB,eAAe;AACtC,6BAA6B;AAC7B,4BAA4B,aAAa,kBAAkB;AAC3D,kBAAkB,kBAAkB,oBAAoB,sBAAsB,aAAa,aAAa,eAAe;AACvH,sBAAsB,kBAAkB,MAAM,SAAS,OAAO,QAAQ,aAAa,oBAAoB,wCAAwC,0DAA0D;AACzM,mDAAmD;AACnD,8CAA8C,mDAAmD;AACjG,2BAA2B;AAC3B,iGAAiG;AACjG,6CAA6C,kBAAkB,aAAa,aAAa,sBAAsB,cAAc;AAC7H,wBAAwB,eAAe,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACniHA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AChqHA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;ACpkBA;AACA;AACA;AACA,cAAc;;AAEd;AACA,sBAAsB;;AAEtB;AACA,gBAAgB;;AAEhB;AACA,eAAe;;AAEf;AACA,aAAa;;AAEb;AACA,sBAAsB;;AAEtB;AACA,iCAAiC;;AAEjC;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,kCAAkC;;AAElC;AACA,gCAAgC;;AAEhC;AACA,gCAAgC;;AAEhC;AACA,eAAe;;AAEf;AACA,eAAe;;AAEf;AACA;AACA,4BAA4B;;AAE5B;AACA,cAAc;;AAEd;AACA;AACA,4BAA4B;;AAE5B;AACA,4BAA4B;;AAE5B;AACA,wBAAwB;;AAExB;AACA,4BAA4B;;AAE5B;AACA,wBAAwB;;AAExB;AACA,0BAA0B;;AAE1B;AACA,sBAAsB;;AAEtB;AACA;AACA,4BAA4B;;AAE5B;AACA,cAAc;;AAEd;AACA;AACA,4BAA4B;;AAE5B;AACA,2CAA2C;;AAE3C;AACA,wBAAwB;;AAExB;AACA,4BAA4B;;AAE5B;AACA,wBAAwB;;AAExB;AACA,0BAA0B;;AAE1B;AACA,8BAA8B;;AAE9B;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,cAAc","file":"styles.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-block;\n font-style: normal;\n font-variant: normal;\n text-rendering: auto;\n line-height: 1;\n}\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n.fa-xs {\n font-size: 0.75em;\n}\n.fa-sm {\n font-size: 0.875em;\n}\n.fa-1x {\n font-size: 1em;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-6x {\n font-size: 6em;\n}\n.fa-7x {\n font-size: 7em;\n}\n.fa-8x {\n font-size: 8em;\n}\n.fa-9x {\n font-size: 9em;\n}\n.fa-10x {\n font-size: 10em;\n}\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n transform: scale(1, -1);\n}\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n transform: scale(-1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n filter: none;\n}\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #fff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n content: \"\";\n}\n.fa-accessible-icon:before {\n content: \"\";\n}\n.fa-accusoft:before {\n content: \"\";\n}\n.fa-acquisitions-incorporated:before {\n content: \"\";\n}\n.fa-ad:before {\n content: \"\";\n}\n.fa-address-book:before {\n content: \"\";\n}\n.fa-address-card:before {\n content: \"\";\n}\n.fa-adjust:before {\n content: \"\";\n}\n.fa-adn:before {\n content: \"\";\n}\n.fa-adversal:before {\n content: \"\";\n}\n.fa-affiliatetheme:before {\n content: \"\";\n}\n.fa-air-freshener:before {\n content: \"\";\n}\n.fa-airbnb:before {\n content: \"\";\n}\n.fa-algolia:before {\n content: \"\";\n}\n.fa-align-center:before {\n content: \"\";\n}\n.fa-align-justify:before {\n content: \"\";\n}\n.fa-align-left:before {\n content: \"\";\n}\n.fa-align-right:before {\n content: \"\";\n}\n.fa-alipay:before {\n content: \"\";\n}\n.fa-allergies:before {\n content: \"\";\n}\n.fa-amazon:before {\n content: \"\";\n}\n.fa-amazon-pay:before {\n content: \"\";\n}\n.fa-ambulance:before {\n content: \"\";\n}\n.fa-american-sign-language-interpreting:before {\n content: \"\";\n}\n.fa-amilia:before {\n content: \"\";\n}\n.fa-anchor:before {\n content: \"\";\n}\n.fa-android:before {\n content: \"\";\n}\n.fa-angellist:before {\n content: \"\";\n}\n.fa-angle-double-down:before {\n content: \"\";\n}\n.fa-angle-double-left:before {\n content: \"\";\n}\n.fa-angle-double-right:before {\n content: \"\";\n}\n.fa-angle-double-up:before {\n content: \"\";\n}\n.fa-angle-down:before {\n content: \"\";\n}\n.fa-angle-left:before {\n content: \"\";\n}\n.fa-angle-right:before {\n content: \"\";\n}\n.fa-angle-up:before {\n content: \"\";\n}\n.fa-angry:before {\n content: \"\";\n}\n.fa-angrycreative:before {\n content: \"\";\n}\n.fa-angular:before {\n content: \"\";\n}\n.fa-ankh:before {\n content: \"\";\n}\n.fa-app-store:before {\n content: \"\";\n}\n.fa-app-store-ios:before {\n content: \"\";\n}\n.fa-apper:before {\n content: \"\";\n}\n.fa-apple:before {\n content: \"\";\n}\n.fa-apple-alt:before {\n content: \"\";\n}\n.fa-apple-pay:before {\n content: \"\";\n}\n.fa-archive:before {\n content: \"\";\n}\n.fa-archway:before {\n content: \"\";\n}\n.fa-arrow-alt-circle-down:before {\n content: \"\";\n}\n.fa-arrow-alt-circle-left:before {\n content: \"\";\n}\n.fa-arrow-alt-circle-right:before {\n content: \"\";\n}\n.fa-arrow-alt-circle-up:before {\n content: \"\";\n}\n.fa-arrow-circle-down:before {\n content: \"\";\n}\n.fa-arrow-circle-left:before {\n content: \"\";\n}\n.fa-arrow-circle-right:before {\n content: \"\";\n}\n.fa-arrow-circle-up:before {\n content: \"\";\n}\n.fa-arrow-down:before {\n content: \"\";\n}\n.fa-arrow-left:before {\n content: \"\";\n}\n.fa-arrow-right:before {\n content: \"\";\n}\n.fa-arrow-up:before {\n content: \"\";\n}\n.fa-arrows-alt:before {\n content: \"\";\n}\n.fa-arrows-alt-h:before {\n content: \"\";\n}\n.fa-arrows-alt-v:before {\n content: \"\";\n}\n.fa-artstation:before {\n content: \"\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\";\n}\n.fa-asterisk:before {\n content: \"\";\n}\n.fa-asymmetrik:before {\n content: \"\";\n}\n.fa-at:before {\n content: \"\";\n}\n.fa-atlas:before {\n content: \"\";\n}\n.fa-atlassian:before {\n content: \"\";\n}\n.fa-atom:before {\n content: \"\";\n}\n.fa-audible:before {\n content: \"\";\n}\n.fa-audio-description:before {\n content: \"\";\n}\n.fa-autoprefixer:before {\n content: \"\";\n}\n.fa-avianex:before {\n content: \"\";\n}\n.fa-aviato:before {\n content: \"\";\n}\n.fa-award:before {\n content: \"\";\n}\n.fa-aws:before {\n content: \"\";\n}\n.fa-baby:before {\n content: \"\";\n}\n.fa-baby-carriage:before {\n content: \"\";\n}\n.fa-backspace:before {\n content: \"\";\n}\n.fa-backward:before {\n content: \"\";\n}\n.fa-bacon:before {\n content: \"\";\n}\n.fa-bacteria:before {\n content: \"\";\n}\n.fa-bacterium:before {\n content: \"\";\n}\n.fa-bahai:before {\n content: \"\";\n}\n.fa-balance-scale:before {\n content: \"\";\n}\n.fa-balance-scale-left:before {\n content: \"\";\n}\n.fa-balance-scale-right:before {\n content: \"\";\n}\n.fa-ban:before {\n content: \"\";\n}\n.fa-band-aid:before {\n content: \"\";\n}\n.fa-bandcamp:before {\n content: \"\";\n}\n.fa-barcode:before {\n content: \"\";\n}\n.fa-bars:before {\n content: \"\";\n}\n.fa-baseball-ball:before {\n content: \"\";\n}\n.fa-basketball-ball:before {\n content: \"\";\n}\n.fa-bath:before {\n content: \"\";\n}\n.fa-battery-empty:before {\n content: \"\";\n}\n.fa-battery-full:before {\n content: \"\";\n}\n.fa-battery-half:before {\n content: \"\";\n}\n.fa-battery-quarter:before {\n content: \"\";\n}\n.fa-battery-three-quarters:before {\n content: \"\";\n}\n.fa-battle-net:before {\n content: \"\";\n}\n.fa-bed:before {\n content: \"\";\n}\n.fa-beer:before {\n content: \"\";\n}\n.fa-behance:before {\n content: \"\";\n}\n.fa-behance-square:before {\n content: \"\";\n}\n.fa-bell:before {\n content: \"\";\n}\n.fa-bell-slash:before {\n content: \"\";\n}\n.fa-bezier-curve:before {\n content: \"\";\n}\n.fa-bible:before {\n content: \"\";\n}\n.fa-bicycle:before {\n content: \"\";\n}\n.fa-biking:before {\n content: \"\";\n}\n.fa-bimobject:before {\n content: \"\";\n}\n.fa-binoculars:before {\n content: \"\";\n}\n.fa-biohazard:before {\n content: \"\";\n}\n.fa-birthday-cake:before {\n content: \"\";\n}\n.fa-bitbucket:before {\n content: \"\";\n}\n.fa-bitcoin:before {\n content: \"\";\n}\n.fa-bity:before {\n content: \"\";\n}\n.fa-black-tie:before {\n content: \"\";\n}\n.fa-blackberry:before {\n content: \"\";\n}\n.fa-blender:before {\n content: \"\";\n}\n.fa-blender-phone:before {\n content: \"\";\n}\n.fa-blind:before {\n content: \"\";\n}\n.fa-blog:before {\n content: \"\";\n}\n.fa-blogger:before {\n content: \"\";\n}\n.fa-blogger-b:before {\n content: \"\";\n}\n.fa-bluetooth:before {\n content: \"\";\n}\n.fa-bluetooth-b:before {\n content: \"\";\n}\n.fa-bold:before {\n content: \"\";\n}\n.fa-bolt:before {\n content: \"\";\n}\n.fa-bomb:before {\n content: \"\";\n}\n.fa-bone:before {\n content: \"\";\n}\n.fa-bong:before {\n content: \"\";\n}\n.fa-book:before {\n content: \"\";\n}\n.fa-book-dead:before {\n content: \"\";\n}\n.fa-book-medical:before {\n content: \"\";\n}\n.fa-book-open:before {\n content: \"\";\n}\n.fa-book-reader:before {\n content: \"\";\n}\n.fa-bookmark:before {\n content: \"\";\n}\n.fa-bootstrap:before {\n content: \"\";\n}\n.fa-border-all:before {\n content: \"\";\n}\n.fa-border-none:before {\n content: \"\";\n}\n.fa-border-style:before {\n content: \"\";\n}\n.fa-bowling-ball:before {\n content: \"\";\n}\n.fa-box:before {\n content: \"\";\n}\n.fa-box-open:before {\n content: \"\";\n}\n.fa-box-tissue:before {\n content: \"\";\n}\n.fa-boxes:before {\n content: \"\";\n}\n.fa-braille:before {\n content: \"\";\n}\n.fa-brain:before {\n content: \"\";\n}\n.fa-bread-slice:before {\n content: \"\";\n}\n.fa-briefcase:before {\n content: \"\";\n}\n.fa-briefcase-medical:before {\n content: \"\";\n}\n.fa-broadcast-tower:before {\n content: \"\";\n}\n.fa-broom:before {\n content: \"\";\n}\n.fa-brush:before {\n content: \"\";\n}\n.fa-btc:before {\n content: \"\";\n}\n.fa-buffer:before {\n content: \"\";\n}\n.fa-bug:before {\n content: \"\";\n}\n.fa-building:before {\n content: \"\";\n}\n.fa-bullhorn:before {\n content: \"\";\n}\n.fa-bullseye:before {\n content: \"\";\n}\n.fa-burn:before {\n content: \"\";\n}\n.fa-buromobelexperte:before {\n content: \"\";\n}\n.fa-bus:before {\n content: \"\";\n}\n.fa-bus-alt:before {\n content: \"\";\n}\n.fa-business-time:before {\n content: \"\";\n}\n.fa-buy-n-large:before {\n content: \"\";\n}\n.fa-buysellads:before {\n content: \"\";\n}\n.fa-calculator:before {\n content: \"\";\n}\n.fa-calendar:before {\n content: \"\";\n}\n.fa-calendar-alt:before {\n content: \"\";\n}\n.fa-calendar-check:before {\n content: \"\";\n}\n.fa-calendar-day:before {\n content: \"\";\n}\n.fa-calendar-minus:before {\n content: \"\";\n}\n.fa-calendar-plus:before {\n content: \"\";\n}\n.fa-calendar-times:before {\n content: \"\";\n}\n.fa-calendar-week:before {\n content: \"\";\n}\n.fa-camera:before {\n content: \"\";\n}\n.fa-camera-retro:before {\n content: \"\";\n}\n.fa-campground:before {\n content: \"\";\n}\n.fa-canadian-maple-leaf:before {\n content: \"\";\n}\n.fa-candy-cane:before {\n content: \"\";\n}\n.fa-cannabis:before {\n content: \"\";\n}\n.fa-capsules:before {\n content: \"\";\n}\n.fa-car:before {\n content: \"\";\n}\n.fa-car-alt:before {\n content: \"\";\n}\n.fa-car-battery:before {\n content: \"\";\n}\n.fa-car-crash:before {\n content: \"\";\n}\n.fa-car-side:before {\n content: \"\";\n}\n.fa-caravan:before {\n content: \"\";\n}\n.fa-caret-down:before {\n content: \"\";\n}\n.fa-caret-left:before {\n content: \"\";\n}\n.fa-caret-right:before {\n content: \"\";\n}\n.fa-caret-square-down:before {\n content: \"\";\n}\n.fa-caret-square-left:before {\n content: \"\";\n}\n.fa-caret-square-right:before {\n content: \"\";\n}\n.fa-caret-square-up:before {\n content: \"\";\n}\n.fa-caret-up:before {\n content: \"\";\n}\n.fa-carrot:before {\n content: \"\";\n}\n.fa-cart-arrow-down:before {\n content: \"\";\n}\n.fa-cart-plus:before {\n content: \"\";\n}\n.fa-cash-register:before {\n content: \"\";\n}\n.fa-cat:before {\n content: \"\";\n}\n.fa-cc-amazon-pay:before {\n content: \"\";\n}\n.fa-cc-amex:before {\n content: \"\";\n}\n.fa-cc-apple-pay:before {\n content: \"\";\n}\n.fa-cc-diners-club:before {\n content: \"\";\n}\n.fa-cc-discover:before {\n content: \"\";\n}\n.fa-cc-jcb:before {\n content: \"\";\n}\n.fa-cc-mastercard:before {\n content: \"\";\n}\n.fa-cc-paypal:before {\n content: \"\";\n}\n.fa-cc-stripe:before {\n content: \"\";\n}\n.fa-cc-visa:before {\n content: \"\";\n}\n.fa-centercode:before {\n content: \"\";\n}\n.fa-centos:before {\n content: \"\";\n}\n.fa-certificate:before {\n content: \"\";\n}\n.fa-chair:before {\n content: \"\";\n}\n.fa-chalkboard:before {\n content: \"\";\n}\n.fa-chalkboard-teacher:before {\n content: \"\";\n}\n.fa-charging-station:before {\n content: \"\";\n}\n.fa-chart-area:before {\n content: \"\";\n}\n.fa-chart-bar:before {\n content: \"\";\n}\n.fa-chart-line:before {\n content: \"\";\n}\n.fa-chart-pie:before {\n content: \"\";\n}\n.fa-check:before {\n content: \"\";\n}\n.fa-check-circle:before {\n content: \"\";\n}\n.fa-check-double:before {\n content: \"\";\n}\n.fa-check-square:before {\n content: \"\";\n}\n.fa-cheese:before {\n content: \"\";\n}\n.fa-chess:before {\n content: \"\";\n}\n.fa-chess-bishop:before {\n content: \"\";\n}\n.fa-chess-board:before {\n content: \"\";\n}\n.fa-chess-king:before {\n content: \"\";\n}\n.fa-chess-knight:before {\n content: \"\";\n}\n.fa-chess-pawn:before {\n content: \"\";\n}\n.fa-chess-queen:before {\n content: \"\";\n}\n.fa-chess-rook:before {\n content: \"\";\n}\n.fa-chevron-circle-down:before {\n content: \"\";\n}\n.fa-chevron-circle-left:before {\n content: \"\";\n}\n.fa-chevron-circle-right:before {\n content: \"\";\n}\n.fa-chevron-circle-up:before {\n content: \"\";\n}\n.fa-chevron-down:before {\n content: \"\";\n}\n.fa-chevron-left:before {\n content: \"\";\n}\n.fa-chevron-right:before {\n content: \"\";\n}\n.fa-chevron-up:before {\n content: \"\";\n}\n.fa-child:before {\n content: \"\";\n}\n.fa-chrome:before {\n content: \"\";\n}\n.fa-chromecast:before {\n content: \"\";\n}\n.fa-church:before {\n content: \"\";\n}\n.fa-circle:before {\n content: \"\";\n}\n.fa-circle-notch:before {\n content: \"\";\n}\n.fa-city:before {\n content: \"\";\n}\n.fa-clinic-medical:before {\n content: \"\";\n}\n.fa-clipboard:before {\n content: \"\";\n}\n.fa-clipboard-check:before {\n content: \"\";\n}\n.fa-clipboard-list:before {\n content: \"\";\n}\n.fa-clock:before {\n content: \"\";\n}\n.fa-clone:before {\n content: \"\";\n}\n.fa-closed-captioning:before {\n content: \"\";\n}\n.fa-cloud:before {\n content: \"\";\n}\n.fa-cloud-download-alt:before {\n content: \"\";\n}\n.fa-cloud-meatball:before {\n content: \"\";\n}\n.fa-cloud-moon:before {\n content: \"\";\n}\n.fa-cloud-moon-rain:before {\n content: \"\";\n}\n.fa-cloud-rain:before {\n content: \"\";\n}\n.fa-cloud-showers-heavy:before {\n content: \"\";\n}\n.fa-cloud-sun:before {\n content: \"\";\n}\n.fa-cloud-sun-rain:before {\n content: \"\";\n}\n.fa-cloud-upload-alt:before {\n content: \"\";\n}\n.fa-cloudflare:before {\n content: \"\";\n}\n.fa-cloudscale:before {\n content: \"\";\n}\n.fa-cloudsmith:before {\n content: \"\";\n}\n.fa-cloudversify:before {\n content: \"\";\n}\n.fa-cocktail:before {\n content: \"\";\n}\n.fa-code:before {\n content: \"\";\n}\n.fa-code-branch:before {\n content: \"\";\n}\n.fa-codepen:before {\n content: \"\";\n}\n.fa-codiepie:before {\n content: \"\";\n}\n.fa-coffee:before {\n content: \"\";\n}\n.fa-cog:before {\n content: \"\";\n}\n.fa-cogs:before {\n content: \"\";\n}\n.fa-coins:before {\n content: \"\";\n}\n.fa-columns:before {\n content: \"\";\n}\n.fa-comment:before {\n content: \"\";\n}\n.fa-comment-alt:before {\n content: \"\";\n}\n.fa-comment-dollar:before {\n content: \"\";\n}\n.fa-comment-dots:before {\n content: \"\";\n}\n.fa-comment-medical:before {\n content: \"\";\n}\n.fa-comment-slash:before {\n content: \"\";\n}\n.fa-comments:before {\n content: \"\";\n}\n.fa-comments-dollar:before {\n content: \"\";\n}\n.fa-compact-disc:before {\n content: \"\";\n}\n.fa-compass:before {\n content: \"\";\n}\n.fa-compress:before {\n content: \"\";\n}\n.fa-compress-alt:before {\n content: \"\";\n}\n.fa-compress-arrows-alt:before {\n content: \"\";\n}\n.fa-concierge-bell:before {\n content: \"\";\n}\n.fa-confluence:before {\n content: \"\";\n}\n.fa-connectdevelop:before {\n content: \"\";\n}\n.fa-contao:before {\n content: \"\";\n}\n.fa-cookie:before {\n content: \"\";\n}\n.fa-cookie-bite:before {\n content: \"\";\n}\n.fa-copy:before {\n content: \"\";\n}\n.fa-copyright:before {\n content: \"\";\n}\n.fa-cotton-bureau:before {\n content: \"\";\n}\n.fa-couch:before {\n content: \"\";\n}\n.fa-cpanel:before {\n content: \"\";\n}\n.fa-creative-commons:before {\n content: \"\";\n}\n.fa-creative-commons-by:before {\n content: \"\";\n}\n.fa-creative-commons-nc:before {\n content: \"\";\n}\n.fa-creative-commons-nc-eu:before {\n content: \"\";\n}\n.fa-creative-commons-nc-jp:before {\n content: \"\";\n}\n.fa-creative-commons-nd:before {\n content: \"\";\n}\n.fa-creative-commons-pd:before {\n content: \"\";\n}\n.fa-creative-commons-pd-alt:before {\n content: \"\";\n}\n.fa-creative-commons-remix:before {\n content: \"\";\n}\n.fa-creative-commons-sa:before {\n content: \"\";\n}\n.fa-creative-commons-sampling:before {\n content: \"\";\n}\n.fa-creative-commons-sampling-plus:before {\n content: \"\";\n}\n.fa-creative-commons-share:before {\n content: \"\";\n}\n.fa-creative-commons-zero:before {\n content: \"\";\n}\n.fa-credit-card:before {\n content: \"\";\n}\n.fa-critical-role:before {\n content: \"\";\n}\n.fa-crop:before {\n content: \"\";\n}\n.fa-crop-alt:before {\n content: \"\";\n}\n.fa-cross:before {\n content: \"\";\n}\n.fa-crosshairs:before {\n content: \"\";\n}\n.fa-crow:before {\n content: \"\";\n}\n.fa-crown:before {\n content: \"\";\n}\n.fa-crutch:before {\n content: \"\";\n}\n.fa-css3:before {\n content: \"\";\n}\n.fa-css3-alt:before {\n content: \"\";\n}\n.fa-cube:before {\n content: \"\";\n}\n.fa-cubes:before {\n content: \"\";\n}\n.fa-cut:before {\n content: \"\";\n}\n.fa-cuttlefish:before {\n content: \"\";\n}\n.fa-d-and-d:before {\n content: \"\";\n}\n.fa-d-and-d-beyond:before {\n content: \"\";\n}\n.fa-dailymotion:before {\n content: \"\";\n}\n.fa-dashcube:before {\n content: \"\";\n}\n.fa-database:before {\n content: \"\";\n}\n.fa-deaf:before {\n content: \"\";\n}\n.fa-deezer:before {\n content: \"\";\n}\n.fa-delicious:before {\n content: \"\";\n}\n.fa-democrat:before {\n content: \"\";\n}\n.fa-deploydog:before {\n content: \"\";\n}\n.fa-deskpro:before {\n content: \"\";\n}\n.fa-desktop:before {\n content: \"\";\n}\n.fa-dev:before {\n content: \"\";\n}\n.fa-deviantart:before {\n content: \"\";\n}\n.fa-dharmachakra:before {\n content: \"\";\n}\n.fa-dhl:before {\n content: \"\";\n}\n.fa-diagnoses:before {\n content: \"\";\n}\n.fa-diaspora:before {\n content: \"\";\n}\n.fa-dice:before {\n content: \"\";\n}\n.fa-dice-d20:before {\n content: \"\";\n}\n.fa-dice-d6:before {\n content: \"\";\n}\n.fa-dice-five:before {\n content: \"\";\n}\n.fa-dice-four:before {\n content: \"\";\n}\n.fa-dice-one:before {\n content: \"\";\n}\n.fa-dice-six:before {\n content: \"\";\n}\n.fa-dice-three:before {\n content: \"\";\n}\n.fa-dice-two:before {\n content: \"\";\n}\n.fa-digg:before {\n content: \"\";\n}\n.fa-digital-ocean:before {\n content: \"\";\n}\n.fa-digital-tachograph:before {\n content: \"\";\n}\n.fa-directions:before {\n content: \"\";\n}\n.fa-discord:before {\n content: \"\";\n}\n.fa-discourse:before {\n content: \"\";\n}\n.fa-disease:before {\n content: \"\";\n}\n.fa-divide:before {\n content: \"\";\n}\n.fa-dizzy:before {\n content: \"\";\n}\n.fa-dna:before {\n content: \"\";\n}\n.fa-dochub:before {\n content: \"\";\n}\n.fa-docker:before {\n content: \"\";\n}\n.fa-dog:before {\n content: \"\";\n}\n.fa-dollar-sign:before {\n content: \"\";\n}\n.fa-dolly:before {\n content: \"\";\n}\n.fa-dolly-flatbed:before {\n content: \"\";\n}\n.fa-donate:before {\n content: \"\";\n}\n.fa-door-closed:before {\n content: \"\";\n}\n.fa-door-open:before {\n content: \"\";\n}\n.fa-dot-circle:before {\n content: \"\";\n}\n.fa-dove:before {\n content: \"\";\n}\n.fa-download:before {\n content: \"\";\n}\n.fa-draft2digital:before {\n content: \"\";\n}\n.fa-drafting-compass:before {\n content: \"\";\n}\n.fa-dragon:before {\n content: \"\";\n}\n.fa-draw-polygon:before {\n content: \"\";\n}\n.fa-dribbble:before {\n content: \"\";\n}\n.fa-dribbble-square:before {\n content: \"\";\n}\n.fa-dropbox:before {\n content: \"\";\n}\n.fa-drum:before {\n content: \"\";\n}\n.fa-drum-steelpan:before {\n content: \"\";\n}\n.fa-drumstick-bite:before {\n content: \"\";\n}\n.fa-drupal:before {\n content: \"\";\n}\n.fa-dumbbell:before {\n content: \"\";\n}\n.fa-dumpster:before {\n content: \"\";\n}\n.fa-dumpster-fire:before {\n content: \"\";\n}\n.fa-dungeon:before {\n content: \"\";\n}\n.fa-dyalog:before {\n content: \"\";\n}\n.fa-earlybirds:before {\n content: \"\";\n}\n.fa-ebay:before {\n content: \"\";\n}\n.fa-edge:before {\n content: \"\";\n}\n.fa-edge-legacy:before {\n content: \"\";\n}\n.fa-edit:before {\n content: \"\";\n}\n.fa-egg:before {\n content: \"\";\n}\n.fa-eject:before {\n content: \"\";\n}\n.fa-elementor:before {\n content: \"\";\n}\n.fa-ellipsis-h:before {\n content: \"\";\n}\n.fa-ellipsis-v:before {\n content: \"\";\n}\n.fa-ello:before {\n content: \"\";\n}\n.fa-ember:before {\n content: \"\";\n}\n.fa-empire:before {\n content: \"\";\n}\n.fa-envelope:before {\n content: \"\";\n}\n.fa-envelope-open:before {\n content: \"\";\n}\n.fa-envelope-open-text:before {\n content: \"\";\n}\n.fa-envelope-square:before {\n content: \"\";\n}\n.fa-envira:before {\n content: \"\";\n}\n.fa-equals:before {\n content: \"\";\n}\n.fa-eraser:before {\n content: \"\";\n}\n.fa-erlang:before {\n content: \"\";\n}\n.fa-ethereum:before {\n content: \"\";\n}\n.fa-ethernet:before {\n content: \"\";\n}\n.fa-etsy:before {\n content: \"\";\n}\n.fa-euro-sign:before {\n content: \"\";\n}\n.fa-evernote:before {\n content: \"\";\n}\n.fa-exchange-alt:before {\n content: \"\";\n}\n.fa-exclamation:before {\n content: \"\";\n}\n.fa-exclamation-circle:before {\n content: \"\";\n}\n.fa-exclamation-triangle:before {\n content: \"\";\n}\n.fa-expand:before {\n content: \"\";\n}\n.fa-expand-alt:before {\n content: \"\";\n}\n.fa-expand-arrows-alt:before {\n content: \"\";\n}\n.fa-expeditedssl:before {\n content: \"\";\n}\n.fa-external-link-alt:before {\n content: \"\";\n}\n.fa-external-link-square-alt:before {\n content: \"\";\n}\n.fa-eye:before {\n content: \"\";\n}\n.fa-eye-dropper:before {\n content: \"\";\n}\n.fa-eye-slash:before {\n content: \"\";\n}\n.fa-facebook:before {\n content: \"\";\n}\n.fa-facebook-f:before {\n content: \"\";\n}\n.fa-facebook-messenger:before {\n content: \"\";\n}\n.fa-facebook-square:before {\n content: \"\";\n}\n.fa-fan:before {\n content: \"\";\n}\n.fa-fantasy-flight-games:before {\n content: \"\";\n}\n.fa-fast-backward:before {\n content: \"\";\n}\n.fa-fast-forward:before {\n content: \"\";\n}\n.fa-faucet:before {\n content: \"\";\n}\n.fa-fax:before {\n content: \"\";\n}\n.fa-feather:before {\n content: \"\";\n}\n.fa-feather-alt:before {\n content: \"\";\n}\n.fa-fedex:before {\n content: \"\";\n}\n.fa-fedora:before {\n content: \"\";\n}\n.fa-female:before {\n content: \"\";\n}\n.fa-fighter-jet:before {\n content: \"\";\n}\n.fa-figma:before {\n content: \"\";\n}\n.fa-file:before {\n content: \"\";\n}\n.fa-file-alt:before {\n content: \"\";\n}\n.fa-file-archive:before {\n content: \"\";\n}\n.fa-file-audio:before {\n content: \"\";\n}\n.fa-file-code:before {\n content: \"\";\n}\n.fa-file-contract:before {\n content: \"\";\n}\n.fa-file-csv:before {\n content: \"\";\n}\n.fa-file-download:before {\n content: \"\";\n}\n.fa-file-excel:before {\n content: \"\";\n}\n.fa-file-export:before {\n content: \"\";\n}\n.fa-file-image:before {\n content: \"\";\n}\n.fa-file-import:before {\n content: \"\";\n}\n.fa-file-invoice:before {\n content: \"\";\n}\n.fa-file-invoice-dollar:before {\n content: \"\";\n}\n.fa-file-medical:before {\n content: \"\";\n}\n.fa-file-medical-alt:before {\n content: \"\";\n}\n.fa-file-pdf:before {\n content: \"\";\n}\n.fa-file-powerpoint:before {\n content: \"\";\n}\n.fa-file-prescription:before {\n content: \"\";\n}\n.fa-file-signature:before {\n content: \"\";\n}\n.fa-file-upload:before {\n content: \"\";\n}\n.fa-file-video:before {\n content: \"\";\n}\n.fa-file-word:before {\n content: \"\";\n}\n.fa-fill:before {\n content: \"\";\n}\n.fa-fill-drip:before {\n content: \"\";\n}\n.fa-film:before {\n content: \"\";\n}\n.fa-filter:before {\n content: \"\";\n}\n.fa-fingerprint:before {\n content: \"\";\n}\n.fa-fire:before {\n content: \"\";\n}\n.fa-fire-alt:before {\n content: \"\";\n}\n.fa-fire-extinguisher:before {\n content: \"\";\n}\n.fa-firefox:before {\n content: \"\";\n}\n.fa-firefox-browser:before {\n content: \"\";\n}\n.fa-first-aid:before {\n content: \"\";\n}\n.fa-first-order:before {\n content: \"\";\n}\n.fa-first-order-alt:before {\n content: \"\";\n}\n.fa-firstdraft:before {\n content: \"\";\n}\n.fa-fish:before {\n content: \"\";\n}\n.fa-fist-raised:before {\n content: \"\";\n}\n.fa-flag:before {\n content: \"\";\n}\n.fa-flag-checkered:before {\n content: \"\";\n}\n.fa-flag-usa:before {\n content: \"\";\n}\n.fa-flask:before {\n content: \"\";\n}\n.fa-flickr:before {\n content: \"\";\n}\n.fa-flipboard:before {\n content: \"\";\n}\n.fa-flushed:before {\n content: \"\";\n}\n.fa-fly:before {\n content: \"\";\n}\n.fa-folder:before {\n content: \"\";\n}\n.fa-folder-minus:before {\n content: \"\";\n}\n.fa-folder-open:before {\n content: \"\";\n}\n.fa-folder-plus:before {\n content: \"\";\n}\n.fa-font:before {\n content: \"\";\n}\n.fa-font-awesome:before {\n content: \"\";\n}\n.fa-font-awesome-alt:before {\n content: \"\";\n}\n.fa-font-awesome-flag:before {\n content: \"\";\n}\n.fa-font-awesome-logo-full:before {\n content: \"\";\n}\n.fa-fonticons:before {\n content: \"\";\n}\n.fa-fonticons-fi:before {\n content: \"\";\n}\n.fa-football-ball:before {\n content: \"\";\n}\n.fa-fort-awesome:before {\n content: \"\";\n}\n.fa-fort-awesome-alt:before {\n content: \"\";\n}\n.fa-forumbee:before {\n content: \"\";\n}\n.fa-forward:before {\n content: \"\";\n}\n.fa-foursquare:before {\n content: \"\";\n}\n.fa-free-code-camp:before {\n content: \"\";\n}\n.fa-freebsd:before {\n content: \"\";\n}\n.fa-frog:before {\n content: \"\";\n}\n.fa-frown:before {\n content: \"\";\n}\n.fa-frown-open:before {\n content: \"\";\n}\n.fa-fulcrum:before {\n content: \"\";\n}\n.fa-funnel-dollar:before {\n content: \"\";\n}\n.fa-futbol:before {\n content: \"\";\n}\n.fa-galactic-republic:before {\n content: \"\";\n}\n.fa-galactic-senate:before {\n content: \"\";\n}\n.fa-gamepad:before {\n content: \"\";\n}\n.fa-gas-pump:before {\n content: \"\";\n}\n.fa-gavel:before {\n content: \"\";\n}\n.fa-gem:before {\n content: \"\";\n}\n.fa-genderless:before {\n content: \"\";\n}\n.fa-get-pocket:before {\n content: \"\";\n}\n.fa-gg:before {\n content: \"\";\n}\n.fa-gg-circle:before {\n content: \"\";\n}\n.fa-ghost:before {\n content: \"\";\n}\n.fa-gift:before {\n content: \"\";\n}\n.fa-gifts:before {\n content: \"\";\n}\n.fa-git:before {\n content: \"\";\n}\n.fa-git-alt:before {\n content: \"\";\n}\n.fa-git-square:before {\n content: \"\";\n}\n.fa-github:before {\n content: \"\";\n}\n.fa-github-alt:before {\n content: \"\";\n}\n.fa-github-square:before {\n content: \"\";\n}\n.fa-gitkraken:before {\n content: \"\";\n}\n.fa-gitlab:before {\n content: \"\";\n}\n.fa-gitter:before {\n content: \"\";\n}\n.fa-glass-cheers:before {\n content: \"\";\n}\n.fa-glass-martini:before {\n content: \"\";\n}\n.fa-glass-martini-alt:before {\n content: \"\";\n}\n.fa-glass-whiskey:before {\n content: \"\";\n}\n.fa-glasses:before {\n content: \"\";\n}\n.fa-glide:before {\n content: \"\";\n}\n.fa-glide-g:before {\n content: \"\";\n}\n.fa-globe:before {\n content: \"\";\n}\n.fa-globe-africa:before {\n content: \"\";\n}\n.fa-globe-americas:before {\n content: \"\";\n}\n.fa-globe-asia:before {\n content: \"\";\n}\n.fa-globe-europe:before {\n content: \"\";\n}\n.fa-gofore:before {\n content: \"\";\n}\n.fa-golf-ball:before {\n content: \"\";\n}\n.fa-goodreads:before {\n content: \"\";\n}\n.fa-goodreads-g:before {\n content: \"\";\n}\n.fa-google:before {\n content: \"\";\n}\n.fa-google-drive:before {\n content: \"\";\n}\n.fa-google-pay:before {\n content: \"\";\n}\n.fa-google-play:before {\n content: \"\";\n}\n.fa-google-plus:before {\n content: \"\";\n}\n.fa-google-plus-g:before {\n content: \"\";\n}\n.fa-google-plus-square:before {\n content: \"\";\n}\n.fa-google-wallet:before {\n content: \"\";\n}\n.fa-gopuram:before {\n content: \"\";\n}\n.fa-graduation-cap:before {\n content: \"\";\n}\n.fa-gratipay:before {\n content: \"\";\n}\n.fa-grav:before {\n content: \"\";\n}\n.fa-greater-than:before {\n content: \"\";\n}\n.fa-greater-than-equal:before {\n content: \"\";\n}\n.fa-grimace:before {\n content: \"\";\n}\n.fa-grin:before {\n content: \"\";\n}\n.fa-grin-alt:before {\n content: \"\";\n}\n.fa-grin-beam:before {\n content: \"\";\n}\n.fa-grin-beam-sweat:before {\n content: \"\";\n}\n.fa-grin-hearts:before {\n content: \"\";\n}\n.fa-grin-squint:before {\n content: \"\";\n}\n.fa-grin-squint-tears:before {\n content: \"\";\n}\n.fa-grin-stars:before {\n content: \"\";\n}\n.fa-grin-tears:before {\n content: \"\";\n}\n.fa-grin-tongue:before {\n content: \"\";\n}\n.fa-grin-tongue-squint:before {\n content: \"\";\n}\n.fa-grin-tongue-wink:before {\n content: \"\";\n}\n.fa-grin-wink:before {\n content: \"\";\n}\n.fa-grip-horizontal:before {\n content: \"\";\n}\n.fa-grip-lines:before {\n content: \"\";\n}\n.fa-grip-lines-vertical:before {\n content: \"\";\n}\n.fa-grip-vertical:before {\n content: \"\";\n}\n.fa-gripfire:before {\n content: \"\";\n}\n.fa-grunt:before {\n content: \"\";\n}\n.fa-guilded:before {\n content: \"\";\n}\n.fa-guitar:before {\n content: \"\";\n}\n.fa-gulp:before {\n content: \"\";\n}\n.fa-h-square:before {\n content: \"\";\n}\n.fa-hacker-news:before {\n content: \"\";\n}\n.fa-hacker-news-square:before {\n content: \"\";\n}\n.fa-hackerrank:before {\n content: \"\";\n}\n.fa-hamburger:before {\n content: \"\";\n}\n.fa-hammer:before {\n content: \"\";\n}\n.fa-hamsa:before {\n content: \"\";\n}\n.fa-hand-holding:before {\n content: \"\";\n}\n.fa-hand-holding-heart:before {\n content: \"\";\n}\n.fa-hand-holding-medical:before {\n content: \"\";\n}\n.fa-hand-holding-usd:before {\n content: \"\";\n}\n.fa-hand-holding-water:before {\n content: \"\";\n}\n.fa-hand-lizard:before {\n content: \"\";\n}\n.fa-hand-middle-finger:before {\n content: \"\";\n}\n.fa-hand-paper:before {\n content: \"\";\n}\n.fa-hand-peace:before {\n content: \"\";\n}\n.fa-hand-point-down:before {\n content: \"\";\n}\n.fa-hand-point-left:before {\n content: \"\";\n}\n.fa-hand-point-right:before {\n content: \"\";\n}\n.fa-hand-point-up:before {\n content: \"\";\n}\n.fa-hand-pointer:before {\n content: \"\";\n}\n.fa-hand-rock:before {\n content: \"\";\n}\n.fa-hand-scissors:before {\n content: \"\";\n}\n.fa-hand-sparkles:before {\n content: \"\";\n}\n.fa-hand-spock:before {\n content: \"\";\n}\n.fa-hands:before {\n content: \"\";\n}\n.fa-hands-helping:before {\n content: \"\";\n}\n.fa-hands-wash:before {\n content: \"\";\n}\n.fa-handshake:before {\n content: \"\";\n}\n.fa-handshake-alt-slash:before {\n content: \"\";\n}\n.fa-handshake-slash:before {\n content: \"\";\n}\n.fa-hanukiah:before {\n content: \"\";\n}\n.fa-hard-hat:before {\n content: \"\";\n}\n.fa-hashtag:before {\n content: \"\";\n}\n.fa-hat-cowboy:before {\n content: \"\";\n}\n.fa-hat-cowboy-side:before {\n content: \"\";\n}\n.fa-hat-wizard:before {\n content: \"\";\n}\n.fa-hdd:before {\n content: \"\";\n}\n.fa-head-side-cough:before {\n content: \"\";\n}\n.fa-head-side-cough-slash:before {\n content: \"\";\n}\n.fa-head-side-mask:before {\n content: \"\";\n}\n.fa-head-side-virus:before {\n content: \"\";\n}\n.fa-heading:before {\n content: \"\";\n}\n.fa-headphones:before {\n content: \"\";\n}\n.fa-headphones-alt:before {\n content: \"\";\n}\n.fa-headset:before {\n content: \"\";\n}\n.fa-heart:before {\n content: \"\";\n}\n.fa-heart-broken:before {\n content: \"\";\n}\n.fa-heartbeat:before {\n content: \"\";\n}\n.fa-helicopter:before {\n content: \"\";\n}\n.fa-highlighter:before {\n content: \"\";\n}\n.fa-hiking:before {\n content: \"\";\n}\n.fa-hippo:before {\n content: \"\";\n}\n.fa-hips:before {\n content: \"\";\n}\n.fa-hire-a-helper:before {\n content: \"\";\n}\n.fa-history:before {\n content: \"\";\n}\n.fa-hive:before {\n content: \"\";\n}\n.fa-hockey-puck:before {\n content: \"\";\n}\n.fa-holly-berry:before {\n content: \"\";\n}\n.fa-home:before {\n content: \"\";\n}\n.fa-hooli:before {\n content: \"\";\n}\n.fa-hornbill:before {\n content: \"\";\n}\n.fa-horse:before {\n content: \"\";\n}\n.fa-horse-head:before {\n content: \"\";\n}\n.fa-hospital:before {\n content: \"\";\n}\n.fa-hospital-alt:before {\n content: \"\";\n}\n.fa-hospital-symbol:before {\n content: \"\";\n}\n.fa-hospital-user:before {\n content: \"\";\n}\n.fa-hot-tub:before {\n content: \"\";\n}\n.fa-hotdog:before {\n content: \"\";\n}\n.fa-hotel:before {\n content: \"\";\n}\n.fa-hotjar:before {\n content: \"\";\n}\n.fa-hourglass:before {\n content: \"\";\n}\n.fa-hourglass-end:before {\n content: \"\";\n}\n.fa-hourglass-half:before {\n content: \"\";\n}\n.fa-hourglass-start:before {\n content: \"\";\n}\n.fa-house-damage:before {\n content: \"\";\n}\n.fa-house-user:before {\n content: \"\";\n}\n.fa-houzz:before {\n content: \"\";\n}\n.fa-hryvnia:before {\n content: \"\";\n}\n.fa-html5:before {\n content: \"\";\n}\n.fa-hubspot:before {\n content: \"\";\n}\n.fa-i-cursor:before {\n content: \"\";\n}\n.fa-ice-cream:before {\n content: \"\";\n}\n.fa-icicles:before {\n content: \"\";\n}\n.fa-icons:before {\n content: \"\";\n}\n.fa-id-badge:before {\n content: \"\";\n}\n.fa-id-card:before {\n content: \"\";\n}\n.fa-id-card-alt:before {\n content: \"\";\n}\n.fa-ideal:before {\n content: \"\";\n}\n.fa-igloo:before {\n content: \"\";\n}\n.fa-image:before {\n content: \"\";\n}\n.fa-images:before {\n content: \"\";\n}\n.fa-imdb:before {\n content: \"\";\n}\n.fa-inbox:before {\n content: \"\";\n}\n.fa-indent:before {\n content: \"\";\n}\n.fa-industry:before {\n content: \"\";\n}\n.fa-infinity:before {\n content: \"\";\n}\n.fa-info:before {\n content: \"\";\n}\n.fa-info-circle:before {\n content: \"\";\n}\n.fa-innosoft:before {\n content: \"\";\n}\n.fa-instagram:before {\n content: \"\";\n}\n.fa-instagram-square:before {\n content: \"\";\n}\n.fa-instalod:before {\n content: \"\";\n}\n.fa-intercom:before {\n content: \"\";\n}\n.fa-internet-explorer:before {\n content: \"\";\n}\n.fa-invision:before {\n content: \"\";\n}\n.fa-ioxhost:before {\n content: \"\";\n}\n.fa-italic:before {\n content: \"\";\n}\n.fa-itch-io:before {\n content: \"\";\n}\n.fa-itunes:before {\n content: \"\";\n}\n.fa-itunes-note:before {\n content: \"\";\n}\n.fa-java:before {\n content: \"\";\n}\n.fa-jedi:before {\n content: \"\";\n}\n.fa-jedi-order:before {\n content: \"\";\n}\n.fa-jenkins:before {\n content: \"\";\n}\n.fa-jira:before {\n content: \"\";\n}\n.fa-joget:before {\n content: \"\";\n}\n.fa-joint:before {\n content: \"\";\n}\n.fa-joomla:before {\n content: \"\";\n}\n.fa-journal-whills:before {\n content: \"\";\n}\n.fa-js:before {\n content: \"\";\n}\n.fa-js-square:before {\n content: \"\";\n}\n.fa-jsfiddle:before {\n content: \"\";\n}\n.fa-kaaba:before {\n content: \"\";\n}\n.fa-kaggle:before {\n content: \"\";\n}\n.fa-key:before {\n content: \"\";\n}\n.fa-keybase:before {\n content: \"\";\n}\n.fa-keyboard:before {\n content: \"\";\n}\n.fa-keycdn:before {\n content: \"\";\n}\n.fa-khanda:before {\n content: \"\";\n}\n.fa-kickstarter:before {\n content: \"\";\n}\n.fa-kickstarter-k:before {\n content: \"\";\n}\n.fa-kiss:before {\n content: \"\";\n}\n.fa-kiss-beam:before {\n content: \"\";\n}\n.fa-kiss-wink-heart:before {\n content: \"\";\n}\n.fa-kiwi-bird:before {\n content: \"\";\n}\n.fa-korvue:before {\n content: \"\";\n}\n.fa-landmark:before {\n content: \"\";\n}\n.fa-language:before {\n content: \"\";\n}\n.fa-laptop:before {\n content: \"\";\n}\n.fa-laptop-code:before {\n content: \"\";\n}\n.fa-laptop-house:before {\n content: \"\";\n}\n.fa-laptop-medical:before {\n content: \"\";\n}\n.fa-laravel:before {\n content: \"\";\n}\n.fa-lastfm:before {\n content: \"\";\n}\n.fa-lastfm-square:before {\n content: \"\";\n}\n.fa-laugh:before {\n content: \"\";\n}\n.fa-laugh-beam:before {\n content: \"\";\n}\n.fa-laugh-squint:before {\n content: \"\";\n}\n.fa-laugh-wink:before {\n content: \"\";\n}\n.fa-layer-group:before {\n content: \"\";\n}\n.fa-leaf:before {\n content: \"\";\n}\n.fa-leanpub:before {\n content: \"\";\n}\n.fa-lemon:before {\n content: \"\";\n}\n.fa-less:before {\n content: \"\";\n}\n.fa-less-than:before {\n content: \"\";\n}\n.fa-less-than-equal:before {\n content: \"\";\n}\n.fa-level-down-alt:before {\n content: \"\";\n}\n.fa-level-up-alt:before {\n content: \"\";\n}\n.fa-life-ring:before {\n content: \"\";\n}\n.fa-lightbulb:before {\n content: \"\";\n}\n.fa-line:before {\n content: \"\";\n}\n.fa-link:before {\n content: \"\";\n}\n.fa-linkedin:before {\n content: \"\";\n}\n.fa-linkedin-in:before {\n content: \"\";\n}\n.fa-linode:before {\n content: \"\";\n}\n.fa-linux:before {\n content: \"\";\n}\n.fa-lira-sign:before {\n content: \"\";\n}\n.fa-list:before {\n content: \"\";\n}\n.fa-list-alt:before {\n content: \"\";\n}\n.fa-list-ol:before {\n content: \"\";\n}\n.fa-list-ul:before {\n content: \"\";\n}\n.fa-location-arrow:before {\n content: \"\";\n}\n.fa-lock:before {\n content: \"\";\n}\n.fa-lock-open:before {\n content: \"\";\n}\n.fa-long-arrow-alt-down:before {\n content: \"\";\n}\n.fa-long-arrow-alt-left:before {\n content: \"\";\n}\n.fa-long-arrow-alt-right:before {\n content: \"\";\n}\n.fa-long-arrow-alt-up:before {\n content: \"\";\n}\n.fa-low-vision:before {\n content: \"\";\n}\n.fa-luggage-cart:before {\n content: \"\";\n}\n.fa-lungs:before {\n content: \"\";\n}\n.fa-lungs-virus:before {\n content: \"\";\n}\n.fa-lyft:before {\n content: \"\";\n}\n.fa-magento:before {\n content: \"\";\n}\n.fa-magic:before {\n content: \"\";\n}\n.fa-magnet:before {\n content: \"\";\n}\n.fa-mail-bulk:before {\n content: \"\";\n}\n.fa-mailchimp:before {\n content: \"\";\n}\n.fa-male:before {\n content: \"\";\n}\n.fa-mandalorian:before {\n content: \"\";\n}\n.fa-map:before {\n content: \"\";\n}\n.fa-map-marked:before {\n content: \"\";\n}\n.fa-map-marked-alt:before {\n content: \"\";\n}\n.fa-map-marker:before {\n content: \"\";\n}\n.fa-map-marker-alt:before {\n content: \"\";\n}\n.fa-map-pin:before {\n content: \"\";\n}\n.fa-map-signs:before {\n content: \"\";\n}\n.fa-markdown:before {\n content: \"\";\n}\n.fa-marker:before {\n content: \"\";\n}\n.fa-mars:before {\n content: \"\";\n}\n.fa-mars-double:before {\n content: \"\";\n}\n.fa-mars-stroke:before {\n content: \"\";\n}\n.fa-mars-stroke-h:before {\n content: \"\";\n}\n.fa-mars-stroke-v:before {\n content: \"\";\n}\n.fa-mask:before {\n content: \"\";\n}\n.fa-mastodon:before {\n content: \"\";\n}\n.fa-maxcdn:before {\n content: \"\";\n}\n.fa-mdb:before {\n content: \"\";\n}\n.fa-medal:before {\n content: \"\";\n}\n.fa-medapps:before {\n content: \"\";\n}\n.fa-medium:before {\n content: \"\";\n}\n.fa-medium-m:before {\n content: \"\";\n}\n.fa-medkit:before {\n content: \"\";\n}\n.fa-medrt:before {\n content: \"\";\n}\n.fa-meetup:before {\n content: \"\";\n}\n.fa-megaport:before {\n content: \"\";\n}\n.fa-meh:before {\n content: \"\";\n}\n.fa-meh-blank:before {\n content: \"\";\n}\n.fa-meh-rolling-eyes:before {\n content: \"\";\n}\n.fa-memory:before {\n content: \"\";\n}\n.fa-mendeley:before {\n content: \"\";\n}\n.fa-menorah:before {\n content: \"\";\n}\n.fa-mercury:before {\n content: \"\";\n}\n.fa-meteor:before {\n content: \"\";\n}\n.fa-microblog:before {\n content: \"\";\n}\n.fa-microchip:before {\n content: \"\";\n}\n.fa-microphone:before {\n content: \"\";\n}\n.fa-microphone-alt:before {\n content: \"\";\n}\n.fa-microphone-alt-slash:before {\n content: \"\";\n}\n.fa-microphone-slash:before {\n content: \"\";\n}\n.fa-microscope:before {\n content: \"\";\n}\n.fa-microsoft:before {\n content: \"\";\n}\n.fa-minus:before {\n content: \"\";\n}\n.fa-minus-circle:before {\n content: \"\";\n}\n.fa-minus-square:before {\n content: \"\";\n}\n.fa-mitten:before {\n content: \"\";\n}\n.fa-mix:before {\n content: \"\";\n}\n.fa-mixcloud:before {\n content: \"\";\n}\n.fa-mixer:before {\n content: \"\";\n}\n.fa-mizuni:before {\n content: \"\";\n}\n.fa-mobile:before {\n content: \"\";\n}\n.fa-mobile-alt:before {\n content: \"\";\n}\n.fa-modx:before {\n content: \"\";\n}\n.fa-monero:before {\n content: \"\";\n}\n.fa-money-bill:before {\n content: \"\";\n}\n.fa-money-bill-alt:before {\n content: \"\";\n}\n.fa-money-bill-wave:before {\n content: \"\";\n}\n.fa-money-bill-wave-alt:before {\n content: \"\";\n}\n.fa-money-check:before {\n content: \"\";\n}\n.fa-money-check-alt:before {\n content: \"\";\n}\n.fa-monument:before {\n content: \"\";\n}\n.fa-moon:before {\n content: \"\";\n}\n.fa-mortar-pestle:before {\n content: \"\";\n}\n.fa-mosque:before {\n content: \"\";\n}\n.fa-motorcycle:before {\n content: \"\";\n}\n.fa-mountain:before {\n content: \"\";\n}\n.fa-mouse:before {\n content: \"\";\n}\n.fa-mouse-pointer:before {\n content: \"\";\n}\n.fa-mug-hot:before {\n content: \"\";\n}\n.fa-music:before {\n content: \"\";\n}\n.fa-napster:before {\n content: \"\";\n}\n.fa-neos:before {\n content: \"\";\n}\n.fa-network-wired:before {\n content: \"\";\n}\n.fa-neuter:before {\n content: \"\";\n}\n.fa-newspaper:before {\n content: \"\";\n}\n.fa-nimblr:before {\n content: \"\";\n}\n.fa-node:before {\n content: \"\";\n}\n.fa-node-js:before {\n content: \"\";\n}\n.fa-not-equal:before {\n content: \"\";\n}\n.fa-notes-medical:before {\n content: \"\";\n}\n.fa-npm:before {\n content: \"\";\n}\n.fa-ns8:before {\n content: \"\";\n}\n.fa-nutritionix:before {\n content: \"\";\n}\n.fa-object-group:before {\n content: \"\";\n}\n.fa-object-ungroup:before {\n content: \"\";\n}\n.fa-octopus-deploy:before {\n content: \"\";\n}\n.fa-odnoklassniki:before {\n content: \"\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\";\n}\n.fa-oil-can:before {\n content: \"\";\n}\n.fa-old-republic:before {\n content: \"\";\n}\n.fa-om:before {\n content: \"\";\n}\n.fa-opencart:before {\n content: \"\";\n}\n.fa-openid:before {\n content: \"\";\n}\n.fa-opera:before {\n content: \"\";\n}\n.fa-optin-monster:before {\n content: \"\";\n}\n.fa-orcid:before {\n content: \"\";\n}\n.fa-osi:before {\n content: \"\";\n}\n.fa-otter:before {\n content: \"\";\n}\n.fa-outdent:before {\n content: \"\";\n}\n.fa-page4:before {\n content: \"\";\n}\n.fa-pagelines:before {\n content: \"\";\n}\n.fa-pager:before {\n content: \"\";\n}\n.fa-paint-brush:before {\n content: \"\";\n}\n.fa-paint-roller:before {\n content: \"\";\n}\n.fa-palette:before {\n content: \"\";\n}\n.fa-palfed:before {\n content: \"\";\n}\n.fa-pallet:before {\n content: \"\";\n}\n.fa-paper-plane:before {\n content: \"\";\n}\n.fa-paperclip:before {\n content: \"\";\n}\n.fa-parachute-box:before {\n content: \"\";\n}\n.fa-paragraph:before {\n content: \"\";\n}\n.fa-parking:before {\n content: \"\";\n}\n.fa-passport:before {\n content: \"\";\n}\n.fa-pastafarianism:before {\n content: \"\";\n}\n.fa-paste:before {\n content: \"\";\n}\n.fa-patreon:before {\n content: \"\";\n}\n.fa-pause:before {\n content: \"\";\n}\n.fa-pause-circle:before {\n content: \"\";\n}\n.fa-paw:before {\n content: \"\";\n}\n.fa-paypal:before {\n content: \"\";\n}\n.fa-peace:before {\n content: \"\";\n}\n.fa-pen:before {\n content: \"\";\n}\n.fa-pen-alt:before {\n content: \"\";\n}\n.fa-pen-fancy:before {\n content: \"\";\n}\n.fa-pen-nib:before {\n content: \"\";\n}\n.fa-pen-square:before {\n content: \"\";\n}\n.fa-pencil-alt:before {\n content: \"\";\n}\n.fa-pencil-ruler:before {\n content: \"\";\n}\n.fa-penny-arcade:before {\n content: \"\";\n}\n.fa-people-arrows:before {\n content: \"\";\n}\n.fa-people-carry:before {\n content: \"\";\n}\n.fa-pepper-hot:before {\n content: \"\";\n}\n.fa-perbyte:before {\n content: \"\";\n}\n.fa-percent:before {\n content: \"\";\n}\n.fa-percentage:before {\n content: \"\";\n}\n.fa-periscope:before {\n content: \"\";\n}\n.fa-person-booth:before {\n content: \"\";\n}\n.fa-phabricator:before {\n content: \"\";\n}\n.fa-phoenix-framework:before {\n content: \"\";\n}\n.fa-phoenix-squadron:before {\n content: \"\";\n}\n.fa-phone:before {\n content: \"\";\n}\n.fa-phone-alt:before {\n content: \"\";\n}\n.fa-phone-slash:before {\n content: \"\";\n}\n.fa-phone-square:before {\n content: \"\";\n}\n.fa-phone-square-alt:before {\n content: \"\";\n}\n.fa-phone-volume:before {\n content: \"\";\n}\n.fa-photo-video:before {\n content: \"\";\n}\n.fa-php:before {\n content: \"\";\n}\n.fa-pied-piper:before {\n content: \"\";\n}\n.fa-pied-piper-alt:before {\n content: \"\";\n}\n.fa-pied-piper-hat:before {\n content: \"\";\n}\n.fa-pied-piper-pp:before {\n content: \"\";\n}\n.fa-pied-piper-square:before {\n content: \"\";\n}\n.fa-piggy-bank:before {\n content: \"\";\n}\n.fa-pills:before {\n content: \"\";\n}\n.fa-pinterest:before {\n content: \"\";\n}\n.fa-pinterest-p:before {\n content: \"\";\n}\n.fa-pinterest-square:before {\n content: \"\";\n}\n.fa-pizza-slice:before {\n content: \"\";\n}\n.fa-place-of-worship:before {\n content: \"\";\n}\n.fa-plane:before {\n content: \"\";\n}\n.fa-plane-arrival:before {\n content: \"\";\n}\n.fa-plane-departure:before {\n content: \"\";\n}\n.fa-plane-slash:before {\n content: \"\";\n}\n.fa-play:before {\n content: \"\";\n}\n.fa-play-circle:before {\n content: \"\";\n}\n.fa-playstation:before {\n content: \"\";\n}\n.fa-plug:before {\n content: \"\";\n}\n.fa-plus:before {\n content: \"\";\n}\n.fa-plus-circle:before {\n content: \"\";\n}\n.fa-plus-square:before {\n content: \"\";\n}\n.fa-podcast:before {\n content: \"\";\n}\n.fa-poll:before {\n content: \"\";\n}\n.fa-poll-h:before {\n content: \"\";\n}\n.fa-poo:before {\n content: \"\";\n}\n.fa-poo-storm:before {\n content: \"\";\n}\n.fa-poop:before {\n content: \"\";\n}\n.fa-portrait:before {\n content: \"\";\n}\n.fa-pound-sign:before {\n content: \"\";\n}\n.fa-power-off:before {\n content: \"\";\n}\n.fa-pray:before {\n content: \"\";\n}\n.fa-praying-hands:before {\n content: \"\";\n}\n.fa-prescription:before {\n content: \"\";\n}\n.fa-prescription-bottle:before {\n content: \"\";\n}\n.fa-prescription-bottle-alt:before {\n content: \"\";\n}\n.fa-print:before {\n content: \"\";\n}\n.fa-procedures:before {\n content: \"\";\n}\n.fa-product-hunt:before {\n content: \"\";\n}\n.fa-project-diagram:before {\n content: \"\";\n}\n.fa-pump-medical:before {\n content: \"\";\n}\n.fa-pump-soap:before {\n content: \"\";\n}\n.fa-pushed:before {\n content: \"\";\n}\n.fa-puzzle-piece:before {\n content: \"\";\n}\n.fa-python:before {\n content: \"\";\n}\n.fa-qq:before {\n content: \"\";\n}\n.fa-qrcode:before {\n content: \"\";\n}\n.fa-question:before {\n content: \"\";\n}\n.fa-question-circle:before {\n content: \"\";\n}\n.fa-quidditch:before {\n content: \"\";\n}\n.fa-quinscape:before {\n content: \"\";\n}\n.fa-quora:before {\n content: \"\";\n}\n.fa-quote-left:before {\n content: \"\";\n}\n.fa-quote-right:before {\n content: \"\";\n}\n.fa-quran:before {\n content: \"\";\n}\n.fa-r-project:before {\n content: \"\";\n}\n.fa-radiation:before {\n content: \"\";\n}\n.fa-radiation-alt:before {\n content: \"\";\n}\n.fa-rainbow:before {\n content: \"\";\n}\n.fa-random:before {\n content: \"\";\n}\n.fa-raspberry-pi:before {\n content: \"\";\n}\n.fa-ravelry:before {\n content: \"\";\n}\n.fa-react:before {\n content: \"\";\n}\n.fa-reacteurope:before {\n content: \"\";\n}\n.fa-readme:before {\n content: \"\";\n}\n.fa-rebel:before {\n content: \"\";\n}\n.fa-receipt:before {\n content: \"\";\n}\n.fa-record-vinyl:before {\n content: \"\";\n}\n.fa-recycle:before {\n content: \"\";\n}\n.fa-red-river:before {\n content: \"\";\n}\n.fa-reddit:before {\n content: \"\";\n}\n.fa-reddit-alien:before {\n content: \"\";\n}\n.fa-reddit-square:before {\n content: \"\";\n}\n.fa-redhat:before {\n content: \"\";\n}\n.fa-redo:before {\n content: \"\";\n}\n.fa-redo-alt:before {\n content: \"\";\n}\n.fa-registered:before {\n content: \"\";\n}\n.fa-remove-format:before {\n content: \"\";\n}\n.fa-renren:before {\n content: \"\";\n}\n.fa-reply:before {\n content: \"\";\n}\n.fa-reply-all:before {\n content: \"\";\n}\n.fa-replyd:before {\n content: \"\";\n}\n.fa-republican:before {\n content: \"\";\n}\n.fa-researchgate:before {\n content: \"\";\n}\n.fa-resolving:before {\n content: \"\";\n}\n.fa-restroom:before {\n content: \"\";\n}\n.fa-retweet:before {\n content: \"\";\n}\n.fa-rev:before {\n content: \"\";\n}\n.fa-ribbon:before {\n content: \"\";\n}\n.fa-ring:before {\n content: \"\";\n}\n.fa-road:before {\n content: \"\";\n}\n.fa-robot:before {\n content: \"\";\n}\n.fa-rocket:before {\n content: \"\";\n}\n.fa-rocketchat:before {\n content: \"\";\n}\n.fa-rockrms:before {\n content: \"\";\n}\n.fa-route:before {\n content: \"\";\n}\n.fa-rss:before {\n content: \"\";\n}\n.fa-rss-square:before {\n content: \"\";\n}\n.fa-ruble-sign:before {\n content: \"\";\n}\n.fa-ruler:before {\n content: \"\";\n}\n.fa-ruler-combined:before {\n content: \"\";\n}\n.fa-ruler-horizontal:before {\n content: \"\";\n}\n.fa-ruler-vertical:before {\n content: \"\";\n}\n.fa-running:before {\n content: \"\";\n}\n.fa-rupee-sign:before {\n content: \"\";\n}\n.fa-rust:before {\n content: \"\";\n}\n.fa-sad-cry:before {\n content: \"\";\n}\n.fa-sad-tear:before {\n content: \"\";\n}\n.fa-safari:before {\n content: \"\";\n}\n.fa-salesforce:before {\n content: \"\";\n}\n.fa-sass:before {\n content: \"\";\n}\n.fa-satellite:before {\n content: \"\";\n}\n.fa-satellite-dish:before {\n content: \"\";\n}\n.fa-save:before {\n content: \"\";\n}\n.fa-schlix:before {\n content: \"\";\n}\n.fa-school:before {\n content: \"\";\n}\n.fa-screwdriver:before {\n content: \"\";\n}\n.fa-scribd:before {\n content: \"\";\n}\n.fa-scroll:before {\n content: \"\";\n}\n.fa-sd-card:before {\n content: \"\";\n}\n.fa-search:before {\n content: \"\";\n}\n.fa-search-dollar:before {\n content: \"\";\n}\n.fa-search-location:before {\n content: \"\";\n}\n.fa-search-minus:before {\n content: \"\";\n}\n.fa-search-plus:before {\n content: \"\";\n}\n.fa-searchengin:before {\n content: \"\";\n}\n.fa-seedling:before {\n content: \"\";\n}\n.fa-sellcast:before {\n content: \"\";\n}\n.fa-sellsy:before {\n content: \"\";\n}\n.fa-server:before {\n content: \"\";\n}\n.fa-servicestack:before {\n content: \"\";\n}\n.fa-shapes:before {\n content: \"\";\n}\n.fa-share:before {\n content: \"\";\n}\n.fa-share-alt:before {\n content: \"\";\n}\n.fa-share-alt-square:before {\n content: \"\";\n}\n.fa-share-square:before {\n content: \"\";\n}\n.fa-shekel-sign:before {\n content: \"\";\n}\n.fa-shield-alt:before {\n content: \"\";\n}\n.fa-shield-virus:before {\n content: \"\";\n}\n.fa-ship:before {\n content: \"\";\n}\n.fa-shipping-fast:before {\n content: \"\";\n}\n.fa-shirtsinbulk:before {\n content: \"\";\n}\n.fa-shoe-prints:before {\n content: \"\";\n}\n.fa-shopify:before {\n content: \"\";\n}\n.fa-shopping-bag:before {\n content: \"\";\n}\n.fa-shopping-basket:before {\n content: \"\";\n}\n.fa-shopping-cart:before {\n content: \"\";\n}\n.fa-shopware:before {\n content: \"\";\n}\n.fa-shower:before {\n content: \"\";\n}\n.fa-shuttle-van:before {\n content: \"\";\n}\n.fa-sign:before {\n content: \"\";\n}\n.fa-sign-in-alt:before {\n content: \"\";\n}\n.fa-sign-language:before {\n content: \"\";\n}\n.fa-sign-out-alt:before {\n content: \"\";\n}\n.fa-signal:before {\n content: \"\";\n}\n.fa-signature:before {\n content: \"\";\n}\n.fa-sim-card:before {\n content: \"\";\n}\n.fa-simplybuilt:before {\n content: \"\";\n}\n.fa-sink:before {\n content: \"\";\n}\n.fa-sistrix:before {\n content: \"\";\n}\n.fa-sitemap:before {\n content: \"\";\n}\n.fa-sith:before {\n content: \"\";\n}\n.fa-skating:before {\n content: \"\";\n}\n.fa-sketch:before {\n content: \"\";\n}\n.fa-skiing:before {\n content: \"\";\n}\n.fa-skiing-nordic:before {\n content: \"\";\n}\n.fa-skull:before {\n content: \"\";\n}\n.fa-skull-crossbones:before {\n content: \"\";\n}\n.fa-skyatlas:before {\n content: \"\";\n}\n.fa-skype:before {\n content: \"\";\n}\n.fa-slack:before {\n content: \"\";\n}\n.fa-slack-hash:before {\n content: \"\";\n}\n.fa-slash:before {\n content: \"\";\n}\n.fa-sleigh:before {\n content: \"\";\n}\n.fa-sliders-h:before {\n content: \"\";\n}\n.fa-slideshare:before {\n content: \"\";\n}\n.fa-smile:before {\n content: \"\";\n}\n.fa-smile-beam:before {\n content: \"\";\n}\n.fa-smile-wink:before {\n content: \"\";\n}\n.fa-smog:before {\n content: \"\";\n}\n.fa-smoking:before {\n content: \"\";\n}\n.fa-smoking-ban:before {\n content: \"\";\n}\n.fa-sms:before {\n content: \"\";\n}\n.fa-snapchat:before {\n content: \"\";\n}\n.fa-snapchat-ghost:before {\n content: \"\";\n}\n.fa-snapchat-square:before {\n content: \"\";\n}\n.fa-snowboarding:before {\n content: \"\";\n}\n.fa-snowflake:before {\n content: \"\";\n}\n.fa-snowman:before {\n content: \"\";\n}\n.fa-snowplow:before {\n content: \"\";\n}\n.fa-soap:before {\n content: \"\";\n}\n.fa-socks:before {\n content: \"\";\n}\n.fa-solar-panel:before {\n content: \"\";\n}\n.fa-sort:before {\n content: \"\";\n}\n.fa-sort-alpha-down:before {\n content: \"\";\n}\n.fa-sort-alpha-down-alt:before {\n content: \"\";\n}\n.fa-sort-alpha-up:before {\n content: \"\";\n}\n.fa-sort-alpha-up-alt:before {\n content: \"\";\n}\n.fa-sort-amount-down:before {\n content: \"\";\n}\n.fa-sort-amount-down-alt:before {\n content: \"\";\n}\n.fa-sort-amount-up:before {\n content: \"\";\n}\n.fa-sort-amount-up-alt:before {\n content: \"\";\n}\n.fa-sort-down:before {\n content: \"\";\n}\n.fa-sort-numeric-down:before {\n content: \"\";\n}\n.fa-sort-numeric-down-alt:before {\n content: \"\";\n}\n.fa-sort-numeric-up:before {\n content: \"\";\n}\n.fa-sort-numeric-up-alt:before {\n content: \"\";\n}\n.fa-sort-up:before {\n content: \"\";\n}\n.fa-soundcloud:before {\n content: \"\";\n}\n.fa-sourcetree:before {\n content: \"\";\n}\n.fa-spa:before {\n content: \"\";\n}\n.fa-space-shuttle:before {\n content: \"\";\n}\n.fa-speakap:before {\n content: \"\";\n}\n.fa-speaker-deck:before {\n content: \"\";\n}\n.fa-spell-check:before {\n content: \"\";\n}\n.fa-spider:before {\n content: \"\";\n}\n.fa-spinner:before {\n content: \"\";\n}\n.fa-splotch:before {\n content: \"\";\n}\n.fa-spotify:before {\n content: \"\";\n}\n.fa-spray-can:before {\n content: \"\";\n}\n.fa-square:before {\n content: \"\";\n}\n.fa-square-full:before {\n content: \"\";\n}\n.fa-square-root-alt:before {\n content: \"\";\n}\n.fa-squarespace:before {\n content: \"\";\n}\n.fa-stack-exchange:before {\n content: \"\";\n}\n.fa-stack-overflow:before {\n content: \"\";\n}\n.fa-stackpath:before {\n content: \"\";\n}\n.fa-stamp:before {\n content: \"\";\n}\n.fa-star:before {\n content: \"\";\n}\n.fa-star-and-crescent:before {\n content: \"\";\n}\n.fa-star-half:before {\n content: \"\";\n}\n.fa-star-half-alt:before {\n content: \"\";\n}\n.fa-star-of-david:before {\n content: \"\";\n}\n.fa-star-of-life:before {\n content: \"\";\n}\n.fa-staylinked:before {\n content: \"\";\n}\n.fa-steam:before {\n content: \"\";\n}\n.fa-steam-square:before {\n content: \"\";\n}\n.fa-steam-symbol:before {\n content: \"\";\n}\n.fa-step-backward:before {\n content: \"\";\n}\n.fa-step-forward:before {\n content: \"\";\n}\n.fa-stethoscope:before {\n content: \"\";\n}\n.fa-sticker-mule:before {\n content: \"\";\n}\n.fa-sticky-note:before {\n content: \"\";\n}\n.fa-stop:before {\n content: \"\";\n}\n.fa-stop-circle:before {\n content: \"\";\n}\n.fa-stopwatch:before {\n content: \"\";\n}\n.fa-stopwatch-20:before {\n content: \"\";\n}\n.fa-store:before {\n content: \"\";\n}\n.fa-store-alt:before {\n content: \"\";\n}\n.fa-store-alt-slash:before {\n content: \"\";\n}\n.fa-store-slash:before {\n content: \"\";\n}\n.fa-strava:before {\n content: \"\";\n}\n.fa-stream:before {\n content: \"\";\n}\n.fa-street-view:before {\n content: \"\";\n}\n.fa-strikethrough:before {\n content: \"\";\n}\n.fa-stripe:before {\n content: \"\";\n}\n.fa-stripe-s:before {\n content: \"\";\n}\n.fa-stroopwafel:before {\n content: \"\";\n}\n.fa-studiovinari:before {\n content: \"\";\n}\n.fa-stumbleupon:before {\n content: \"\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\";\n}\n.fa-subscript:before {\n content: \"\";\n}\n.fa-subway:before {\n content: \"\";\n}\n.fa-suitcase:before {\n content: \"\";\n}\n.fa-suitcase-rolling:before {\n content: \"\";\n}\n.fa-sun:before {\n content: \"\";\n}\n.fa-superpowers:before {\n content: \"\";\n}\n.fa-superscript:before {\n content: \"\";\n}\n.fa-supple:before {\n content: \"\";\n}\n.fa-surprise:before {\n content: \"\";\n}\n.fa-suse:before {\n content: \"\";\n}\n.fa-swatchbook:before {\n content: \"\";\n}\n.fa-swift:before {\n content: \"\";\n}\n.fa-swimmer:before {\n content: \"\";\n}\n.fa-swimming-pool:before {\n content: \"\";\n}\n.fa-symfony:before {\n content: \"\";\n}\n.fa-synagogue:before {\n content: \"\";\n}\n.fa-sync:before {\n content: \"\";\n}\n.fa-sync-alt:before {\n content: \"\";\n}\n.fa-syringe:before {\n content: \"\";\n}\n.fa-table:before {\n content: \"\";\n}\n.fa-table-tennis:before {\n content: \"\";\n}\n.fa-tablet:before {\n content: \"\";\n}\n.fa-tablet-alt:before {\n content: \"\";\n}\n.fa-tablets:before {\n content: \"\";\n}\n.fa-tachometer-alt:before {\n content: \"\";\n}\n.fa-tag:before {\n content: \"\";\n}\n.fa-tags:before {\n content: \"\";\n}\n.fa-tape:before {\n content: \"\";\n}\n.fa-tasks:before {\n content: \"\";\n}\n.fa-taxi:before {\n content: \"\";\n}\n.fa-teamspeak:before {\n content: \"\";\n}\n.fa-teeth:before {\n content: \"\";\n}\n.fa-teeth-open:before {\n content: \"\";\n}\n.fa-telegram:before {\n content: \"\";\n}\n.fa-telegram-plane:before {\n content: \"\";\n}\n.fa-temperature-high:before {\n content: \"\";\n}\n.fa-temperature-low:before {\n content: \"\";\n}\n.fa-tencent-weibo:before {\n content: \"\";\n}\n.fa-tenge:before {\n content: \"\";\n}\n.fa-terminal:before {\n content: \"\";\n}\n.fa-text-height:before {\n content: \"\";\n}\n.fa-text-width:before {\n content: \"\";\n}\n.fa-th:before {\n content: \"\";\n}\n.fa-th-large:before {\n content: \"\";\n}\n.fa-th-list:before {\n content: \"\";\n}\n.fa-the-red-yeti:before {\n content: \"\";\n}\n.fa-theater-masks:before {\n content: \"\";\n}\n.fa-themeco:before {\n content: \"\";\n}\n.fa-themeisle:before {\n content: \"\";\n}\n.fa-thermometer:before {\n content: \"\";\n}\n.fa-thermometer-empty:before {\n content: \"\";\n}\n.fa-thermometer-full:before {\n content: \"\";\n}\n.fa-thermometer-half:before {\n content: \"\";\n}\n.fa-thermometer-quarter:before {\n content: \"\";\n}\n.fa-thermometer-three-quarters:before {\n content: \"\";\n}\n.fa-think-peaks:before {\n content: \"\";\n}\n.fa-thumbs-down:before {\n content: \"\";\n}\n.fa-thumbs-up:before {\n content: \"\";\n}\n.fa-thumbtack:before {\n content: \"\";\n}\n.fa-ticket-alt:before {\n content: \"\";\n}\n.fa-tiktok:before {\n content: \"\";\n}\n.fa-times:before {\n content: \"\";\n}\n.fa-times-circle:before {\n content: \"\";\n}\n.fa-tint:before {\n content: \"\";\n}\n.fa-tint-slash:before {\n content: \"\";\n}\n.fa-tired:before {\n content: \"\";\n}\n.fa-toggle-off:before {\n content: \"\";\n}\n.fa-toggle-on:before {\n content: \"\";\n}\n.fa-toilet:before {\n content: \"\";\n}\n.fa-toilet-paper:before {\n content: \"\";\n}\n.fa-toilet-paper-slash:before {\n content: \"\";\n}\n.fa-toolbox:before {\n content: \"\";\n}\n.fa-tools:before {\n content: \"\";\n}\n.fa-tooth:before {\n content: \"\";\n}\n.fa-torah:before {\n content: \"\";\n}\n.fa-torii-gate:before {\n content: \"\";\n}\n.fa-tractor:before {\n content: \"\";\n}\n.fa-trade-federation:before {\n content: \"\";\n}\n.fa-trademark:before {\n content: \"\";\n}\n.fa-traffic-light:before {\n content: \"\";\n}\n.fa-trailer:before {\n content: \"\";\n}\n.fa-train:before {\n content: \"\";\n}\n.fa-tram:before {\n content: \"\";\n}\n.fa-transgender:before {\n content: \"\";\n}\n.fa-transgender-alt:before {\n content: \"\";\n}\n.fa-trash:before {\n content: \"\";\n}\n.fa-trash-alt:before {\n content: \"\";\n}\n.fa-trash-restore:before {\n content: \"\";\n}\n.fa-trash-restore-alt:before {\n content: \"\";\n}\n.fa-tree:before {\n content: \"\";\n}\n.fa-trello:before {\n content: \"\";\n}\n.fa-tripadvisor:before {\n content: \"\";\n}\n.fa-trophy:before {\n content: \"\";\n}\n.fa-truck:before {\n content: \"\";\n}\n.fa-truck-loading:before {\n content: \"\";\n}\n.fa-truck-monster:before {\n content: \"\";\n}\n.fa-truck-moving:before {\n content: \"\";\n}\n.fa-truck-pickup:before {\n content: \"\";\n}\n.fa-tshirt:before {\n content: \"\";\n}\n.fa-tty:before {\n content: \"\";\n}\n.fa-tumblr:before {\n content: \"\";\n}\n.fa-tumblr-square:before {\n content: \"\";\n}\n.fa-tv:before {\n content: \"\";\n}\n.fa-twitch:before {\n content: \"\";\n}\n.fa-twitter:before {\n content: \"\";\n}\n.fa-twitter-square:before {\n content: \"\";\n}\n.fa-typo3:before {\n content: \"\";\n}\n.fa-uber:before {\n content: \"\";\n}\n.fa-ubuntu:before {\n content: \"\";\n}\n.fa-uikit:before {\n content: \"\";\n}\n.fa-umbraco:before {\n content: \"\";\n}\n.fa-umbrella:before {\n content: \"\";\n}\n.fa-umbrella-beach:before {\n content: \"\";\n}\n.fa-uncharted:before {\n content: \"\";\n}\n.fa-underline:before {\n content: \"\";\n}\n.fa-undo:before {\n content: \"\";\n}\n.fa-undo-alt:before {\n content: \"\";\n}\n.fa-uniregistry:before {\n content: \"\";\n}\n.fa-unity:before {\n content: \"\";\n}\n.fa-universal-access:before {\n content: \"\";\n}\n.fa-university:before {\n content: \"\";\n}\n.fa-unlink:before {\n content: \"\";\n}\n.fa-unlock:before {\n content: \"\";\n}\n.fa-unlock-alt:before {\n content: \"\";\n}\n.fa-unsplash:before {\n content: \"\";\n}\n.fa-untappd:before {\n content: \"\";\n}\n.fa-upload:before {\n content: \"\";\n}\n.fa-ups:before {\n content: \"\";\n}\n.fa-usb:before {\n content: \"\";\n}\n.fa-user:before {\n content: \"\";\n}\n.fa-user-alt:before {\n content: \"\";\n}\n.fa-user-alt-slash:before {\n content: \"\";\n}\n.fa-user-astronaut:before {\n content: \"\";\n}\n.fa-user-check:before {\n content: \"\";\n}\n.fa-user-circle:before {\n content: \"\";\n}\n.fa-user-clock:before {\n content: \"\";\n}\n.fa-user-cog:before {\n content: \"\";\n}\n.fa-user-edit:before {\n content: \"\";\n}\n.fa-user-friends:before {\n content: \"\";\n}\n.fa-user-graduate:before {\n content: \"\";\n}\n.fa-user-injured:before {\n content: \"\";\n}\n.fa-user-lock:before {\n content: \"\";\n}\n.fa-user-md:before {\n content: \"\";\n}\n.fa-user-minus:before {\n content: \"\";\n}\n.fa-user-ninja:before {\n content: \"\";\n}\n.fa-user-nurse:before {\n content: \"\";\n}\n.fa-user-plus:before {\n content: \"\";\n}\n.fa-user-secret:before {\n content: \"\";\n}\n.fa-user-shield:before {\n content: \"\";\n}\n.fa-user-slash:before {\n content: \"\";\n}\n.fa-user-tag:before {\n content: \"\";\n}\n.fa-user-tie:before {\n content: \"\";\n}\n.fa-user-times:before {\n content: \"\";\n}\n.fa-users:before {\n content: \"\";\n}\n.fa-users-cog:before {\n content: \"\";\n}\n.fa-users-slash:before {\n content: \"\";\n}\n.fa-usps:before {\n content: \"\";\n}\n.fa-ussunnah:before {\n content: \"\";\n}\n.fa-utensil-spoon:before {\n content: \"\";\n}\n.fa-utensils:before {\n content: \"\";\n}\n.fa-vaadin:before {\n content: \"\";\n}\n.fa-vector-square:before {\n content: \"\";\n}\n.fa-venus:before {\n content: \"\";\n}\n.fa-venus-double:before {\n content: \"\";\n}\n.fa-venus-mars:before {\n content: \"\";\n}\n.fa-vest:before {\n content: \"\";\n}\n.fa-vest-patches:before {\n content: \"\";\n}\n.fa-viacoin:before {\n content: \"\";\n}\n.fa-viadeo:before {\n content: \"\";\n}\n.fa-viadeo-square:before {\n content: \"\";\n}\n.fa-vial:before {\n content: \"\";\n}\n.fa-vials:before {\n content: \"\";\n}\n.fa-viber:before {\n content: \"\";\n}\n.fa-video:before {\n content: \"\";\n}\n.fa-video-slash:before {\n content: \"\";\n}\n.fa-vihara:before {\n content: \"\";\n}\n.fa-vimeo:before {\n content: \"\";\n}\n.fa-vimeo-square:before {\n content: \"\";\n}\n.fa-vimeo-v:before {\n content: \"\";\n}\n.fa-vine:before {\n content: \"\";\n}\n.fa-virus:before {\n content: \"\";\n}\n.fa-virus-slash:before {\n content: \"\";\n}\n.fa-viruses:before {\n content: \"\";\n}\n.fa-vk:before {\n content: \"\";\n}\n.fa-vnv:before {\n content: \"\";\n}\n.fa-voicemail:before {\n content: \"\";\n}\n.fa-volleyball-ball:before {\n content: \"\";\n}\n.fa-volume-down:before {\n content: \"\";\n}\n.fa-volume-mute:before {\n content: \"\";\n}\n.fa-volume-off:before {\n content: \"\";\n}\n.fa-volume-up:before {\n content: \"\";\n}\n.fa-vote-yea:before {\n content: \"\";\n}\n.fa-vr-cardboard:before {\n content: \"\";\n}\n.fa-vuejs:before {\n content: \"\";\n}\n.fa-walking:before {\n content: \"\";\n}\n.fa-wallet:before {\n content: \"\";\n}\n.fa-warehouse:before {\n content: \"\";\n}\n.fa-watchman-monitoring:before {\n content: \"\";\n}\n.fa-water:before {\n content: \"\";\n}\n.fa-wave-square:before {\n content: \"\";\n}\n.fa-waze:before {\n content: \"\";\n}\n.fa-weebly:before {\n content: \"\";\n}\n.fa-weibo:before {\n content: \"\";\n}\n.fa-weight:before {\n content: \"\";\n}\n.fa-weight-hanging:before {\n content: \"\";\n}\n.fa-weixin:before {\n content: \"\";\n}\n.fa-whatsapp:before {\n content: \"\";\n}\n.fa-whatsapp-square:before {\n content: \"\";\n}\n.fa-wheelchair:before {\n content: \"\";\n}\n.fa-whmcs:before {\n content: \"\";\n}\n.fa-wifi:before {\n content: \"\";\n}\n.fa-wikipedia-w:before {\n content: \"\";\n}\n.fa-wind:before {\n content: \"\";\n}\n.fa-window-close:before {\n content: \"\";\n}\n.fa-window-maximize:before {\n content: \"\";\n}\n.fa-window-minimize:before {\n content: \"\";\n}\n.fa-window-restore:before {\n content: \"\";\n}\n.fa-windows:before {\n content: \"\";\n}\n.fa-wine-bottle:before {\n content: \"\";\n}\n.fa-wine-glass:before {\n content: \"\";\n}\n.fa-wine-glass-alt:before {\n content: \"\";\n}\n.fa-wix:before {\n content: \"\";\n}\n.fa-wizards-of-the-coast:before {\n content: \"\";\n}\n.fa-wodu:before {\n content: \"\";\n}\n.fa-wolf-pack-battalion:before {\n content: \"\";\n}\n.fa-won-sign:before {\n content: \"\";\n}\n.fa-wordpress:before {\n content: \"\";\n}\n.fa-wordpress-simple:before {\n content: \"\";\n}\n.fa-wpbeginner:before {\n content: \"\";\n}\n.fa-wpexplorer:before {\n content: \"\";\n}\n.fa-wpforms:before {\n content: \"\";\n}\n.fa-wpressr:before {\n content: \"\";\n}\n.fa-wrench:before {\n content: \"\";\n}\n.fa-x-ray:before {\n content: \"\";\n}\n.fa-xbox:before {\n content: \"\";\n}\n.fa-xing:before {\n content: \"\";\n}\n.fa-xing-square:before {\n content: \"\";\n}\n.fa-y-combinator:before {\n content: \"\";\n}\n.fa-yahoo:before {\n content: \"\";\n}\n.fa-yammer:before {\n content: \"\";\n}\n.fa-yandex:before {\n content: \"\";\n}\n.fa-yandex-international:before {\n content: \"\";\n}\n.fa-yarn:before {\n content: \"\";\n}\n.fa-yelp:before {\n content: \"\";\n}\n.fa-yen-sign:before {\n content: \"\";\n}\n.fa-yin-yang:before {\n content: \"\";\n}\n.fa-yoast:before {\n content: \"\";\n}\n.fa-youtube:before {\n content: \"\";\n}\n.fa-youtube-square:before {\n content: \"\";\n}\n.fa-zhihu:before {\n content: \"\";\n}\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}","/*!\n * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n font-family: \"Font Awesome 5 Free\";\n font-style: normal;\n font-weight: 900;\n font-display: block;\n src: url('fa-solid-900.eot');\n src: url('fa-solid-900.eot') format(\"embedded-opentype\"), url('fa-solid-900.woff2') format(\"woff2\"), url('fa-solid-900.woff') format(\"woff\"), url('fa-solid-900.ttf') format(\"truetype\"), url('fa-solid-900.svg') format(\"svg\");\n}\n.fa,\n.fas {\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n}","/*!\n * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n font-family: \"Font Awesome 5 Free\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url('fa-regular-400.eot');\n src: url('fa-regular-400.eot') format(\"embedded-opentype\"), url('fa-regular-400.woff2') format(\"woff2\"), url('fa-regular-400.woff') format(\"woff\"), url('fa-regular-400.ttf') format(\"truetype\"), url('fa-regular-400.svg') format(\"svg\");\n}\n.far {\n font-family: \"Font Awesome 5 Free\";\n font-weight: 400;\n}","/*!\n * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n font-family: \"Font Awesome 5 Brands\";\n font-style: normal;\n font-weight: 400;\n font-display: block;\n src: url('fa-brands-400.eot');\n src: url('fa-brands-400.eot') format(\"embedded-opentype\"), url('fa-brands-400.woff2') format(\"woff2\"), url('fa-brands-400.woff') format(\"woff\"), url('fa-brands-400.ttf') format(\"truetype\"), url('fa-brands-400.svg') format(\"svg\");\n}\n.fab {\n font-family: \"Font Awesome 5 Brands\";\n font-weight: 400;\n}","@charset \"UTF-8\";\n/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\narticle,\naside,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection {\n display: block;\n}\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\ndt {\n font-weight: 700;\n}\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\nblockquote {\n margin: 0 0 1rem;\n}\nb,\nstrong {\n font-weight: bolder;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsub {\n bottom: -0.25em;\n}\nsup {\n top: -0.5em;\n}\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\nfigure {\n margin: 0 0 1rem;\n}\nimg {\n vertical-align: middle;\n border-style: none;\n}\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\ntable {\n border-collapse: collapse;\n}\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\nth {\n text-align: inherit;\n}\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\nbutton {\n border-radius: 0;\n}\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\nbutton,\ninput {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nselect {\n word-wrap: normal;\n}\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\nbutton::-moz-focus-inner,\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\ninput[type=radio],\ninput[type=checkbox] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=date],\ninput[type=time],\ninput[type=datetime-local],\ninput[type=month] {\n -webkit-appearance: listbox;\n}\ntextarea {\n overflow: auto;\n resize: vertical;\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\nprogress {\n vertical-align: baseline;\n}\n[type=number]::-webkit-inner-spin-button,\n[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n[type=search] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\noutput {\n display: inline-block;\n}\nsummary {\n display: list-item;\n cursor: pointer;\n}\ntemplate {\n display: none;\n}\n[hidden] {\n display: none !important;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\nh1,\n.h1 {\n font-size: 2.5rem;\n}\nh2,\n.h2 {\n font-size: 2rem;\n}\nh3,\n.h3 {\n font-size: 1.75rem;\n}\nh4,\n.h4 {\n font-size: 1.5rem;\n}\nh5,\n.h5 {\n font-size: 1.25rem;\n}\nh6,\n.h6 {\n font-size: 1rem;\n}\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n.list-inline-item {\n display: inline-block;\n}\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n.blockquote-footer::before {\n content: \"— \";\n}\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n.figure {\n display: inline-block;\n}\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n.container-fluid, .container-xl, .container-lg, .container-md, .container-sm {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n.no-gutters > .col,\n.no-gutters > [class*=col-] {\n padding-right: 0;\n padding-left: 0;\n}\n.col-xl,\n.col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg,\n.col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md,\n.col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm,\n.col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col,\n.col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n.row-cols-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n}\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n.row-cols-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n}\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n.col-1 {\n flex: 0 0 8.3333333333%;\n max-width: 8.3333333333%;\n}\n.col-2 {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n}\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n.col-4 {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n}\n.col-5 {\n flex: 0 0 41.6666666667%;\n max-width: 41.6666666667%;\n}\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n.col-7 {\n flex: 0 0 58.3333333333%;\n max-width: 58.3333333333%;\n}\n.col-8 {\n flex: 0 0 66.6666666667%;\n max-width: 66.6666666667%;\n}\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n.col-10 {\n flex: 0 0 83.3333333333%;\n max-width: 83.3333333333%;\n}\n.col-11 {\n flex: 0 0 91.6666666667%;\n max-width: 91.6666666667%;\n}\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n.order-first {\n order: -1;\n}\n.order-last {\n order: 13;\n}\n.order-0 {\n order: 0;\n}\n.order-1 {\n order: 1;\n}\n.order-2 {\n order: 2;\n}\n.order-3 {\n order: 3;\n}\n.order-4 {\n order: 4;\n}\n.order-5 {\n order: 5;\n}\n.order-6 {\n order: 6;\n}\n.order-7 {\n order: 7;\n}\n.order-8 {\n order: 8;\n}\n.order-9 {\n order: 9;\n}\n.order-10 {\n order: 10;\n}\n.order-11 {\n order: 11;\n}\n.order-12 {\n order: 12;\n}\n.offset-1 {\n margin-left: 8.3333333333%;\n}\n.offset-2 {\n margin-left: 16.6666666667%;\n}\n.offset-3 {\n margin-left: 25%;\n}\n.offset-4 {\n margin-left: 33.3333333333%;\n}\n.offset-5 {\n margin-left: 41.6666666667%;\n}\n.offset-6 {\n margin-left: 50%;\n}\n.offset-7 {\n margin-left: 58.3333333333%;\n}\n.offset-8 {\n margin-left: 66.6666666667%;\n}\n.offset-9 {\n margin-left: 75%;\n}\n.offset-10 {\n margin-left: 83.3333333333%;\n}\n.offset-11 {\n margin-left: 91.6666666667%;\n}\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .row-cols-sm-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n\n .row-cols-sm-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n\n .col-sm-1 {\n flex: 0 0 8.3333333333%;\n max-width: 8.3333333333%;\n }\n\n .col-sm-2 {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .col-sm-4 {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .col-sm-5 {\n flex: 0 0 41.6666666667%;\n max-width: 41.6666666667%;\n }\n\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .col-sm-7 {\n flex: 0 0 58.3333333333%;\n max-width: 58.3333333333%;\n }\n\n .col-sm-8 {\n flex: 0 0 66.6666666667%;\n max-width: 66.6666666667%;\n }\n\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n\n .col-sm-10 {\n flex: 0 0 83.3333333333%;\n max-width: 83.3333333333%;\n }\n\n .col-sm-11 {\n flex: 0 0 91.6666666667%;\n max-width: 91.6666666667%;\n }\n\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .order-sm-first {\n order: -1;\n }\n\n .order-sm-last {\n order: 13;\n }\n\n .order-sm-0 {\n order: 0;\n }\n\n .order-sm-1 {\n order: 1;\n }\n\n .order-sm-2 {\n order: 2;\n }\n\n .order-sm-3 {\n order: 3;\n }\n\n .order-sm-4 {\n order: 4;\n }\n\n .order-sm-5 {\n order: 5;\n }\n\n .order-sm-6 {\n order: 6;\n }\n\n .order-sm-7 {\n order: 7;\n }\n\n .order-sm-8 {\n order: 8;\n }\n\n .order-sm-9 {\n order: 9;\n }\n\n .order-sm-10 {\n order: 10;\n }\n\n .order-sm-11 {\n order: 11;\n }\n\n .order-sm-12 {\n order: 12;\n }\n\n .offset-sm-0 {\n margin-left: 0;\n }\n\n .offset-sm-1 {\n margin-left: 8.3333333333%;\n }\n\n .offset-sm-2 {\n margin-left: 16.6666666667%;\n }\n\n .offset-sm-3 {\n margin-left: 25%;\n }\n\n .offset-sm-4 {\n margin-left: 33.3333333333%;\n }\n\n .offset-sm-5 {\n margin-left: 41.6666666667%;\n }\n\n .offset-sm-6 {\n margin-left: 50%;\n }\n\n .offset-sm-7 {\n margin-left: 58.3333333333%;\n }\n\n .offset-sm-8 {\n margin-left: 66.6666666667%;\n }\n\n .offset-sm-9 {\n margin-left: 75%;\n }\n\n .offset-sm-10 {\n margin-left: 83.3333333333%;\n }\n\n .offset-sm-11 {\n margin-left: 91.6666666667%;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .row-cols-md-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n\n .row-cols-md-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n\n .col-md-1 {\n flex: 0 0 8.3333333333%;\n max-width: 8.3333333333%;\n }\n\n .col-md-2 {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .col-md-4 {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .col-md-5 {\n flex: 0 0 41.6666666667%;\n max-width: 41.6666666667%;\n }\n\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .col-md-7 {\n flex: 0 0 58.3333333333%;\n max-width: 58.3333333333%;\n }\n\n .col-md-8 {\n flex: 0 0 66.6666666667%;\n max-width: 66.6666666667%;\n }\n\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n\n .col-md-10 {\n flex: 0 0 83.3333333333%;\n max-width: 83.3333333333%;\n }\n\n .col-md-11 {\n flex: 0 0 91.6666666667%;\n max-width: 91.6666666667%;\n }\n\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .order-md-first {\n order: -1;\n }\n\n .order-md-last {\n order: 13;\n }\n\n .order-md-0 {\n order: 0;\n }\n\n .order-md-1 {\n order: 1;\n }\n\n .order-md-2 {\n order: 2;\n }\n\n .order-md-3 {\n order: 3;\n }\n\n .order-md-4 {\n order: 4;\n }\n\n .order-md-5 {\n order: 5;\n }\n\n .order-md-6 {\n order: 6;\n }\n\n .order-md-7 {\n order: 7;\n }\n\n .order-md-8 {\n order: 8;\n }\n\n .order-md-9 {\n order: 9;\n }\n\n .order-md-10 {\n order: 10;\n }\n\n .order-md-11 {\n order: 11;\n }\n\n .order-md-12 {\n order: 12;\n }\n\n .offset-md-0 {\n margin-left: 0;\n }\n\n .offset-md-1 {\n margin-left: 8.3333333333%;\n }\n\n .offset-md-2 {\n margin-left: 16.6666666667%;\n }\n\n .offset-md-3 {\n margin-left: 25%;\n }\n\n .offset-md-4 {\n margin-left: 33.3333333333%;\n }\n\n .offset-md-5 {\n margin-left: 41.6666666667%;\n }\n\n .offset-md-6 {\n margin-left: 50%;\n }\n\n .offset-md-7 {\n margin-left: 58.3333333333%;\n }\n\n .offset-md-8 {\n margin-left: 66.6666666667%;\n }\n\n .offset-md-9 {\n margin-left: 75%;\n }\n\n .offset-md-10 {\n margin-left: 83.3333333333%;\n }\n\n .offset-md-11 {\n margin-left: 91.6666666667%;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .row-cols-lg-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n\n .row-cols-lg-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n\n .col-lg-1 {\n flex: 0 0 8.3333333333%;\n max-width: 8.3333333333%;\n }\n\n .col-lg-2 {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .col-lg-4 {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .col-lg-5 {\n flex: 0 0 41.6666666667%;\n max-width: 41.6666666667%;\n }\n\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .col-lg-7 {\n flex: 0 0 58.3333333333%;\n max-width: 58.3333333333%;\n }\n\n .col-lg-8 {\n flex: 0 0 66.6666666667%;\n max-width: 66.6666666667%;\n }\n\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n\n .col-lg-10 {\n flex: 0 0 83.3333333333%;\n max-width: 83.3333333333%;\n }\n\n .col-lg-11 {\n flex: 0 0 91.6666666667%;\n max-width: 91.6666666667%;\n }\n\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .order-lg-first {\n order: -1;\n }\n\n .order-lg-last {\n order: 13;\n }\n\n .order-lg-0 {\n order: 0;\n }\n\n .order-lg-1 {\n order: 1;\n }\n\n .order-lg-2 {\n order: 2;\n }\n\n .order-lg-3 {\n order: 3;\n }\n\n .order-lg-4 {\n order: 4;\n }\n\n .order-lg-5 {\n order: 5;\n }\n\n .order-lg-6 {\n order: 6;\n }\n\n .order-lg-7 {\n order: 7;\n }\n\n .order-lg-8 {\n order: 8;\n }\n\n .order-lg-9 {\n order: 9;\n }\n\n .order-lg-10 {\n order: 10;\n }\n\n .order-lg-11 {\n order: 11;\n }\n\n .order-lg-12 {\n order: 12;\n }\n\n .offset-lg-0 {\n margin-left: 0;\n }\n\n .offset-lg-1 {\n margin-left: 8.3333333333%;\n }\n\n .offset-lg-2 {\n margin-left: 16.6666666667%;\n }\n\n .offset-lg-3 {\n margin-left: 25%;\n }\n\n .offset-lg-4 {\n margin-left: 33.3333333333%;\n }\n\n .offset-lg-5 {\n margin-left: 41.6666666667%;\n }\n\n .offset-lg-6 {\n margin-left: 50%;\n }\n\n .offset-lg-7 {\n margin-left: 58.3333333333%;\n }\n\n .offset-lg-8 {\n margin-left: 66.6666666667%;\n }\n\n .offset-lg-9 {\n margin-left: 75%;\n }\n\n .offset-lg-10 {\n margin-left: 83.3333333333%;\n }\n\n .offset-lg-11 {\n margin-left: 91.6666666667%;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .row-cols-xl-3 > * {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n\n .row-cols-xl-6 > * {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n\n .col-xl-1 {\n flex: 0 0 8.3333333333%;\n max-width: 8.3333333333%;\n }\n\n .col-xl-2 {\n flex: 0 0 16.6666666667%;\n max-width: 16.6666666667%;\n }\n\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n\n .col-xl-4 {\n flex: 0 0 33.3333333333%;\n max-width: 33.3333333333%;\n }\n\n .col-xl-5 {\n flex: 0 0 41.6666666667%;\n max-width: 41.6666666667%;\n }\n\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n\n .col-xl-7 {\n flex: 0 0 58.3333333333%;\n max-width: 58.3333333333%;\n }\n\n .col-xl-8 {\n flex: 0 0 66.6666666667%;\n max-width: 66.6666666667%;\n }\n\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n\n .col-xl-10 {\n flex: 0 0 83.3333333333%;\n max-width: 83.3333333333%;\n }\n\n .col-xl-11 {\n flex: 0 0 91.6666666667%;\n max-width: 91.6666666667%;\n }\n\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n\n .order-xl-first {\n order: -1;\n }\n\n .order-xl-last {\n order: 13;\n }\n\n .order-xl-0 {\n order: 0;\n }\n\n .order-xl-1 {\n order: 1;\n }\n\n .order-xl-2 {\n order: 2;\n }\n\n .order-xl-3 {\n order: 3;\n }\n\n .order-xl-4 {\n order: 4;\n }\n\n .order-xl-5 {\n order: 5;\n }\n\n .order-xl-6 {\n order: 6;\n }\n\n .order-xl-7 {\n order: 7;\n }\n\n .order-xl-8 {\n order: 8;\n }\n\n .order-xl-9 {\n order: 9;\n }\n\n .order-xl-10 {\n order: 10;\n }\n\n .order-xl-11 {\n order: 11;\n }\n\n .order-xl-12 {\n order: 12;\n }\n\n .offset-xl-0 {\n margin-left: 0;\n }\n\n .offset-xl-1 {\n margin-left: 8.3333333333%;\n }\n\n .offset-xl-2 {\n margin-left: 16.6666666667%;\n }\n\n .offset-xl-3 {\n margin-left: 25%;\n }\n\n .offset-xl-4 {\n margin-left: 33.3333333333%;\n }\n\n .offset-xl-5 {\n margin-left: 41.6666666667%;\n }\n\n .offset-xl-6 {\n margin-left: 50%;\n }\n\n .offset-xl-7 {\n margin-left: 58.3333333333%;\n }\n\n .offset-xl-8 {\n margin-left: 66.6666666667%;\n }\n\n .offset-xl-9 {\n margin-left: 75%;\n }\n\n .offset-xl-10 {\n margin-left: 83.3333333333%;\n }\n\n .offset-xl-11 {\n margin-left: 91.6666666667%;\n }\n}\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n.table-dark.table-bordered {\n border: 0;\n}\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n.table-responsive > .table-bordered {\n border: 0;\n}\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\ntextarea.form-control {\n height: auto;\n}\n.form-group {\n margin-bottom: 1rem;\n}\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n.form-row > .col,\n.form-row > [class*=col-] {\n padding-right: 5px;\n padding-left: 5px;\n}\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n.form-check-label {\n margin-bottom: 0;\n}\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n.form-inline .form-check {\n width: 100%;\n}\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n.form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\ninput[type=submit].btn-block,\ninput[type=reset].btn-block,\ninput[type=button].btn-block {\n width: 100%;\n}\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n.collapse:not(.show) {\n display: none;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n.dropdown-toggle {\n white-space: nowrap;\n}\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left] {\n right: auto;\n bottom: auto;\n}\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n.dropdown-menu.show {\n display: block;\n}\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n.btn-toolbar .input-group {\n width: auto;\n}\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n.btn-group-toggle > .btn input[type=radio],\n.btn-group-toggle > .btn input[type=checkbox],\n.btn-group-toggle > .btn-group > .btn input[type=radio],\n.btn-group-toggle > .btn-group > .btn input[type=checkbox] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n}\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n.input-group-prepend {\n margin-right: -1px;\n}\n.input-group-append {\n margin-left: -1px;\n}\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n.input-group-text input[type=radio],\n.input-group-text input[type=checkbox] {\n margin-top: 0;\n}\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50%/50% 50%;\n}\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n.custom-switch {\n padding-left: 2.25rem;\n}\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n.custom-select::-ms-expand {\n display: none;\n}\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-file-input[disabled] ~ .custom-file-label, .custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.custom-range:focus {\n outline: none;\n}\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n -webkit-transition: none;\n transition: none;\n }\n}\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n -moz-transition: none;\n transition: none;\n }\n}\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n -ms-transition: none;\n transition: none;\n }\n}\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: none;\n }\n}\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n.navbar .container,\n.navbar .container-fluid,\n.navbar .container-sm,\n.navbar .container-md,\n.navbar .container-lg,\n.navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n.navbar-expand-sm > .container-fluid,\n.navbar-expand-sm > .container-sm,\n.navbar-expand-sm > .container-md,\n.navbar-expand-sm > .container-lg,\n.navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n.navbar-expand-sm > .container-fluid,\n.navbar-expand-sm > .container-sm,\n.navbar-expand-sm > .container-md,\n.navbar-expand-sm > .container-lg,\n.navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n.navbar-expand-md > .container-fluid,\n.navbar-expand-md > .container-sm,\n.navbar-expand-md > .container-md,\n.navbar-expand-md > .container-lg,\n.navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n.navbar-expand-md > .container-fluid,\n.navbar-expand-md > .container-sm,\n.navbar-expand-md > .container-md,\n.navbar-expand-md > .container-lg,\n.navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n.navbar-expand-lg > .container-fluid,\n.navbar-expand-lg > .container-sm,\n.navbar-expand-lg > .container-md,\n.navbar-expand-lg > .container-lg,\n.navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n.navbar-expand-lg > .container-fluid,\n.navbar-expand-lg > .container-sm,\n.navbar-expand-lg > .container-md,\n.navbar-expand-lg > .container-lg,\n.navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n.navbar-expand-xl > .container-fluid,\n.navbar-expand-xl > .container-sm,\n.navbar-expand-xl > .container-md,\n.navbar-expand-xl > .container-lg,\n.navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n.navbar-expand-xl > .container-fluid,\n.navbar-expand-xl > .container-sm,\n.navbar-expand-xl > .container-md,\n.navbar-expand-xl > .container-lg,\n.navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n.navbar-expand > .container,\n.navbar-expand > .container-fluid,\n.navbar-expand > .container-sm,\n.navbar-expand > .container-md,\n.navbar-expand > .container-lg,\n.navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n.navbar-expand > .container,\n.navbar-expand > .container-fluid,\n.navbar-expand > .container-sm,\n.navbar-expand > .container-md,\n.navbar-expand > .container-lg,\n.navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n.navbar-expand .navbar-toggler {\n display: none;\n}\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n.card-title {\n margin-bottom: 0.75rem;\n}\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n.card-text:last-child {\n margin-bottom: 0;\n}\n.card-link:hover {\n text-decoration: none;\n}\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n.card-deck .card {\n margin-bottom: 15px;\n}\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n.card-group > .card {\n margin-bottom: 15px;\n}\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n.card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n.card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n.card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n.card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n@media (min-width: 576px) {\n .card-columns {\n -moz-column-count: 3;\n column-count: 3;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n.accordion > .card {\n overflow: hidden;\n}\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n.breadcrumb-item.active {\n color: #6c757d;\n}\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n.alert-heading {\n color: inherit;\n}\n.alert-link {\n font-weight: 700;\n}\n.alert-dismissible {\n padding-right: 4rem;\n}\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n.alert-primary .alert-link {\n color: #002752;\n}\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n.alert-secondary .alert-link {\n color: #202326;\n}\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n.alert-success .alert-link {\n color: #0b2e13;\n}\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n.alert-info hr {\n border-top-color: #abdde5;\n}\n.alert-info .alert-link {\n color: #062c33;\n}\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n.alert-warning .alert-link {\n color: #533f03;\n}\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n.alert-danger .alert-link {\n color: #491217;\n}\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n.alert-light hr {\n border-top-color: #ececf6;\n}\n.alert-light .alert-link {\n color: #686868;\n}\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n.alert-dark .alert-link {\n color: #040505;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n.media {\n display: flex;\n align-items: flex-start;\n}\n.media-body {\n flex: 1;\n}\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n.list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n.list-group-horizontal {\n flex-direction: row;\n}\n.list-group-horizontal .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n.list-group-horizontal .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n.list-group-horizontal .list-group-item.active {\n margin-top: 0;\n}\n.list-group-horizontal .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n.list-group-horizontal .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n.list-group-flush .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n border-radius: 0;\n}\n.list-group-flush .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom-width: 0;\n}\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.5;\n}\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: 0.75;\n}\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\na.close.disabled {\n pointer-events: none;\n}\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n.toast.showing {\n opacity: 1;\n}\n.toast.show {\n display: block;\n opacity: 1;\n}\n.toast.hide {\n display: none;\n}\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n.toast-body {\n padding: 0.75rem;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n.modal.show .modal-dialog {\n transform: none;\n}\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n}\n.modal-backdrop.show {\n opacity: 0.5;\n}\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n.modal-footer > * {\n margin: 0.25rem;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n\n .modal-sm {\n max-width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg,\n.modal-xl {\n max-width: 800px;\n }\n}\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n.tooltip.show {\n opacity: 0.9;\n}\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] {\n padding: 0.4rem 0;\n}\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow {\n bottom: 0;\n}\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] {\n padding: 0 0.4rem;\n}\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] {\n padding: 0.4rem 0;\n}\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow {\n top: 0;\n}\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] {\n padding: 0 0.4rem;\n}\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n.bs-popover-top, .bs-popover-auto[x-placement^=top] {\n margin-bottom: 0.5rem;\n}\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=top] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=top] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=top] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n.bs-popover-right, .bs-popover-auto[x-placement^=right] {\n margin-left: 0.5rem;\n}\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=right] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=right] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=right] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n.bs-popover-bottom, .bs-popover-auto[x-placement^=bottom] {\n margin-top: 0.5rem;\n}\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=bottom] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=bottom] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=bottom] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n.bs-popover-left, .bs-popover-auto[x-placement^=left] {\n margin-right: 0.5rem;\n}\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=left] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=left] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=left] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n.popover-header:empty {\n display: none;\n}\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n.carousel {\n position: relative;\n}\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n.carousel-control-next {\n transition: none;\n }\n}\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n.carousel-control-prev {\n left: 0;\n}\n.carousel-control-next {\n right: 0;\n}\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50%/100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: 0.5;\n transition: opacity 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n.carousel-indicators .active {\n opacity: 1;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n@-webkit-keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border 0.75s linear infinite;\n animation: spinner-border 0.75s linear infinite;\n}\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n@-webkit-keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow 0.75s linear infinite;\n animation: spinner-grow 0.75s linear infinite;\n}\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n.align-baseline {\n vertical-align: baseline !important;\n}\n.align-top {\n vertical-align: top !important;\n}\n.align-middle {\n vertical-align: middle !important;\n}\n.align-bottom {\n vertical-align: bottom !important;\n}\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n.align-text-top {\n vertical-align: text-top !important;\n}\n.bg-primary {\n background-color: #007bff !important;\n}\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n.bg-secondary {\n background-color: #6c757d !important;\n}\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n.bg-success {\n background-color: #28a745 !important;\n}\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n.bg-info {\n background-color: #17a2b8 !important;\n}\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n.bg-warning {\n background-color: #ffc107 !important;\n}\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n.bg-danger {\n background-color: #dc3545 !important;\n}\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n.bg-light {\n background-color: #f8f9fa !important;\n}\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n.bg-dark {\n background-color: #343a40 !important;\n}\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n.bg-white {\n background-color: #fff !important;\n}\n.bg-transparent {\n background-color: transparent !important;\n}\n.border {\n border: 1px solid #dee2e6 !important;\n}\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n.border-0 {\n border: 0 !important;\n}\n.border-top-0 {\n border-top: 0 !important;\n}\n.border-right-0 {\n border-right: 0 !important;\n}\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n.border-left-0 {\n border-left: 0 !important;\n}\n.border-primary {\n border-color: #007bff !important;\n}\n.border-secondary {\n border-color: #6c757d !important;\n}\n.border-success {\n border-color: #28a745 !important;\n}\n.border-info {\n border-color: #17a2b8 !important;\n}\n.border-warning {\n border-color: #ffc107 !important;\n}\n.border-danger {\n border-color: #dc3545 !important;\n}\n.border-light {\n border-color: #f8f9fa !important;\n}\n.border-dark {\n border-color: #343a40 !important;\n}\n.border-white {\n border-color: #fff !important;\n}\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n.rounded {\n border-radius: 0.25rem !important;\n}\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n.rounded-circle {\n border-radius: 50% !important;\n}\n.rounded-pill {\n border-radius: 50rem !important;\n}\n.rounded-0 {\n border-radius: 0 !important;\n}\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n.d-none {\n display: none !important;\n}\n.d-inline {\n display: inline !important;\n}\n.d-inline-block {\n display: inline-block !important;\n}\n.d-block {\n display: block !important;\n}\n.d-table {\n display: table !important;\n}\n.d-table-row {\n display: table-row !important;\n}\n.d-table-cell {\n display: table-cell !important;\n}\n.d-flex {\n display: flex !important;\n}\n.d-inline-flex {\n display: inline-flex !important;\n}\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n\n .d-sm-inline {\n display: inline !important;\n }\n\n .d-sm-inline-block {\n display: inline-block !important;\n }\n\n .d-sm-block {\n display: block !important;\n }\n\n .d-sm-table {\n display: table !important;\n }\n\n .d-sm-table-row {\n display: table-row !important;\n }\n\n .d-sm-table-cell {\n display: table-cell !important;\n }\n\n .d-sm-flex {\n display: flex !important;\n }\n\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n\n .d-md-inline {\n display: inline !important;\n }\n\n .d-md-inline-block {\n display: inline-block !important;\n }\n\n .d-md-block {\n display: block !important;\n }\n\n .d-md-table {\n display: table !important;\n }\n\n .d-md-table-row {\n display: table-row !important;\n }\n\n .d-md-table-cell {\n display: table-cell !important;\n }\n\n .d-md-flex {\n display: flex !important;\n }\n\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n\n .d-lg-inline {\n display: inline !important;\n }\n\n .d-lg-inline-block {\n display: inline-block !important;\n }\n\n .d-lg-block {\n display: block !important;\n }\n\n .d-lg-table {\n display: table !important;\n }\n\n .d-lg-table-row {\n display: table-row !important;\n }\n\n .d-lg-table-cell {\n display: table-cell !important;\n }\n\n .d-lg-flex {\n display: flex !important;\n }\n\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n\n .d-xl-inline {\n display: inline !important;\n }\n\n .d-xl-inline-block {\n display: inline-block !important;\n }\n\n .d-xl-block {\n display: block !important;\n }\n\n .d-xl-table {\n display: table !important;\n }\n\n .d-xl-table-row {\n display: table-row !important;\n }\n\n .d-xl-table-cell {\n display: table-cell !important;\n }\n\n .d-xl-flex {\n display: flex !important;\n }\n\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n@media print {\n .d-print-none {\n display: none !important;\n }\n\n .d-print-inline {\n display: inline !important;\n }\n\n .d-print-inline-block {\n display: inline-block !important;\n }\n\n .d-print-block {\n display: block !important;\n }\n\n .d-print-table {\n display: table !important;\n }\n\n .d-print-table-row {\n display: table-row !important;\n }\n\n .d-print-table-cell {\n display: table-cell !important;\n }\n\n .d-print-flex {\n display: flex !important;\n }\n\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-21by9::before {\n padding-top: 42.8571428571%;\n}\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n.flex-row {\n flex-direction: row !important;\n}\n.flex-column {\n flex-direction: column !important;\n}\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n.flex-fill {\n flex: 1 1 auto !important;\n}\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n.justify-content-start {\n justify-content: flex-start !important;\n}\n.justify-content-end {\n justify-content: flex-end !important;\n}\n.justify-content-center {\n justify-content: center !important;\n}\n.justify-content-between {\n justify-content: space-between !important;\n}\n.justify-content-around {\n justify-content: space-around !important;\n}\n.align-items-start {\n align-items: flex-start !important;\n}\n.align-items-end {\n align-items: flex-end !important;\n}\n.align-items-center {\n align-items: center !important;\n}\n.align-items-baseline {\n align-items: baseline !important;\n}\n.align-items-stretch {\n align-items: stretch !important;\n}\n.align-content-start {\n align-content: flex-start !important;\n}\n.align-content-end {\n align-content: flex-end !important;\n}\n.align-content-center {\n align-content: center !important;\n}\n.align-content-between {\n align-content: space-between !important;\n}\n.align-content-around {\n align-content: space-around !important;\n}\n.align-content-stretch {\n align-content: stretch !important;\n}\n.align-self-auto {\n align-self: auto !important;\n}\n.align-self-start {\n align-self: flex-start !important;\n}\n.align-self-end {\n align-self: flex-end !important;\n}\n.align-self-center {\n align-self: center !important;\n}\n.align-self-baseline {\n align-self: baseline !important;\n}\n.align-self-stretch {\n align-self: stretch !important;\n}\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n\n .flex-sm-column {\n flex-direction: column !important;\n }\n\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-sm-center {\n justify-content: center !important;\n }\n\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n\n .align-items-sm-center {\n align-items: center !important;\n }\n\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n\n .align-content-sm-center {\n align-content: center !important;\n }\n\n .align-content-sm-between {\n align-content: space-between !important;\n }\n\n .align-content-sm-around {\n align-content: space-around !important;\n }\n\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n\n .align-self-sm-auto {\n align-self: auto !important;\n }\n\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n\n .align-self-sm-center {\n align-self: center !important;\n }\n\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n\n .flex-md-column {\n flex-direction: column !important;\n }\n\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-md-center {\n justify-content: center !important;\n }\n\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n\n .align-items-md-start {\n align-items: flex-start !important;\n }\n\n .align-items-md-end {\n align-items: flex-end !important;\n }\n\n .align-items-md-center {\n align-items: center !important;\n }\n\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n\n .align-content-md-start {\n align-content: flex-start !important;\n }\n\n .align-content-md-end {\n align-content: flex-end !important;\n }\n\n .align-content-md-center {\n align-content: center !important;\n }\n\n .align-content-md-between {\n align-content: space-between !important;\n }\n\n .align-content-md-around {\n align-content: space-around !important;\n }\n\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n\n .align-self-md-auto {\n align-self: auto !important;\n }\n\n .align-self-md-start {\n align-self: flex-start !important;\n }\n\n .align-self-md-end {\n align-self: flex-end !important;\n }\n\n .align-self-md-center {\n align-self: center !important;\n }\n\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n\n .flex-lg-column {\n flex-direction: column !important;\n }\n\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-lg-center {\n justify-content: center !important;\n }\n\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n\n .align-items-lg-center {\n align-items: center !important;\n }\n\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n\n .align-content-lg-center {\n align-content: center !important;\n }\n\n .align-content-lg-between {\n align-content: space-between !important;\n }\n\n .align-content-lg-around {\n align-content: space-around !important;\n }\n\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n\n .align-self-lg-auto {\n align-self: auto !important;\n }\n\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n\n .align-self-lg-center {\n align-self: center !important;\n }\n\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n\n .flex-xl-column {\n flex-direction: column !important;\n }\n\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n\n .justify-content-xl-center {\n justify-content: center !important;\n }\n\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n\n .align-items-xl-center {\n align-items: center !important;\n }\n\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n\n .align-content-xl-center {\n align-content: center !important;\n }\n\n .align-content-xl-between {\n align-content: space-between !important;\n }\n\n .align-content-xl-around {\n align-content: space-around !important;\n }\n\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n\n .align-self-xl-auto {\n align-self: auto !important;\n }\n\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n\n .align-self-xl-center {\n align-self: center !important;\n }\n\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n.float-left {\n float: left !important;\n}\n.float-right {\n float: right !important;\n}\n.float-none {\n float: none !important;\n}\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n\n .float-sm-right {\n float: right !important;\n }\n\n .float-sm-none {\n float: none !important;\n }\n}\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n\n .float-md-right {\n float: right !important;\n }\n\n .float-md-none {\n float: none !important;\n }\n}\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n\n .float-lg-right {\n float: right !important;\n }\n\n .float-lg-none {\n float: none !important;\n }\n}\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n\n .float-xl-right {\n float: right !important;\n }\n\n .float-xl-none {\n float: none !important;\n }\n}\n.overflow-auto {\n overflow: auto !important;\n}\n.overflow-hidden {\n overflow: hidden !important;\n}\n.position-static {\n position: static !important;\n}\n.position-relative {\n position: relative !important;\n}\n.position-absolute {\n position: absolute !important;\n}\n.position-fixed {\n position: fixed !important;\n}\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n.shadow-none {\n box-shadow: none !important;\n}\n.w-25 {\n width: 25% !important;\n}\n.w-50 {\n width: 50% !important;\n}\n.w-75 {\n width: 75% !important;\n}\n.w-100 {\n width: 100% !important;\n}\n.w-auto {\n width: auto !important;\n}\n.h-25 {\n height: 25% !important;\n}\n.h-50 {\n height: 50% !important;\n}\n.h-75 {\n height: 75% !important;\n}\n.h-100 {\n height: 100% !important;\n}\n.h-auto {\n height: auto !important;\n}\n.mw-100 {\n max-width: 100% !important;\n}\n.mh-100 {\n max-height: 100% !important;\n}\n.min-vw-100 {\n min-width: 100vw !important;\n}\n.min-vh-100 {\n min-height: 100vh !important;\n}\n.vw-100 {\n width: 100vw !important;\n}\n.vh-100 {\n height: 100vh !important;\n}\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n.m-0 {\n margin: 0 !important;\n}\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n.m-1 {\n margin: 0.25rem !important;\n}\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n.m-2 {\n margin: 0.5rem !important;\n}\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n.m-3 {\n margin: 1rem !important;\n}\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n.m-4 {\n margin: 1.5rem !important;\n}\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n.m-5 {\n margin: 3rem !important;\n}\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n.p-0 {\n padding: 0 !important;\n}\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n.p-1 {\n padding: 0.25rem !important;\n}\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n.p-2 {\n padding: 0.5rem !important;\n}\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n.p-3 {\n padding: 1rem !important;\n}\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n.p-4 {\n padding: 1.5rem !important;\n}\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n.p-5 {\n padding: 3rem !important;\n}\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n.m-n1 {\n margin: -0.25rem !important;\n}\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n.m-n2 {\n margin: -0.5rem !important;\n}\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n.m-n3 {\n margin: -1rem !important;\n}\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n.m-n4 {\n margin: -1.5rem !important;\n}\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n.m-n5 {\n margin: -3rem !important;\n}\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n.m-auto {\n margin: auto !important;\n}\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n\n .mt-sm-0,\n.my-sm-0 {\n margin-top: 0 !important;\n }\n\n .mr-sm-0,\n.mx-sm-0 {\n margin-right: 0 !important;\n }\n\n .mb-sm-0,\n.my-sm-0 {\n margin-bottom: 0 !important;\n }\n\n .ml-sm-0,\n.mx-sm-0 {\n margin-left: 0 !important;\n }\n\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n\n .mt-sm-1,\n.my-sm-1 {\n margin-top: 0.25rem !important;\n }\n\n .mr-sm-1,\n.mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n\n .mb-sm-1,\n.my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .ml-sm-1,\n.mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n\n .mt-sm-2,\n.my-sm-2 {\n margin-top: 0.5rem !important;\n }\n\n .mr-sm-2,\n.mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n\n .mb-sm-2,\n.my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .ml-sm-2,\n.mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n\n .m-sm-3 {\n margin: 1rem !important;\n }\n\n .mt-sm-3,\n.my-sm-3 {\n margin-top: 1rem !important;\n }\n\n .mr-sm-3,\n.mx-sm-3 {\n margin-right: 1rem !important;\n }\n\n .mb-sm-3,\n.my-sm-3 {\n margin-bottom: 1rem !important;\n }\n\n .ml-sm-3,\n.mx-sm-3 {\n margin-left: 1rem !important;\n }\n\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n\n .mt-sm-4,\n.my-sm-4 {\n margin-top: 1.5rem !important;\n }\n\n .mr-sm-4,\n.mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n\n .mb-sm-4,\n.my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .ml-sm-4,\n.mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n\n .m-sm-5 {\n margin: 3rem !important;\n }\n\n .mt-sm-5,\n.my-sm-5 {\n margin-top: 3rem !important;\n }\n\n .mr-sm-5,\n.mx-sm-5 {\n margin-right: 3rem !important;\n }\n\n .mb-sm-5,\n.my-sm-5 {\n margin-bottom: 3rem !important;\n }\n\n .ml-sm-5,\n.mx-sm-5 {\n margin-left: 3rem !important;\n }\n\n .p-sm-0 {\n padding: 0 !important;\n }\n\n .pt-sm-0,\n.py-sm-0 {\n padding-top: 0 !important;\n }\n\n .pr-sm-0,\n.px-sm-0 {\n padding-right: 0 !important;\n }\n\n .pb-sm-0,\n.py-sm-0 {\n padding-bottom: 0 !important;\n }\n\n .pl-sm-0,\n.px-sm-0 {\n padding-left: 0 !important;\n }\n\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n\n .pt-sm-1,\n.py-sm-1 {\n padding-top: 0.25rem !important;\n }\n\n .pr-sm-1,\n.px-sm-1 {\n padding-right: 0.25rem !important;\n }\n\n .pb-sm-1,\n.py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pl-sm-1,\n.px-sm-1 {\n padding-left: 0.25rem !important;\n }\n\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n\n .pt-sm-2,\n.py-sm-2 {\n padding-top: 0.5rem !important;\n }\n\n .pr-sm-2,\n.px-sm-2 {\n padding-right: 0.5rem !important;\n }\n\n .pb-sm-2,\n.py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pl-sm-2,\n.px-sm-2 {\n padding-left: 0.5rem !important;\n }\n\n .p-sm-3 {\n padding: 1rem !important;\n }\n\n .pt-sm-3,\n.py-sm-3 {\n padding-top: 1rem !important;\n }\n\n .pr-sm-3,\n.px-sm-3 {\n padding-right: 1rem !important;\n }\n\n .pb-sm-3,\n.py-sm-3 {\n padding-bottom: 1rem !important;\n }\n\n .pl-sm-3,\n.px-sm-3 {\n padding-left: 1rem !important;\n }\n\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n\n .pt-sm-4,\n.py-sm-4 {\n padding-top: 1.5rem !important;\n }\n\n .pr-sm-4,\n.px-sm-4 {\n padding-right: 1.5rem !important;\n }\n\n .pb-sm-4,\n.py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pl-sm-4,\n.px-sm-4 {\n padding-left: 1.5rem !important;\n }\n\n .p-sm-5 {\n padding: 3rem !important;\n }\n\n .pt-sm-5,\n.py-sm-5 {\n padding-top: 3rem !important;\n }\n\n .pr-sm-5,\n.px-sm-5 {\n padding-right: 3rem !important;\n }\n\n .pb-sm-5,\n.py-sm-5 {\n padding-bottom: 3rem !important;\n }\n\n .pl-sm-5,\n.px-sm-5 {\n padding-left: 3rem !important;\n }\n\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n\n .mt-sm-n1,\n.my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n\n .mr-sm-n1,\n.mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n\n .mb-sm-n1,\n.my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n\n .ml-sm-n1,\n.mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n\n .mt-sm-n2,\n.my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n\n .mr-sm-n2,\n.mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n\n .mb-sm-n2,\n.my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n\n .ml-sm-n2,\n.mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n\n .m-sm-n3 {\n margin: -1rem !important;\n }\n\n .mt-sm-n3,\n.my-sm-n3 {\n margin-top: -1rem !important;\n }\n\n .mr-sm-n3,\n.mx-sm-n3 {\n margin-right: -1rem !important;\n }\n\n .mb-sm-n3,\n.my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n\n .ml-sm-n3,\n.mx-sm-n3 {\n margin-left: -1rem !important;\n }\n\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n\n .mt-sm-n4,\n.my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n\n .mr-sm-n4,\n.mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n\n .mb-sm-n4,\n.my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n\n .ml-sm-n4,\n.mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n\n .m-sm-n5 {\n margin: -3rem !important;\n }\n\n .mt-sm-n5,\n.my-sm-n5 {\n margin-top: -3rem !important;\n }\n\n .mr-sm-n5,\n.mx-sm-n5 {\n margin-right: -3rem !important;\n }\n\n .mb-sm-n5,\n.my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n\n .ml-sm-n5,\n.mx-sm-n5 {\n margin-left: -3rem !important;\n }\n\n .m-sm-auto {\n margin: auto !important;\n }\n\n .mt-sm-auto,\n.my-sm-auto {\n margin-top: auto !important;\n }\n\n .mr-sm-auto,\n.mx-sm-auto {\n margin-right: auto !important;\n }\n\n .mb-sm-auto,\n.my-sm-auto {\n margin-bottom: auto !important;\n }\n\n .ml-sm-auto,\n.mx-sm-auto {\n margin-left: auto !important;\n }\n}\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n\n .mt-md-0,\n.my-md-0 {\n margin-top: 0 !important;\n }\n\n .mr-md-0,\n.mx-md-0 {\n margin-right: 0 !important;\n }\n\n .mb-md-0,\n.my-md-0 {\n margin-bottom: 0 !important;\n }\n\n .ml-md-0,\n.mx-md-0 {\n margin-left: 0 !important;\n }\n\n .m-md-1 {\n margin: 0.25rem !important;\n }\n\n .mt-md-1,\n.my-md-1 {\n margin-top: 0.25rem !important;\n }\n\n .mr-md-1,\n.mx-md-1 {\n margin-right: 0.25rem !important;\n }\n\n .mb-md-1,\n.my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .ml-md-1,\n.mx-md-1 {\n margin-left: 0.25rem !important;\n }\n\n .m-md-2 {\n margin: 0.5rem !important;\n }\n\n .mt-md-2,\n.my-md-2 {\n margin-top: 0.5rem !important;\n }\n\n .mr-md-2,\n.mx-md-2 {\n margin-right: 0.5rem !important;\n }\n\n .mb-md-2,\n.my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .ml-md-2,\n.mx-md-2 {\n margin-left: 0.5rem !important;\n }\n\n .m-md-3 {\n margin: 1rem !important;\n }\n\n .mt-md-3,\n.my-md-3 {\n margin-top: 1rem !important;\n }\n\n .mr-md-3,\n.mx-md-3 {\n margin-right: 1rem !important;\n }\n\n .mb-md-3,\n.my-md-3 {\n margin-bottom: 1rem !important;\n }\n\n .ml-md-3,\n.mx-md-3 {\n margin-left: 1rem !important;\n }\n\n .m-md-4 {\n margin: 1.5rem !important;\n }\n\n .mt-md-4,\n.my-md-4 {\n margin-top: 1.5rem !important;\n }\n\n .mr-md-4,\n.mx-md-4 {\n margin-right: 1.5rem !important;\n }\n\n .mb-md-4,\n.my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .ml-md-4,\n.mx-md-4 {\n margin-left: 1.5rem !important;\n }\n\n .m-md-5 {\n margin: 3rem !important;\n }\n\n .mt-md-5,\n.my-md-5 {\n margin-top: 3rem !important;\n }\n\n .mr-md-5,\n.mx-md-5 {\n margin-right: 3rem !important;\n }\n\n .mb-md-5,\n.my-md-5 {\n margin-bottom: 3rem !important;\n }\n\n .ml-md-5,\n.mx-md-5 {\n margin-left: 3rem !important;\n }\n\n .p-md-0 {\n padding: 0 !important;\n }\n\n .pt-md-0,\n.py-md-0 {\n padding-top: 0 !important;\n }\n\n .pr-md-0,\n.px-md-0 {\n padding-right: 0 !important;\n }\n\n .pb-md-0,\n.py-md-0 {\n padding-bottom: 0 !important;\n }\n\n .pl-md-0,\n.px-md-0 {\n padding-left: 0 !important;\n }\n\n .p-md-1 {\n padding: 0.25rem !important;\n }\n\n .pt-md-1,\n.py-md-1 {\n padding-top: 0.25rem !important;\n }\n\n .pr-md-1,\n.px-md-1 {\n padding-right: 0.25rem !important;\n }\n\n .pb-md-1,\n.py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pl-md-1,\n.px-md-1 {\n padding-left: 0.25rem !important;\n }\n\n .p-md-2 {\n padding: 0.5rem !important;\n }\n\n .pt-md-2,\n.py-md-2 {\n padding-top: 0.5rem !important;\n }\n\n .pr-md-2,\n.px-md-2 {\n padding-right: 0.5rem !important;\n }\n\n .pb-md-2,\n.py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pl-md-2,\n.px-md-2 {\n padding-left: 0.5rem !important;\n }\n\n .p-md-3 {\n padding: 1rem !important;\n }\n\n .pt-md-3,\n.py-md-3 {\n padding-top: 1rem !important;\n }\n\n .pr-md-3,\n.px-md-3 {\n padding-right: 1rem !important;\n }\n\n .pb-md-3,\n.py-md-3 {\n padding-bottom: 1rem !important;\n }\n\n .pl-md-3,\n.px-md-3 {\n padding-left: 1rem !important;\n }\n\n .p-md-4 {\n padding: 1.5rem !important;\n }\n\n .pt-md-4,\n.py-md-4 {\n padding-top: 1.5rem !important;\n }\n\n .pr-md-4,\n.px-md-4 {\n padding-right: 1.5rem !important;\n }\n\n .pb-md-4,\n.py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pl-md-4,\n.px-md-4 {\n padding-left: 1.5rem !important;\n }\n\n .p-md-5 {\n padding: 3rem !important;\n }\n\n .pt-md-5,\n.py-md-5 {\n padding-top: 3rem !important;\n }\n\n .pr-md-5,\n.px-md-5 {\n padding-right: 3rem !important;\n }\n\n .pb-md-5,\n.py-md-5 {\n padding-bottom: 3rem !important;\n }\n\n .pl-md-5,\n.px-md-5 {\n padding-left: 3rem !important;\n }\n\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n\n .mt-md-n1,\n.my-md-n1 {\n margin-top: -0.25rem !important;\n }\n\n .mr-md-n1,\n.mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n\n .mb-md-n1,\n.my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n\n .ml-md-n1,\n.mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n\n .mt-md-n2,\n.my-md-n2 {\n margin-top: -0.5rem !important;\n }\n\n .mr-md-n2,\n.mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n\n .mb-md-n2,\n.my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n\n .ml-md-n2,\n.mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n\n .m-md-n3 {\n margin: -1rem !important;\n }\n\n .mt-md-n3,\n.my-md-n3 {\n margin-top: -1rem !important;\n }\n\n .mr-md-n3,\n.mx-md-n3 {\n margin-right: -1rem !important;\n }\n\n .mb-md-n3,\n.my-md-n3 {\n margin-bottom: -1rem !important;\n }\n\n .ml-md-n3,\n.mx-md-n3 {\n margin-left: -1rem !important;\n }\n\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n\n .mt-md-n4,\n.my-md-n4 {\n margin-top: -1.5rem !important;\n }\n\n .mr-md-n4,\n.mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n\n .mb-md-n4,\n.my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n\n .ml-md-n4,\n.mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n\n .m-md-n5 {\n margin: -3rem !important;\n }\n\n .mt-md-n5,\n.my-md-n5 {\n margin-top: -3rem !important;\n }\n\n .mr-md-n5,\n.mx-md-n5 {\n margin-right: -3rem !important;\n }\n\n .mb-md-n5,\n.my-md-n5 {\n margin-bottom: -3rem !important;\n }\n\n .ml-md-n5,\n.mx-md-n5 {\n margin-left: -3rem !important;\n }\n\n .m-md-auto {\n margin: auto !important;\n }\n\n .mt-md-auto,\n.my-md-auto {\n margin-top: auto !important;\n }\n\n .mr-md-auto,\n.mx-md-auto {\n margin-right: auto !important;\n }\n\n .mb-md-auto,\n.my-md-auto {\n margin-bottom: auto !important;\n }\n\n .ml-md-auto,\n.mx-md-auto {\n margin-left: auto !important;\n }\n}\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n\n .mt-lg-0,\n.my-lg-0 {\n margin-top: 0 !important;\n }\n\n .mr-lg-0,\n.mx-lg-0 {\n margin-right: 0 !important;\n }\n\n .mb-lg-0,\n.my-lg-0 {\n margin-bottom: 0 !important;\n }\n\n .ml-lg-0,\n.mx-lg-0 {\n margin-left: 0 !important;\n }\n\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n\n .mt-lg-1,\n.my-lg-1 {\n margin-top: 0.25rem !important;\n }\n\n .mr-lg-1,\n.mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n\n .mb-lg-1,\n.my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .ml-lg-1,\n.mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n\n .mt-lg-2,\n.my-lg-2 {\n margin-top: 0.5rem !important;\n }\n\n .mr-lg-2,\n.mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n\n .mb-lg-2,\n.my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .ml-lg-2,\n.mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n\n .m-lg-3 {\n margin: 1rem !important;\n }\n\n .mt-lg-3,\n.my-lg-3 {\n margin-top: 1rem !important;\n }\n\n .mr-lg-3,\n.mx-lg-3 {\n margin-right: 1rem !important;\n }\n\n .mb-lg-3,\n.my-lg-3 {\n margin-bottom: 1rem !important;\n }\n\n .ml-lg-3,\n.mx-lg-3 {\n margin-left: 1rem !important;\n }\n\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n\n .mt-lg-4,\n.my-lg-4 {\n margin-top: 1.5rem !important;\n }\n\n .mr-lg-4,\n.mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n\n .mb-lg-4,\n.my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .ml-lg-4,\n.mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n\n .m-lg-5 {\n margin: 3rem !important;\n }\n\n .mt-lg-5,\n.my-lg-5 {\n margin-top: 3rem !important;\n }\n\n .mr-lg-5,\n.mx-lg-5 {\n margin-right: 3rem !important;\n }\n\n .mb-lg-5,\n.my-lg-5 {\n margin-bottom: 3rem !important;\n }\n\n .ml-lg-5,\n.mx-lg-5 {\n margin-left: 3rem !important;\n }\n\n .p-lg-0 {\n padding: 0 !important;\n }\n\n .pt-lg-0,\n.py-lg-0 {\n padding-top: 0 !important;\n }\n\n .pr-lg-0,\n.px-lg-0 {\n padding-right: 0 !important;\n }\n\n .pb-lg-0,\n.py-lg-0 {\n padding-bottom: 0 !important;\n }\n\n .pl-lg-0,\n.px-lg-0 {\n padding-left: 0 !important;\n }\n\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n\n .pt-lg-1,\n.py-lg-1 {\n padding-top: 0.25rem !important;\n }\n\n .pr-lg-1,\n.px-lg-1 {\n padding-right: 0.25rem !important;\n }\n\n .pb-lg-1,\n.py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pl-lg-1,\n.px-lg-1 {\n padding-left: 0.25rem !important;\n }\n\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n\n .pt-lg-2,\n.py-lg-2 {\n padding-top: 0.5rem !important;\n }\n\n .pr-lg-2,\n.px-lg-2 {\n padding-right: 0.5rem !important;\n }\n\n .pb-lg-2,\n.py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pl-lg-2,\n.px-lg-2 {\n padding-left: 0.5rem !important;\n }\n\n .p-lg-3 {\n padding: 1rem !important;\n }\n\n .pt-lg-3,\n.py-lg-3 {\n padding-top: 1rem !important;\n }\n\n .pr-lg-3,\n.px-lg-3 {\n padding-right: 1rem !important;\n }\n\n .pb-lg-3,\n.py-lg-3 {\n padding-bottom: 1rem !important;\n }\n\n .pl-lg-3,\n.px-lg-3 {\n padding-left: 1rem !important;\n }\n\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n\n .pt-lg-4,\n.py-lg-4 {\n padding-top: 1.5rem !important;\n }\n\n .pr-lg-4,\n.px-lg-4 {\n padding-right: 1.5rem !important;\n }\n\n .pb-lg-4,\n.py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pl-lg-4,\n.px-lg-4 {\n padding-left: 1.5rem !important;\n }\n\n .p-lg-5 {\n padding: 3rem !important;\n }\n\n .pt-lg-5,\n.py-lg-5 {\n padding-top: 3rem !important;\n }\n\n .pr-lg-5,\n.px-lg-5 {\n padding-right: 3rem !important;\n }\n\n .pb-lg-5,\n.py-lg-5 {\n padding-bottom: 3rem !important;\n }\n\n .pl-lg-5,\n.px-lg-5 {\n padding-left: 3rem !important;\n }\n\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n\n .mt-lg-n1,\n.my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n\n .mr-lg-n1,\n.mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n\n .mb-lg-n1,\n.my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n\n .ml-lg-n1,\n.mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n\n .mt-lg-n2,\n.my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n\n .mr-lg-n2,\n.mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n\n .mb-lg-n2,\n.my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n\n .ml-lg-n2,\n.mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n\n .m-lg-n3 {\n margin: -1rem !important;\n }\n\n .mt-lg-n3,\n.my-lg-n3 {\n margin-top: -1rem !important;\n }\n\n .mr-lg-n3,\n.mx-lg-n3 {\n margin-right: -1rem !important;\n }\n\n .mb-lg-n3,\n.my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n\n .ml-lg-n3,\n.mx-lg-n3 {\n margin-left: -1rem !important;\n }\n\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n\n .mt-lg-n4,\n.my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n\n .mr-lg-n4,\n.mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n\n .mb-lg-n4,\n.my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n\n .ml-lg-n4,\n.mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n\n .m-lg-n5 {\n margin: -3rem !important;\n }\n\n .mt-lg-n5,\n.my-lg-n5 {\n margin-top: -3rem !important;\n }\n\n .mr-lg-n5,\n.mx-lg-n5 {\n margin-right: -3rem !important;\n }\n\n .mb-lg-n5,\n.my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n\n .ml-lg-n5,\n.mx-lg-n5 {\n margin-left: -3rem !important;\n }\n\n .m-lg-auto {\n margin: auto !important;\n }\n\n .mt-lg-auto,\n.my-lg-auto {\n margin-top: auto !important;\n }\n\n .mr-lg-auto,\n.mx-lg-auto {\n margin-right: auto !important;\n }\n\n .mb-lg-auto,\n.my-lg-auto {\n margin-bottom: auto !important;\n }\n\n .ml-lg-auto,\n.mx-lg-auto {\n margin-left: auto !important;\n }\n}\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n\n .mt-xl-0,\n.my-xl-0 {\n margin-top: 0 !important;\n }\n\n .mr-xl-0,\n.mx-xl-0 {\n margin-right: 0 !important;\n }\n\n .mb-xl-0,\n.my-xl-0 {\n margin-bottom: 0 !important;\n }\n\n .ml-xl-0,\n.mx-xl-0 {\n margin-left: 0 !important;\n }\n\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n\n .mt-xl-1,\n.my-xl-1 {\n margin-top: 0.25rem !important;\n }\n\n .mr-xl-1,\n.mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n\n .mb-xl-1,\n.my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n\n .ml-xl-1,\n.mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n\n .mt-xl-2,\n.my-xl-2 {\n margin-top: 0.5rem !important;\n }\n\n .mr-xl-2,\n.mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n\n .mb-xl-2,\n.my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n\n .ml-xl-2,\n.mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n\n .m-xl-3 {\n margin: 1rem !important;\n }\n\n .mt-xl-3,\n.my-xl-3 {\n margin-top: 1rem !important;\n }\n\n .mr-xl-3,\n.mx-xl-3 {\n margin-right: 1rem !important;\n }\n\n .mb-xl-3,\n.my-xl-3 {\n margin-bottom: 1rem !important;\n }\n\n .ml-xl-3,\n.mx-xl-3 {\n margin-left: 1rem !important;\n }\n\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n\n .mt-xl-4,\n.my-xl-4 {\n margin-top: 1.5rem !important;\n }\n\n .mr-xl-4,\n.mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n\n .mb-xl-4,\n.my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n\n .ml-xl-4,\n.mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n\n .m-xl-5 {\n margin: 3rem !important;\n }\n\n .mt-xl-5,\n.my-xl-5 {\n margin-top: 3rem !important;\n }\n\n .mr-xl-5,\n.mx-xl-5 {\n margin-right: 3rem !important;\n }\n\n .mb-xl-5,\n.my-xl-5 {\n margin-bottom: 3rem !important;\n }\n\n .ml-xl-5,\n.mx-xl-5 {\n margin-left: 3rem !important;\n }\n\n .p-xl-0 {\n padding: 0 !important;\n }\n\n .pt-xl-0,\n.py-xl-0 {\n padding-top: 0 !important;\n }\n\n .pr-xl-0,\n.px-xl-0 {\n padding-right: 0 !important;\n }\n\n .pb-xl-0,\n.py-xl-0 {\n padding-bottom: 0 !important;\n }\n\n .pl-xl-0,\n.px-xl-0 {\n padding-left: 0 !important;\n }\n\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n\n .pt-xl-1,\n.py-xl-1 {\n padding-top: 0.25rem !important;\n }\n\n .pr-xl-1,\n.px-xl-1 {\n padding-right: 0.25rem !important;\n }\n\n .pb-xl-1,\n.py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n\n .pl-xl-1,\n.px-xl-1 {\n padding-left: 0.25rem !important;\n }\n\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n\n .pt-xl-2,\n.py-xl-2 {\n padding-top: 0.5rem !important;\n }\n\n .pr-xl-2,\n.px-xl-2 {\n padding-right: 0.5rem !important;\n }\n\n .pb-xl-2,\n.py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n\n .pl-xl-2,\n.px-xl-2 {\n padding-left: 0.5rem !important;\n }\n\n .p-xl-3 {\n padding: 1rem !important;\n }\n\n .pt-xl-3,\n.py-xl-3 {\n padding-top: 1rem !important;\n }\n\n .pr-xl-3,\n.px-xl-3 {\n padding-right: 1rem !important;\n }\n\n .pb-xl-3,\n.py-xl-3 {\n padding-bottom: 1rem !important;\n }\n\n .pl-xl-3,\n.px-xl-3 {\n padding-left: 1rem !important;\n }\n\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n\n .pt-xl-4,\n.py-xl-4 {\n padding-top: 1.5rem !important;\n }\n\n .pr-xl-4,\n.px-xl-4 {\n padding-right: 1.5rem !important;\n }\n\n .pb-xl-4,\n.py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n\n .pl-xl-4,\n.px-xl-4 {\n padding-left: 1.5rem !important;\n }\n\n .p-xl-5 {\n padding: 3rem !important;\n }\n\n .pt-xl-5,\n.py-xl-5 {\n padding-top: 3rem !important;\n }\n\n .pr-xl-5,\n.px-xl-5 {\n padding-right: 3rem !important;\n }\n\n .pb-xl-5,\n.py-xl-5 {\n padding-bottom: 3rem !important;\n }\n\n .pl-xl-5,\n.px-xl-5 {\n padding-left: 3rem !important;\n }\n\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n\n .mt-xl-n1,\n.my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n\n .mr-xl-n1,\n.mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n\n .mb-xl-n1,\n.my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n\n .ml-xl-n1,\n.mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n\n .mt-xl-n2,\n.my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n\n .mr-xl-n2,\n.mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n\n .mb-xl-n2,\n.my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n\n .ml-xl-n2,\n.mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n\n .m-xl-n3 {\n margin: -1rem !important;\n }\n\n .mt-xl-n3,\n.my-xl-n3 {\n margin-top: -1rem !important;\n }\n\n .mr-xl-n3,\n.mx-xl-n3 {\n margin-right: -1rem !important;\n }\n\n .mb-xl-n3,\n.my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n\n .ml-xl-n3,\n.mx-xl-n3 {\n margin-left: -1rem !important;\n }\n\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n\n .mt-xl-n4,\n.my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n\n .mr-xl-n4,\n.mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n\n .mb-xl-n4,\n.my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n\n .ml-xl-n4,\n.mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n\n .m-xl-n5 {\n margin: -3rem !important;\n }\n\n .mt-xl-n5,\n.my-xl-n5 {\n margin-top: -3rem !important;\n }\n\n .mr-xl-n5,\n.mx-xl-n5 {\n margin-right: -3rem !important;\n }\n\n .mb-xl-n5,\n.my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n\n .ml-xl-n5,\n.mx-xl-n5 {\n margin-left: -3rem !important;\n }\n\n .m-xl-auto {\n margin: auto !important;\n }\n\n .mt-xl-auto,\n.my-xl-auto {\n margin-top: auto !important;\n }\n\n .mr-xl-auto,\n.mx-xl-auto {\n margin-right: auto !important;\n }\n\n .mb-xl-auto,\n.my-xl-auto {\n margin-bottom: auto !important;\n }\n\n .ml-xl-auto,\n.mx-xl-auto {\n margin-left: auto !important;\n }\n}\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n.text-justify {\n text-align: justify !important;\n}\n.text-wrap {\n white-space: normal !important;\n}\n.text-nowrap {\n white-space: nowrap !important;\n}\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.text-left {\n text-align: left !important;\n}\n.text-right {\n text-align: right !important;\n}\n.text-center {\n text-align: center !important;\n}\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n\n .text-sm-right {\n text-align: right !important;\n }\n\n .text-sm-center {\n text-align: center !important;\n }\n}\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n\n .text-md-right {\n text-align: right !important;\n }\n\n .text-md-center {\n text-align: center !important;\n }\n}\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n\n .text-lg-right {\n text-align: right !important;\n }\n\n .text-lg-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n\n .text-xl-right {\n text-align: right !important;\n }\n\n .text-xl-center {\n text-align: center !important;\n }\n}\n.text-lowercase {\n text-transform: lowercase !important;\n}\n.text-uppercase {\n text-transform: uppercase !important;\n}\n.text-capitalize {\n text-transform: capitalize !important;\n}\n.font-weight-light {\n font-weight: 300 !important;\n}\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n.font-weight-normal {\n font-weight: 400 !important;\n}\n.font-weight-bold {\n font-weight: 700 !important;\n}\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n.font-italic {\n font-style: italic !important;\n}\n.text-white {\n color: #fff !important;\n}\n.text-primary {\n color: #007bff !important;\n}\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n.text-secondary {\n color: #6c757d !important;\n}\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n.text-success {\n color: #28a745 !important;\n}\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n.text-info {\n color: #17a2b8 !important;\n}\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n.text-warning {\n color: #ffc107 !important;\n}\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n.text-danger {\n color: #dc3545 !important;\n}\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n.text-light {\n color: #f8f9fa !important;\n}\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n.text-dark {\n color: #343a40 !important;\n}\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n.text-body {\n color: #212529 !important;\n}\n.text-muted {\n color: #6c757d !important;\n}\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.text-decoration-none {\n text-decoration: none !important;\n}\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n.text-reset {\n color: inherit !important;\n}\n.visible {\n visibility: visible !important;\n}\n.invisible {\n visibility: hidden !important;\n}\n@media print {\n *,\n*::before,\n*::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n\n a:not(.btn) {\n text-decoration: underline;\n }\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n pre {\n white-space: pre-wrap !important;\n }\n\n pre,\nblockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group;\n }\n\n tr,\nimg {\n page-break-inside: avoid;\n }\n\n p,\nh2,\nh3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\nh3 {\n page-break-after: avoid;\n }\n\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n\n .container {\n min-width: 992px !important;\n }\n\n .navbar {\n display: none;\n }\n\n .badge {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n.table th {\n background-color: #fff !important;\n }\n\n .table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}","@charset \"UTF-8\";\n/*!\n * Material Design for Bootstrap 4\n * Version: MDB PRO 4.8.2\n *\n *\n * Copyright: Material Design for Bootstrap\n * https://mdbootstrap.com/\n *\n * Read the license: https://mdbootstrap.com/general/license/\n *\n *\n * Documentation: https://mdbootstrap.com/\n *\n * Getting started: https://mdbootstrap.com/docs/jquery/getting-started/download/\n *\n * Tutorials: https://mdbootstrap.com/education/bootstrap/\n *\n * Templates: https://mdbootstrap.com/templates/\n *\n * Support: https://mdbootstrap.com/support/\n *\n * Contact: office@mdbootstrap.com\n *\n * Attribution: Animate CSS, Twitter Bootstrap, Materialize CSS, Normalize CSS, Waves JS, WOW JS, Toastr, Chart.js\n *\n */\n.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}\n.cdk-overlay-container{position:fixed;z-index:1000}\n.cdk-overlay-container:empty{display:none}\n.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}\n.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}\n.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}\n@media screen and (-ms-high-contrast: active){.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}}\n.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}\n.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}\n.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}\n.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}\n.cdk-overlay-container {\n z-index: 1050 !important;\n}\n/*** Global ***/\n.mdb-color.lighten-5 {\n background-color: #d0d6e2 !important;\n}\n.mdb-color.lighten-4 {\n background-color: #b1bace !important;\n}\n.mdb-color.lighten-3 {\n background-color: #929fba !important;\n}\n.mdb-color.lighten-2 {\n background-color: #7283a7 !important;\n}\n.mdb-color.lighten-1 {\n background-color: #59698d !important;\n}\n.mdb-color {\n background-color: #45526e !important;\n}\n.mdb-color-text {\n color: #45526e !important;\n}\n.rgba-mdb-color-slight,\n.rgba-mdb-color-slight:after {\n background-color: rgba(69, 82, 110, 0.1);\n}\n.rgba-mdb-color-light,\n.rgba-mdb-color-light:after {\n background-color: rgba(69, 82, 110, 0.3);\n}\n.rgba-mdb-color-strong,\n.rgba-mdb-color-strong:after {\n background-color: rgba(69, 82, 110, 0.7);\n}\n.mdb-color.darken-1 {\n background-color: #3b465e !important;\n}\n.mdb-color.darken-2 {\n background-color: #2e3951 !important;\n}\n.mdb-color.darken-3 {\n background-color: #1c2a48 !important;\n}\n.mdb-color.darken-4 {\n background-color: #1c2331 !important;\n}\n.red.lighten-5 {\n background-color: #ffebee !important;\n}\n.red.lighten-4 {\n background-color: #ffcdd2 !important;\n}\n.red.lighten-3 {\n background-color: #ef9a9a !important;\n}\n.red.lighten-2 {\n background-color: #e57373 !important;\n}\n.red.lighten-1 {\n background-color: #ef5350 !important;\n}\n.red {\n background-color: #f44336 !important;\n}\n.red-text {\n color: #f44336 !important;\n}\n.rgba-red-slight,\n.rgba-red-slight:after {\n background-color: rgba(244, 67, 54, 0.1);\n}\n.rgba-red-light,\n.rgba-red-light:after {\n background-color: rgba(244, 67, 54, 0.3);\n}\n.rgba-red-strong,\n.rgba-red-strong:after {\n background-color: rgba(244, 67, 54, 0.7);\n}\n.red.darken-1 {\n background-color: #e53935 !important;\n}\n.red.darken-2 {\n background-color: #d32f2f !important;\n}\n.red.darken-3 {\n background-color: #c62828 !important;\n}\n.red.darken-4 {\n background-color: #b71c1c !important;\n}\n.red.accent-1 {\n background-color: #ff8a80 !important;\n}\n.red.accent-2 {\n background-color: #ff5252 !important;\n}\n.red.accent-3 {\n background-color: #ff1744 !important;\n}\n.red.accent-4 {\n background-color: #d50000 !important;\n}\n.pink.lighten-5 {\n background-color: #fce4ec !important;\n}\n.pink.lighten-4 {\n background-color: #f8bbd0 !important;\n}\n.pink.lighten-3 {\n background-color: #f48fb1 !important;\n}\n.pink.lighten-2 {\n background-color: #f06292 !important;\n}\n.pink.lighten-1 {\n background-color: #ec407a !important;\n}\n.pink {\n background-color: #e91e63 !important;\n}\n.pink-text {\n color: #e91e63 !important;\n}\n.rgba-pink-slight,\n.rgba-pink-slight:after {\n background-color: rgba(233, 30, 99, 0.1);\n}\n.rgba-pink-light,\n.rgba-pink-light:after {\n background-color: rgba(233, 30, 99, 0.3);\n}\n.rgba-pink-strong,\n.rgba-pink-strong:after {\n background-color: rgba(233, 30, 99, 0.7);\n}\n.pink.darken-1 {\n background-color: #d81b60 !important;\n}\n.pink.darken-2 {\n background-color: #c2185b !important;\n}\n.pink.darken-3 {\n background-color: #ad1457 !important;\n}\n.pink.darken-4 {\n background-color: #880e4f !important;\n}\n.pink.accent-1 {\n background-color: #ff80ab !important;\n}\n.pink.accent-2 {\n background-color: #ff4081 !important;\n}\n.pink.accent-3 {\n background-color: #f50057 !important;\n}\n.pink.accent-4 {\n background-color: #c51162 !important;\n}\n.purple.lighten-5 {\n background-color: #f3e5f5 !important;\n}\n.purple.lighten-4 {\n background-color: #e1bee7 !important;\n}\n.purple.lighten-3 {\n background-color: #ce93d8 !important;\n}\n.purple.lighten-2 {\n background-color: #ba68c8 !important;\n}\n.purple.lighten-1 {\n background-color: #ab47bc !important;\n}\n.purple {\n background-color: #9c27b0 !important;\n}\n.purple-text {\n color: #9c27b0 !important;\n}\n.rgba-purple-slight,\n.rgba-purple-slight:after {\n background-color: rgba(156, 39, 176, 0.1);\n}\n.rgba-purple-light,\n.rgba-purple-light:after {\n background-color: rgba(156, 39, 176, 0.3);\n}\n.rgba-purple-strong,\n.rgba-purple-strong:after {\n background-color: rgba(156, 39, 176, 0.7);\n}\n.purple.darken-1 {\n background-color: #8e24aa !important;\n}\n.purple.darken-2 {\n background-color: #7b1fa2 !important;\n}\n.purple.darken-3 {\n background-color: #6a1b9a !important;\n}\n.purple.darken-4 {\n background-color: #4a148c !important;\n}\n.purple.accent-1 {\n background-color: #ea80fc !important;\n}\n.purple.accent-2 {\n background-color: #e040fb !important;\n}\n.purple.accent-3 {\n background-color: #d500f9 !important;\n}\n.purple.accent-4 {\n background-color: #aa00ff !important;\n}\n.deep-purple.lighten-5 {\n background-color: #ede7f6 !important;\n}\n.deep-purple.lighten-4 {\n background-color: #d1c4e9 !important;\n}\n.deep-purple.lighten-3 {\n background-color: #b39ddb !important;\n}\n.deep-purple.lighten-2 {\n background-color: #9575cd !important;\n}\n.deep-purple.lighten-1 {\n background-color: #7e57c2 !important;\n}\n.deep-purple {\n background-color: #673ab7 !important;\n}\n.deep-purple-text {\n color: #673ab7 !important;\n}\n.rgba-deep-purple-slight,\n.rgba-deep-purple-slight:after {\n background-color: rgba(103, 58, 183, 0.1);\n}\n.rgba-deep-purple-light,\n.rgba-deep-purple-light:after {\n background-color: rgba(103, 58, 183, 0.3);\n}\n.rgba-deep-purple-strong,\n.rgba-deep-purple-strong:after {\n background-color: rgba(103, 58, 183, 0.7);\n}\n.deep-purple.darken-1 {\n background-color: #5e35b1 !important;\n}\n.deep-purple.darken-2 {\n background-color: #512da8 !important;\n}\n.deep-purple.darken-3 {\n background-color: #4527a0 !important;\n}\n.deep-purple.darken-4 {\n background-color: #311b92 !important;\n}\n.deep-purple.accent-1 {\n background-color: #b388ff !important;\n}\n.deep-purple.accent-2 {\n background-color: #7c4dff !important;\n}\n.deep-purple.accent-3 {\n background-color: #651fff !important;\n}\n.deep-purple.accent-4 {\n background-color: #6200ea !important;\n}\n.indigo.lighten-5 {\n background-color: #e8eaf6 !important;\n}\n.indigo.lighten-4 {\n background-color: #c5cae9 !important;\n}\n.indigo.lighten-3 {\n background-color: #9fa8da !important;\n}\n.indigo.lighten-2 {\n background-color: #7986cb !important;\n}\n.indigo.lighten-1 {\n background-color: #5c6bc0 !important;\n}\n.indigo {\n background-color: #3f51b5 !important;\n}\n.indigo-text {\n color: #3f51b5 !important;\n}\n.rgba-indigo-slight,\n.rgba-indigo-slight:after {\n background-color: rgba(63, 81, 181, 0.1);\n}\n.rgba-indigo-light,\n.rgba-indigo-light:after {\n background-color: rgba(63, 81, 181, 0.3);\n}\n.rgba-indigo-strong,\n.rgba-indigo-strong:after {\n background-color: rgba(63, 81, 181, 0.7);\n}\n.indigo.darken-1 {\n background-color: #3949ab !important;\n}\n.indigo.darken-2 {\n background-color: #303f9f !important;\n}\n.indigo.darken-3 {\n background-color: #283593 !important;\n}\n.indigo.darken-4 {\n background-color: #1a237e !important;\n}\n.indigo.accent-1 {\n background-color: #8c9eff !important;\n}\n.indigo.accent-2 {\n background-color: #536dfe !important;\n}\n.indigo.accent-3 {\n background-color: #3d5afe !important;\n}\n.indigo.accent-4 {\n background-color: #304ffe !important;\n}\n.blue.lighten-5 {\n background-color: #e3f2fd !important;\n}\n.blue.lighten-4 {\n background-color: #bbdefb !important;\n}\n.blue.lighten-3 {\n background-color: #90caf9 !important;\n}\n.blue.lighten-2 {\n background-color: #64b5f6 !important;\n}\n.blue.lighten-1 {\n background-color: #42a5f5 !important;\n}\n.blue {\n background-color: #2196f3 !important;\n}\n.blue-text {\n color: #2196f3 !important;\n}\n.rgba-blue-slight,\n.rgba-blue-slight:after {\n background-color: rgba(33, 150, 243, 0.1);\n}\n.rgba-blue-light,\n.rgba-blue-light:after {\n background-color: rgba(33, 150, 243, 0.3);\n}\n.rgba-blue-strong,\n.rgba-blue-strong:after {\n background-color: rgba(33, 150, 243, 0.7);\n}\n.blue.darken-1 {\n background-color: #1e88e5 !important;\n}\n.blue.darken-2 {\n background-color: #1976d2 !important;\n}\n.blue.darken-3 {\n background-color: #1565c0 !important;\n}\n.blue.darken-4 {\n background-color: #0d47a1 !important;\n}\n.blue.accent-1 {\n background-color: #82b1ff !important;\n}\n.blue.accent-2 {\n background-color: #448aff !important;\n}\n.blue.accent-3 {\n background-color: #2979ff !important;\n}\n.blue.accent-4 {\n background-color: #2962ff !important;\n}\n.light-blue.lighten-5 {\n background-color: #e1f5fe !important;\n}\n.light-blue.lighten-4 {\n background-color: #b3e5fc !important;\n}\n.light-blue.lighten-3 {\n background-color: #81d4fa !important;\n}\n.light-blue.lighten-2 {\n background-color: #4fc3f7 !important;\n}\n.light-blue.lighten-1 {\n background-color: #29b6f6 !important;\n}\n.light-blue {\n background-color: #03a9f4 !important;\n}\n.light-blue-text {\n color: #03a9f4 !important;\n}\n.rgba-light-blue-slight,\n.rgba-light-blue-slight:after {\n background-color: rgba(3, 169, 244, 0.1);\n}\n.rgba-light-blue-light,\n.rgba-light-blue-light:after {\n background-color: rgba(3, 169, 244, 0.3);\n}\n.rgba-light-blue-strong,\n.rgba-light-blue-strong:after {\n background-color: rgba(3, 169, 244, 0.7);\n}\n.light-blue.darken-1 {\n background-color: #039be5 !important;\n}\n.light-blue.darken-2 {\n background-color: #0288d1 !important;\n}\n.light-blue.darken-3 {\n background-color: #0277bd !important;\n}\n.light-blue.darken-4 {\n background-color: #01579b !important;\n}\n.light-blue.accent-1 {\n background-color: #80d8ff !important;\n}\n.light-blue.accent-2 {\n background-color: #40c4ff !important;\n}\n.light-blue.accent-3 {\n background-color: #00b0ff !important;\n}\n.light-blue.accent-4 {\n background-color: #0091ea !important;\n}\n.cyan.lighten-5 {\n background-color: #e0f7fa !important;\n}\n.cyan.lighten-4 {\n background-color: #b2ebf2 !important;\n}\n.cyan.lighten-3 {\n background-color: #80deea !important;\n}\n.cyan.lighten-2 {\n background-color: #4dd0e1 !important;\n}\n.cyan.lighten-1 {\n background-color: #26c6da !important;\n}\n.cyan {\n background-color: #00bcd4 !important;\n}\n.cyan-text {\n color: #00bcd4 !important;\n}\n.rgba-cyan-slight,\n.rgba-cyan-slight:after {\n background-color: rgba(0, 188, 212, 0.1);\n}\n.rgba-cyan-light,\n.rgba-cyan-light:after {\n background-color: rgba(0, 188, 212, 0.3);\n}\n.rgba-cyan-strong,\n.rgba-cyan-strong:after {\n background-color: rgba(0, 188, 212, 0.7);\n}\n.cyan.darken-1 {\n background-color: #00acc1 !important;\n}\n.cyan.darken-2 {\n background-color: #0097a7 !important;\n}\n.cyan.darken-3 {\n background-color: #00838f !important;\n}\n.cyan.darken-4 {\n background-color: #006064 !important;\n}\n.cyan.accent-1 {\n background-color: #84ffff !important;\n}\n.cyan.accent-2 {\n background-color: #18ffff !important;\n}\n.cyan.accent-3 {\n background-color: #00e5ff !important;\n}\n.cyan.accent-4 {\n background-color: #00b8d4 !important;\n}\n.teal.lighten-5 {\n background-color: #e0f2f1 !important;\n}\n.teal.lighten-4 {\n background-color: #b2dfdb !important;\n}\n.teal.lighten-3 {\n background-color: #80cbc4 !important;\n}\n.teal.lighten-2 {\n background-color: #4db6ac !important;\n}\n.teal.lighten-1 {\n background-color: #26a69a !important;\n}\n.teal {\n background-color: #009688 !important;\n}\n.teal-text {\n color: #009688 !important;\n}\n.rgba-teal-slight,\n.rgba-teal-slight:after {\n background-color: rgba(0, 150, 136, 0.1);\n}\n.rgba-teal-light,\n.rgba-teal-light:after {\n background-color: rgba(0, 150, 136, 0.3);\n}\n.rgba-teal-strong,\n.rgba-teal-strong:after {\n background-color: rgba(0, 150, 136, 0.7);\n}\n.teal.darken-1 {\n background-color: #00897b !important;\n}\n.teal.darken-2 {\n background-color: #00796b !important;\n}\n.teal.darken-3 {\n background-color: #00695c !important;\n}\n.teal.darken-4 {\n background-color: #004d40 !important;\n}\n.teal.accent-1 {\n background-color: #a7ffeb !important;\n}\n.teal.accent-2 {\n background-color: #64ffda !important;\n}\n.teal.accent-3 {\n background-color: #1de9b6 !important;\n}\n.teal.accent-4 {\n background-color: #00bfa5 !important;\n}\n.green.lighten-5 {\n background-color: #e8f5e9 !important;\n}\n.green.lighten-4 {\n background-color: #c8e6c9 !important;\n}\n.green.lighten-3 {\n background-color: #a5d6a7 !important;\n}\n.green.lighten-2 {\n background-color: #81c784 !important;\n}\n.green.lighten-1 {\n background-color: #66bb6a !important;\n}\n.green {\n background-color: #4caf50 !important;\n}\n.green-text {\n color: #4caf50 !important;\n}\n.rgba-green-slight,\n.rgba-green-slight:after {\n background-color: rgba(76, 175, 80, 0.1);\n}\n.rgba-green-light,\n.rgba-green-light:after {\n background-color: rgba(76, 175, 80, 0.3);\n}\n.rgba-green-strong,\n.rgba-green-strong:after {\n background-color: rgba(76, 175, 80, 0.7);\n}\n.green.darken-1 {\n background-color: #43a047 !important;\n}\n.green.darken-2 {\n background-color: #388e3c !important;\n}\n.green.darken-3 {\n background-color: #2e7d32 !important;\n}\n.green.darken-4 {\n background-color: #1b5e20 !important;\n}\n.green.accent-1 {\n background-color: #b9f6ca !important;\n}\n.green.accent-2 {\n background-color: #69f0ae !important;\n}\n.green.accent-3 {\n background-color: #00e676 !important;\n}\n.green.accent-4 {\n background-color: #00c853 !important;\n}\n.light-green.lighten-5 {\n background-color: #f1f8e9 !important;\n}\n.light-green.lighten-4 {\n background-color: #dcedc8 !important;\n}\n.light-green.lighten-3 {\n background-color: #c5e1a5 !important;\n}\n.light-green.lighten-2 {\n background-color: #aed581 !important;\n}\n.light-green.lighten-1 {\n background-color: #9ccc65 !important;\n}\n.light-green {\n background-color: #8bc34a !important;\n}\n.light-green-text {\n color: #8bc34a !important;\n}\n.rgba-light-green-slight,\n.rgba-light-green-slight:after {\n background-color: rgba(139, 195, 74, 0.1);\n}\n.rgba-light-green-light,\n.rgba-light-green-light:after {\n background-color: rgba(139, 195, 74, 0.3);\n}\n.rgba-light-green-strong,\n.rgba-light-green-strong:after {\n background-color: rgba(139, 195, 74, 0.7);\n}\n.light-green.darken-1 {\n background-color: #7cb342 !important;\n}\n.light-green.darken-2 {\n background-color: #689f38 !important;\n}\n.light-green.darken-3 {\n background-color: #558b2f !important;\n}\n.light-green.darken-4 {\n background-color: #33691e !important;\n}\n.light-green.accent-1 {\n background-color: #ccff90 !important;\n}\n.light-green.accent-2 {\n background-color: #b2ff59 !important;\n}\n.light-green.accent-3 {\n background-color: #76ff03 !important;\n}\n.light-green.accent-4 {\n background-color: #64dd17 !important;\n}\n.lime.lighten-5 {\n background-color: #f9fbe7 !important;\n}\n.lime.lighten-4 {\n background-color: #f0f4c3 !important;\n}\n.lime.lighten-3 {\n background-color: #e6ee9c !important;\n}\n.lime.lighten-2 {\n background-color: #dce775 !important;\n}\n.lime.lighten-1 {\n background-color: #d4e157 !important;\n}\n.lime {\n background-color: #cddc39 !important;\n}\n.lime-text {\n color: #cddc39 !important;\n}\n.rgba-lime-slight,\n.rgba-lime-slight:after {\n background-color: rgba(205, 220, 57, 0.1);\n}\n.rgba-lime-light,\n.rgba-lime-light:after {\n background-color: rgba(205, 220, 57, 0.3);\n}\n.rgba-lime-strong,\n.rgba-lime-strong:after {\n background-color: rgba(205, 220, 57, 0.7);\n}\n.lime.darken-1 {\n background-color: #c0ca33 !important;\n}\n.lime.darken-2 {\n background-color: #afb42b !important;\n}\n.lime.darken-3 {\n background-color: #9e9d24 !important;\n}\n.lime.darken-4 {\n background-color: #827717 !important;\n}\n.lime.accent-1 {\n background-color: #f4ff81 !important;\n}\n.lime.accent-2 {\n background-color: #eeff41 !important;\n}\n.lime.accent-3 {\n background-color: #c6ff00 !important;\n}\n.lime.accent-4 {\n background-color: #aeea00 !important;\n}\n.yellow.lighten-5 {\n background-color: #fffde7 !important;\n}\n.yellow.lighten-4 {\n background-color: #fff9c4 !important;\n}\n.yellow.lighten-3 {\n background-color: #fff59d !important;\n}\n.yellow.lighten-2 {\n background-color: #fff176 !important;\n}\n.yellow.lighten-1 {\n background-color: #ffee58 !important;\n}\n.yellow {\n background-color: #ffeb3b !important;\n}\n.yellow-text {\n color: #ffeb3b !important;\n}\n.rgba-yellow-slight,\n.rgba-yellow-slight:after {\n background-color: rgba(255, 235, 59, 0.1);\n}\n.rgba-yellow-light,\n.rgba-yellow-light:after {\n background-color: rgba(255, 235, 59, 0.3);\n}\n.rgba-yellow-strong,\n.rgba-yellow-strong:after {\n background-color: rgba(255, 235, 59, 0.7);\n}\n.yellow.darken-1 {\n background-color: #fdd835 !important;\n}\n.yellow.darken-2 {\n background-color: #fbc02d !important;\n}\n.yellow.darken-3 {\n background-color: #f9a825 !important;\n}\n.yellow.darken-4 {\n background-color: #f57f17 !important;\n}\n.yellow.accent-1 {\n background-color: #ffff8d !important;\n}\n.yellow.accent-2 {\n background-color: #ffff00 !important;\n}\n.yellow.accent-3 {\n background-color: #ffea00 !important;\n}\n.yellow.accent-4 {\n background-color: #ffd600 !important;\n}\n.amber.lighten-5 {\n background-color: #fff8e1 !important;\n}\n.amber.lighten-4 {\n background-color: #ffecb3 !important;\n}\n.amber.lighten-3 {\n background-color: #ffe082 !important;\n}\n.amber.lighten-2 {\n background-color: #ffd54f !important;\n}\n.amber.lighten-1 {\n background-color: #ffca28 !important;\n}\n.amber {\n background-color: #ffc107 !important;\n}\n.amber-text {\n color: #ffc107 !important;\n}\n.rgba-amber-slight,\n.rgba-amber-slight:after {\n background-color: rgba(255, 193, 7, 0.1);\n}\n.rgba-amber-light,\n.rgba-amber-light:after {\n background-color: rgba(255, 193, 7, 0.3);\n}\n.rgba-amber-strong,\n.rgba-amber-strong:after {\n background-color: rgba(255, 193, 7, 0.7);\n}\n.amber.darken-1 {\n background-color: #ffb300 !important;\n}\n.amber.darken-2 {\n background-color: #ffa000 !important;\n}\n.amber.darken-3 {\n background-color: #ff8f00 !important;\n}\n.amber.darken-4 {\n background-color: #ff6f00 !important;\n}\n.amber.accent-1 {\n background-color: #ffe57f !important;\n}\n.amber.accent-2 {\n background-color: #ffd740 !important;\n}\n.amber.accent-3 {\n background-color: #ffc400 !important;\n}\n.amber.accent-4 {\n background-color: #ffab00 !important;\n}\n.orange.lighten-5 {\n background-color: #fff3e0 !important;\n}\n.orange.lighten-4 {\n background-color: #ffe0b2 !important;\n}\n.orange.lighten-3 {\n background-color: #ffcc80 !important;\n}\n.orange.lighten-2 {\n background-color: #ffb74d !important;\n}\n.orange.lighten-1 {\n background-color: #ffa726 !important;\n}\n.orange {\n background-color: #ff9800 !important;\n}\n.orange-text {\n color: #ff9800 !important;\n}\n.rgba-orange-slight,\n.rgba-orange-slight:after {\n background-color: rgba(255, 152, 0, 0.1);\n}\n.rgba-orange-light,\n.rgba-orange-light:after {\n background-color: rgba(255, 152, 0, 0.3);\n}\n.rgba-orange-strong,\n.rgba-orange-strong:after {\n background-color: rgba(255, 152, 0, 0.7);\n}\n.orange.darken-1 {\n background-color: #fb8c00 !important;\n}\n.orange.darken-2 {\n background-color: #f57c00 !important;\n}\n.orange.darken-3 {\n background-color: #ef6c00 !important;\n}\n.orange.darken-4 {\n background-color: #e65100 !important;\n}\n.orange.accent-1 {\n background-color: #ffd180 !important;\n}\n.orange.accent-2 {\n background-color: #ffab40 !important;\n}\n.orange.accent-3 {\n background-color: #ff9100 !important;\n}\n.orange.accent-4 {\n background-color: #ff6d00 !important;\n}\n.deep-orange.lighten-5 {\n background-color: #fbe9e7 !important;\n}\n.deep-orange.lighten-4 {\n background-color: #ffccbc !important;\n}\n.deep-orange.lighten-3 {\n background-color: #ffab91 !important;\n}\n.deep-orange.lighten-2 {\n background-color: #ff8a65 !important;\n}\n.deep-orange.lighten-1 {\n background-color: #ff7043 !important;\n}\n.deep-orange {\n background-color: #ff5722 !important;\n}\n.deep-orange-text {\n color: #ff5722 !important;\n}\n.rgba-deep-orange-slight,\n.rgba-deep-orange-slight:after {\n background-color: rgba(255, 87, 34, 0.1);\n}\n.rgba-deep-orange-light,\n.rgba-deep-orange-light:after {\n background-color: rgba(255, 87, 34, 0.3);\n}\n.rgba-deep-orange-strong,\n.rgba-deep-orange-strong:after {\n background-color: rgba(255, 87, 34, 0.7);\n}\n.deep-orange.darken-1 {\n background-color: #f4511e !important;\n}\n.deep-orange.darken-2 {\n background-color: #e64a19 !important;\n}\n.deep-orange.darken-3 {\n background-color: #d84315 !important;\n}\n.deep-orange.darken-4 {\n background-color: #bf360c !important;\n}\n.deep-orange.accent-1 {\n background-color: #ff9e80 !important;\n}\n.deep-orange.accent-2 {\n background-color: #ff6e40 !important;\n}\n.deep-orange.accent-3 {\n background-color: #ff3d00 !important;\n}\n.deep-orange.accent-4 {\n background-color: #dd2c00 !important;\n}\n.brown.lighten-5 {\n background-color: #efebe9 !important;\n}\n.brown.lighten-4 {\n background-color: #d7ccc8 !important;\n}\n.brown.lighten-3 {\n background-color: #bcaaa4 !important;\n}\n.brown.lighten-2 {\n background-color: #a1887f !important;\n}\n.brown.lighten-1 {\n background-color: #8d6e63 !important;\n}\n.brown {\n background-color: #795548 !important;\n}\n.brown-text {\n color: #795548 !important;\n}\n.rgba-brown-slight,\n.rgba-brown-slight:after {\n background-color: rgba(121, 85, 72, 0.1);\n}\n.rgba-brown-light,\n.rgba-brown-light:after {\n background-color: rgba(121, 85, 72, 0.3);\n}\n.rgba-brown-strong,\n.rgba-brown-strong:after {\n background-color: rgba(121, 85, 72, 0.7);\n}\n.brown.darken-1 {\n background-color: #6d4c41 !important;\n}\n.brown.darken-2 {\n background-color: #5d4037 !important;\n}\n.brown.darken-3 {\n background-color: #4e342e !important;\n}\n.brown.darken-4 {\n background-color: #3e2723 !important;\n}\n.blue-grey.lighten-5 {\n background-color: #eceff1 !important;\n}\n.blue-grey.lighten-4 {\n background-color: #cfd8dc !important;\n}\n.blue-grey.lighten-3 {\n background-color: #b0bec5 !important;\n}\n.blue-grey.lighten-2 {\n background-color: #90a4ae !important;\n}\n.blue-grey.lighten-1 {\n background-color: #78909c !important;\n}\n.blue-grey {\n background-color: #607d8b !important;\n}\n.blue-grey-text {\n color: #607d8b !important;\n}\n.rgba-blue-grey-slight,\n.rgba-blue-grey-slight:after {\n background-color: rgba(96, 125, 139, 0.1);\n}\n.rgba-blue-grey-light,\n.rgba-blue-grey-light:after {\n background-color: rgba(96, 125, 139, 0.3);\n}\n.rgba-blue-grey-strong,\n.rgba-blue-grey-strong:after {\n background-color: rgba(96, 125, 139, 0.7);\n}\n.blue-grey.darken-1 {\n background-color: #546e7a !important;\n}\n.blue-grey.darken-2 {\n background-color: #455a64 !important;\n}\n.blue-grey.darken-3 {\n background-color: #37474f !important;\n}\n.blue-grey.darken-4 {\n background-color: #263238 !important;\n}\n.grey.lighten-5 {\n background-color: #fafafa !important;\n}\n.grey.lighten-4 {\n background-color: #f5f5f5 !important;\n}\n.grey.lighten-3 {\n background-color: #eeeeee !important;\n}\n.grey.lighten-2 {\n background-color: #e0e0e0 !important;\n}\n.grey.lighten-1 {\n background-color: #bdbdbd !important;\n}\n.grey {\n background-color: #9e9e9e !important;\n}\n.grey-text {\n color: #9e9e9e !important;\n}\n.rgba-grey-slight,\n.rgba-grey-slight:after {\n background-color: rgba(158, 158, 158, 0.1);\n}\n.rgba-grey-light,\n.rgba-grey-light:after {\n background-color: rgba(158, 158, 158, 0.3);\n}\n.rgba-grey-strong,\n.rgba-grey-strong:after {\n background-color: rgba(158, 158, 158, 0.7);\n}\n.grey.darken-1 {\n background-color: #757575 !important;\n}\n.grey.darken-2 {\n background-color: #616161 !important;\n}\n.grey.darken-3 {\n background-color: #424242 !important;\n}\n.grey.darken-4 {\n background-color: #212121 !important;\n}\n.black {\n background-color: #000 !important;\n}\n.black-text {\n color: #000 !important;\n}\n.rgba-black-slight,\n.rgba-black-slight:after {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.rgba-black-light,\n.rgba-black-light:after {\n background-color: rgba(0, 0, 0, 0.3);\n}\n.rgba-black-strong,\n.rgba-black-strong:after {\n background-color: rgba(0, 0, 0, 0.7);\n}\n.white {\n background-color: #fff !important;\n}\n.white-text {\n color: #fff !important;\n}\n.rgba-white-slight,\n.rgba-white-slight:after {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.rgba-white-light,\n.rgba-white-light:after {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.rgba-white-strong,\n.rgba-white-strong:after {\n background-color: rgba(255, 255, 255, 0.7);\n}\n.rgba-stylish-slight {\n background-color: rgba(62, 69, 81, 0.1);\n}\n.rgba-stylish-light {\n background-color: rgba(62, 69, 81, 0.3);\n}\n.rgba-stylish-strong {\n background-color: rgba(62, 69, 81, 0.7);\n}\n.primary-color, ul.stepper li.active a .circle, ul.stepper li.completed a .circle {\n background-color: #4285f4 !important;\n}\n.primary-color-dark {\n background-color: #0d47a1 !important;\n}\n.secondary-color {\n background-color: #aa66cc !important;\n}\n.secondary-color-dark {\n background-color: #9933cc !important;\n}\n.default-color {\n background-color: #2bbbad !important;\n}\n.default-color-dark {\n background-color: #00695c !important;\n}\n.info-color {\n background-color: #33b5e5 !important;\n}\n.info-color-dark {\n background-color: #0099cc !important;\n}\n.success-color {\n background-color: #00c851 !important;\n}\n.success-color-dark {\n background-color: #007e33 !important;\n}\n.warning-color {\n background-color: #ffbb33 !important;\n}\n.warning-color-dark {\n background-color: #ff8800 !important;\n}\n.danger-color, ul.stepper li.warning a .circle {\n background-color: #ff3547 !important;\n}\n.danger-color-dark {\n background-color: #cc0000 !important;\n}\n.elegant-color {\n background-color: #2e2e2e !important;\n}\n.elegant-color-dark {\n background-color: #212121 !important;\n}\n.stylish-color {\n background-color: #4b515d !important;\n}\n.stylish-color-dark {\n background-color: #3e4551 !important;\n}\n.unique-color {\n background-color: #3f729b !important;\n}\n.unique-color-dark {\n background-color: #1c2331 !important;\n}\n.special-color {\n background-color: #37474f !important;\n}\n.special-color-dark {\n background-color: #263238 !important;\n}\n.purple-gradient {\n background: linear-gradient(40deg, #ff6ec4, #7873f5) !important;\n}\n.peach-gradient {\n background: linear-gradient(40deg, #FFD86F, #FC6262) !important;\n}\n.aqua-gradient {\n background: linear-gradient(40deg, #2096ff, #05ffa3) !important;\n}\n.blue-gradient {\n background: linear-gradient(40deg, #45cafc, #303f9f) !important;\n}\n.purple-gradient-rgba {\n background: linear-gradient(40deg, rgba(255, 110, 196, 0.9), rgba(120, 115, 245, 0.9)) !important;\n}\n.peach-gradient-rgba {\n background: linear-gradient(40deg, rgba(255, 216, 111, 0.9), rgba(252, 98, 98, 0.9)) !important;\n}\n.aqua-gradient-rgba {\n background: linear-gradient(40deg, rgba(32, 150, 255, 0.9), rgba(5, 255, 163, 0.9)) !important;\n}\n.blue-gradient-rgba {\n background: linear-gradient(40deg, rgba(69, 202, 252, 0.9), rgba(48, 63, 159, 0.9)) !important;\n}\n.dark-grey-text {\n color: #4f4f4f !important;\n}\n.dark-grey-text:hover, .dark-grey-text:focus {\n color: #4f4f4f !important;\n}\n.hoverable {\n box-shadow: none;\n transition: all 0.55s ease-in-out;\n}\n.hoverable:hover {\n box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n transition: all 0.55s ease-in-out;\n}\n.z-depth-0 {\n box-shadow: none !important;\n}\n.z-depth-1 {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.z-depth-1-half {\n box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15) !important;\n}\n.z-depth-2 {\n box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19) !important;\n}\n.z-depth-3 {\n box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19) !important;\n}\n.z-depth-4 {\n box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21) !important;\n}\n.z-depth-5 {\n box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22) !important;\n}\n.disabled,\n:disabled {\n pointer-events: none !important;\n}\na {\n cursor: pointer;\n text-decoration: none;\n color: #007bff;\n transition: all 0.2s ease-in-out;\n}\na:hover {\n text-decoration: none;\n color: #0056b3;\n transition: all 0.2s ease-in-out;\n}\na.disabled:hover, a:disabled:hover {\n color: #007bff;\n}\na:not([href]):not([tabindex]), a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {\n color: inherit;\n text-decoration: none;\n}\n.img-fluid,\n.video-fluid {\n max-width: 100%;\n height: auto;\n}\n.flex-center {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n}\n.flex-center p {\n margin: 0;\n}\n.flex-center ul {\n text-align: center;\n}\n.flex-center ul li {\n margin-bottom: 1rem;\n}\n.flex-center ul li:last-of-type {\n margin-bottom: 0;\n}\n.hr-light {\n border-top: 1px solid #fff;\n}\n.hr-dark {\n border-top: 1px solid #666;\n}\n.w-responsive {\n width: 75%;\n}\n@media (max-width: 740px) {\n .w-responsive {\n width: 100%;\n }\n}\n.collapsible-body {\n display: none;\n}\n.jumbotron {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n border-radius: 0.125rem;\n background-color: #fff;\n}\n.bg-primary {\n background-color: #4285f4 !important;\n}\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #1266f1 !important;\n}\n.border-primary {\n border-color: #4285f4 !important;\n}\n.bg-danger {\n background-color: #ff3547 !important;\n}\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #ff0219 !important;\n}\n.border-danger {\n border-color: #ff3547 !important;\n}\n.bg-warning {\n background-color: #ffbb33 !important;\n}\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #ffaa00 !important;\n}\n.border-warning {\n border-color: #ffbb33 !important;\n}\n.bg-success {\n background-color: #00c851 !important;\n}\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #00953c !important;\n}\n.border-success {\n border-color: #00c851 !important;\n}\n.bg-info {\n background-color: #33b5e5 !important;\n}\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #1a9bcb !important;\n}\n.border-info {\n border-color: #33b5e5 !important;\n}\n.bg-default {\n background-color: #2bbbad !important;\n}\na.bg-default:hover, a.bg-default:focus,\nbutton.bg-default:hover,\nbutton.bg-default:focus {\n background-color: #219287 !important;\n}\n.border-default {\n border-color: #2bbbad !important;\n}\n.bg-secondary {\n background-color: #aa66cc !important;\n}\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #9540bf !important;\n}\n.border-secondary {\n border-color: #aa66cc !important;\n}\n.bg-dark {\n background-color: #212121 !important;\n}\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #080808 !important;\n}\n.border-dark {\n border-color: #212121 !important;\n}\n.bg-light {\n background-color: #e0e0e0 !important;\n}\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #c7c7c7 !important;\n}\n.border-light {\n border-color: #e0e0e0 !important;\n}\n.card-img-100 {\n width: 100px;\n height: 100px;\n}\n.card-img-64 {\n width: 64px;\n height: 64px;\n}\n.mml-1 {\n margin-left: -0.25rem !important;\n}\n.flex-1 {\n flex: 1;\n}\nbody {\n font-family: \"Roboto\", sans-serif;\n font-weight: 300;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: 300;\n}\n.h1-responsive {\n font-size: 150%;\n}\n.h2-responsive {\n font-size: 145%;\n}\n.h3-responsive {\n font-size: 135%;\n}\n.h4-responsive {\n font-size: 135%;\n}\n.h5-responsive {\n font-size: 135%;\n}\n@media (min-width: 576px) {\n .h1-responsive {\n font-size: 170%;\n }\n\n .h2-responsive {\n font-size: 140%;\n }\n\n .h3-responsive {\n font-size: 125%;\n }\n\n .h4-responsive {\n font-size: 125%;\n }\n\n .h5-responsive {\n font-size: 125%;\n }\n}\n@media (min-width: 768px) {\n .h1-responsive {\n font-size: 200%;\n }\n\n .h2-responsive {\n font-size: 170%;\n }\n\n .h3-responsive {\n font-size: 140%;\n }\n\n .h4-responsive {\n font-size: 125%;\n }\n\n .h5-responsive {\n font-size: 125%;\n }\n}\n@media (min-width: 992px) {\n .h1-responsive {\n font-size: 200%;\n }\n\n .h2-responsive {\n font-size: 170%;\n }\n\n .h3-responsive {\n font-size: 140%;\n }\n\n .h4-responsive {\n font-size: 125%;\n }\n\n .h5-responsive {\n font-size: 125%;\n }\n}\n@media (min-width: 1200px) {\n .h1-responsive {\n font-size: 250%;\n }\n\n .h2-responsive {\n font-size: 200%;\n }\n\n .h3-responsive {\n font-size: 170%;\n }\n\n .h4-responsive {\n font-size: 140%;\n }\n\n .h5-responsive {\n font-size: 125%;\n }\n}\n.divider-new {\n flex-direction: row;\n justify-content: center;\n align-items: center;\n display: flex;\n margin-top: 2.8rem;\n margin-bottom: 2.8rem;\n}\n.divider-new > h1,\n.divider-new h2,\n.divider-new h3,\n.divider-new h4,\n.divider-new h5,\n.divider-new h6 {\n margin-bottom: 0;\n}\n.divider-new:before, .divider-new:after {\n content: \"\";\n height: 1.5px;\n flex: 1;\n height: 2px;\n background: #c6c6c6;\n}\n.divider-new:before {\n margin: 0 0.5rem 0 0;\n}\n.divider-new:after {\n margin: 0 0 0 0.5rem;\n}\n.blockquote {\n padding: 0.5rem 1rem;\n border-left: 0.25rem solid #eceeef;\n}\n.blockquote.text-right {\n border-left: none;\n border-right: 0.25rem solid #eceeef;\n}\n.blockquote .bq-title {\n margin-bottom: 0;\n font-size: 1.5rem;\n font-weight: 400;\n}\n.blockquote p {\n padding: 1rem 0;\n font-size: 1.1rem;\n}\n.bq-primary {\n border-left: 3px solid #4285f4 !important;\n}\n.bq-primary .bq-title {\n color: #4285f4 !important;\n}\n.bq-danger {\n border-left: 3px solid #ff3547 !important;\n}\n.bq-danger .bq-title {\n color: #ff3547 !important;\n}\n.bq-warning {\n border-left: 3px solid #ffbb33 !important;\n}\n.bq-warning .bq-title {\n color: #ffbb33 !important;\n}\n.bq-success {\n border-left: 3px solid #00c851 !important;\n}\n.bq-success .bq-title {\n color: #00c851 !important;\n}\n.bq-info {\n border-left: 3px solid #33b5e5 !important;\n}\n.bq-info .bq-title {\n color: #33b5e5 !important;\n}\n.text-primary {\n color: #4285f4 !important;\n}\na.text-primary:hover, a.text-primary:focus {\n color: #1266f1 !important;\n}\n.text-danger {\n color: #ff3547 !important;\n}\na.text-danger:hover, a.text-danger:focus {\n color: #ff0219 !important;\n}\n.text-warning {\n color: #ffbb33 !important;\n}\na.text-warning:hover, a.text-warning:focus {\n color: #ffaa00 !important;\n}\n.text-success {\n color: #00c851 !important;\n}\na.text-success:hover, a.text-success:focus {\n color: #00953c !important;\n}\n.text-info {\n color: #33b5e5 !important;\n}\na.text-info:hover, a.text-info:focus {\n color: #1a9bcb !important;\n}\n.text-default {\n color: #2bbbad !important;\n}\na.text-default:hover, a.text-default:focus {\n color: #219287 !important;\n}\n.text-secondary {\n color: #aa66cc !important;\n}\na.text-secondary:hover, a.text-secondary:focus {\n color: #9540bf !important;\n}\n.text-dark {\n color: #212121 !important;\n}\na.text-dark:hover, a.text-dark:focus {\n color: #080808 !important;\n}\n.text-light {\n color: #e0e0e0 !important;\n}\na.text-light:hover, a.text-light:focus {\n color: #c7c7c7 !important;\n}\n.font-small {\n font-size: 0.9rem;\n}\n.view {\n position: relative;\n overflow: hidden;\n cursor: default;\n}\n.view .mask {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n width: 100%;\n height: 100%;\n background-attachment: fixed;\n}\n.view img,\n.view video {\n position: relative;\n display: block;\n}\n.view video.video-intro {\n z-index: -100;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n transition: 1s opacity;\n min-width: 100%;\n min-height: 100%;\n width: auto;\n height: auto;\n}\n.overlay .mask {\n opacity: 0;\n transition: all 0.4s ease-in-out;\n}\n.overlay .mask:hover {\n opacity: 1;\n}\n.zoom img,\n.zoom video {\n transition: all 0.2s linear;\n}\n.zoom:hover img,\n.zoom:hover video {\n transform: scale(1.1);\n}\n.pattern-1 {\n background: url('01.png');\n background-attachment: fixed;\n}\n.pattern-2 {\n background: url('02.png');\n background-attachment: fixed;\n}\n.pattern-3 {\n background: url('03.png');\n background-attachment: fixed;\n}\n.pattern-4 {\n background: url('04.png');\n background-attachment: fixed;\n}\n.pattern-5 {\n background: url('05.png');\n background-attachment: fixed;\n}\n.pattern-6 {\n background: url('06.png');\n background-attachment: fixed;\n}\n.pattern-7 {\n background: url('07.png');\n background-attachment: fixed;\n}\n.pattern-8 {\n background: url('08.png');\n background-attachment: fixed;\n}\n.pattern-9 {\n background: url('09.png');\n background-attachment: fixed;\n}\n/*!\n * Waves v0.7.6\n * http://fian.my.id/Waves\n *\n * Copyright 2014-2018 Alfiana E. Sibuea and other contributors\n * Released under the MIT license\n * https://github.com/fians/Waves/blob/master/LICENSE */\n.waves-effect {\n position: relative;\n cursor: pointer;\n overflow: hidden;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n.waves-effect .waves-ripple {\n position: absolute;\n border-radius: 50%;\n width: 100px;\n height: 100px;\n margin-top: -50px;\n margin-left: -50px;\n opacity: 0;\n background: rgba(0, 0, 0, 0.2);\n background: radial-gradient(rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n transition: all 0.5s ease-out;\n transition-property: transform, opacity;\n transform: scale(0) translate(0, 0);\n pointer-events: none;\n}\n.waves-effect.waves-light .waves-ripple {\n background: rgba(255, 255, 255, 0.4);\n background: radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%);\n}\n.waves-effect.waves-classic .waves-ripple {\n background: rgba(0, 0, 0, 0.2);\n}\n.waves-effect.waves-classic.waves-light .waves-ripple {\n background: rgba(255, 255, 255, 0.4);\n}\n.waves-notransition {\n transition: none !important;\n}\n.waves-button,\n.waves-circle {\n transform: translateZ(0);\n -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);\n}\n.waves-button,\n.waves-button:hover,\n.waves-button:visited,\n.waves-button-input {\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n border: none;\n outline: none;\n color: inherit;\n background-color: rgba(0, 0, 0, 0);\n font-size: 1em;\n line-height: 1em;\n text-align: center;\n text-decoration: none;\n z-index: 1;\n}\n.waves-button {\n padding: 0.85em 1.1em;\n border-radius: 0.2em;\n}\n.waves-button-input {\n margin: 0;\n padding: 0.85em 1.1em;\n}\n.waves-input-wrapper {\n display: inline-block;\n position: relative;\n vertical-align: middle;\n border-radius: 0.2em;\n}\n.waves-input-wrapper.waves-button {\n padding: 0;\n}\n.waves-input-wrapper .waves-button-input {\n position: relative;\n top: 0;\n left: 0;\n z-index: 1;\n}\n.waves-circle {\n text-align: center;\n width: 2.5em;\n height: 2.5em;\n line-height: 2.5em;\n border-radius: 50%;\n}\n.waves-float {\n -webkit-mask-image: none;\n box-shadow: 0px 1px 1.5px 1px rgba(0, 0, 0, 0.12);\n transition: all 300ms;\n}\n.waves-float:active {\n box-shadow: 0px 8px 20px 1px rgba(0, 0, 0, 0.3);\n}\n.waves-block {\n display: block;\n}\na:not(.nav-link).waves-effect, a:not(.nav-link).waves-light {\n display: inline-block;\n}\n.md-form {\n position: relative;\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n.md-form input[type=text],\n.md-form input[type=password],\n.md-form input[type=email],\n.md-form input[type=url],\n.md-form input[type=time],\n.md-form input[type=date],\n.md-form input[type=datetime-local],\n.md-form input[type=tel],\n.md-form input[type=number],\n.md-form input[type=search-md],\n.md-form input[type=search],\n.md-form textarea.md-textarea {\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n outline: none;\n box-shadow: none;\n border: none;\n border-bottom: 1px solid #ced4da;\n border-radius: 0;\n box-sizing: content-box;\n background-color: transparent;\n}\n.md-form input[type=text]:focus:not([readonly]),\n.md-form input[type=password]:focus:not([readonly]),\n.md-form input[type=email]:focus:not([readonly]),\n.md-form input[type=url]:focus:not([readonly]),\n.md-form input[type=time]:focus:not([readonly]),\n.md-form input[type=date]:focus:not([readonly]),\n.md-form input[type=datetime-local]:focus:not([readonly]),\n.md-form input[type=tel]:focus:not([readonly]),\n.md-form input[type=number]:focus:not([readonly]),\n.md-form input[type=search-md]:focus:not([readonly]),\n.md-form input[type=search]:focus:not([readonly]),\n.md-form textarea.md-textarea:focus:not([readonly]) {\n box-shadow: 0 1px 0 0 #4285f4;\n border-bottom: 1px solid #4285f4;\n}\n.md-form input[type=text]:focus:not([readonly]) + label,\n.md-form input[type=password]:focus:not([readonly]) + label,\n.md-form input[type=email]:focus:not([readonly]) + label,\n.md-form input[type=url]:focus:not([readonly]) + label,\n.md-form input[type=time]:focus:not([readonly]) + label,\n.md-form input[type=date]:focus:not([readonly]) + label,\n.md-form input[type=datetime-local]:focus:not([readonly]) + label,\n.md-form input[type=tel]:focus:not([readonly]) + label,\n.md-form input[type=number]:focus:not([readonly]) + label,\n.md-form input[type=search-md]:focus:not([readonly]) + label,\n.md-form input[type=search]:focus:not([readonly]) + label,\n.md-form textarea.md-textarea:focus:not([readonly]) + label {\n color: #4285f4;\n}\n.md-form input[type=text] + label:after,\n.md-form input[type=password] + label:after,\n.md-form input[type=email] + label:after,\n.md-form input[type=url] + label:after,\n.md-form input[type=time] + label:after,\n.md-form input[type=date] + label:after,\n.md-form input[type=datetime-local] + label:after,\n.md-form input[type=tel] + label:after,\n.md-form input[type=number] + label:after,\n.md-form input[type=search-md] + label:after,\n.md-form input[type=search] + label:after,\n.md-form textarea.md-textarea + label:after {\n content: \"\";\n position: absolute;\n top: 65px;\n display: block;\n opacity: 0;\n transition: 0.2s opacity ease-out, 0.2s color ease-out;\n}\n.md-form input[type=text].valid, .md-form input[type=text]:focus.valid,\n.md-form input[type=password].valid,\n.md-form input[type=password]:focus.valid,\n.md-form input[type=email].valid,\n.md-form input[type=email]:focus.valid,\n.md-form input[type=url].valid,\n.md-form input[type=url]:focus.valid,\n.md-form input[type=time].valid,\n.md-form input[type=time]:focus.valid,\n.md-form input[type=date].valid,\n.md-form input[type=date]:focus.valid,\n.md-form input[type=datetime-local].valid,\n.md-form input[type=datetime-local]:focus.valid,\n.md-form input[type=tel].valid,\n.md-form input[type=tel]:focus.valid,\n.md-form input[type=number].valid,\n.md-form input[type=number]:focus.valid,\n.md-form input[type=search-md].valid,\n.md-form input[type=search-md]:focus.valid,\n.md-form input[type=search].valid,\n.md-form input[type=search]:focus.valid,\n.md-form textarea.md-textarea.valid,\n.md-form textarea.md-textarea:focus.valid {\n border-bottom: 1px solid #00c851;\n box-shadow: 0 1px 0 0 #00c851;\n}\n.md-form input[type=text].valid + label:after, .md-form input[type=text]:focus.valid + label:after,\n.md-form input[type=password].valid + label:after,\n.md-form input[type=password]:focus.valid + label:after,\n.md-form input[type=email].valid + label:after,\n.md-form input[type=email]:focus.valid + label:after,\n.md-form input[type=url].valid + label:after,\n.md-form input[type=url]:focus.valid + label:after,\n.md-form input[type=time].valid + label:after,\n.md-form input[type=time]:focus.valid + label:after,\n.md-form input[type=date].valid + label:after,\n.md-form input[type=date]:focus.valid + label:after,\n.md-form input[type=datetime-local].valid + label:after,\n.md-form input[type=datetime-local]:focus.valid + label:after,\n.md-form input[type=tel].valid + label:after,\n.md-form input[type=tel]:focus.valid + label:after,\n.md-form input[type=number].valid + label:after,\n.md-form input[type=number]:focus.valid + label:after,\n.md-form input[type=search-md].valid + label:after,\n.md-form input[type=search-md]:focus.valid + label:after,\n.md-form input[type=search].valid + label:after,\n.md-form input[type=search]:focus.valid + label:after,\n.md-form textarea.md-textarea.valid + label:after,\n.md-form textarea.md-textarea:focus.valid + label:after {\n content: attr(data-success);\n color: #00c851;\n opacity: 1;\n}\n.md-form input[type=text].invalid, .md-form input[type=text]:focus.invalid,\n.md-form input[type=password].invalid,\n.md-form input[type=password]:focus.invalid,\n.md-form input[type=email].invalid,\n.md-form input[type=email]:focus.invalid,\n.md-form input[type=url].invalid,\n.md-form input[type=url]:focus.invalid,\n.md-form input[type=time].invalid,\n.md-form input[type=time]:focus.invalid,\n.md-form input[type=date].invalid,\n.md-form input[type=date]:focus.invalid,\n.md-form input[type=datetime-local].invalid,\n.md-form input[type=datetime-local]:focus.invalid,\n.md-form input[type=tel].invalid,\n.md-form input[type=tel]:focus.invalid,\n.md-form input[type=number].invalid,\n.md-form input[type=number]:focus.invalid,\n.md-form input[type=search-md].invalid,\n.md-form input[type=search-md]:focus.invalid,\n.md-form input[type=search].invalid,\n.md-form input[type=search]:focus.invalid,\n.md-form textarea.md-textarea.invalid,\n.md-form textarea.md-textarea:focus.invalid {\n border-bottom: 1px solid #f44336;\n box-shadow: 0 1px 0 0 #f44336;\n}\n.md-form input[type=text].invalid + label:after, .md-form input[type=text]:focus.invalid + label:after,\n.md-form input[type=password].invalid + label:after,\n.md-form input[type=password]:focus.invalid + label:after,\n.md-form input[type=email].invalid + label:after,\n.md-form input[type=email]:focus.invalid + label:after,\n.md-form input[type=url].invalid + label:after,\n.md-form input[type=url]:focus.invalid + label:after,\n.md-form input[type=time].invalid + label:after,\n.md-form input[type=time]:focus.invalid + label:after,\n.md-form input[type=date].invalid + label:after,\n.md-form input[type=date]:focus.invalid + label:after,\n.md-form input[type=datetime-local].invalid + label:after,\n.md-form input[type=datetime-local]:focus.invalid + label:after,\n.md-form input[type=tel].invalid + label:after,\n.md-form input[type=tel]:focus.invalid + label:after,\n.md-form input[type=number].invalid + label:after,\n.md-form input[type=number]:focus.invalid + label:after,\n.md-form input[type=search-md].invalid + label:after,\n.md-form input[type=search-md]:focus.invalid + label:after,\n.md-form input[type=search].invalid + label:after,\n.md-form input[type=search]:focus.invalid + label:after,\n.md-form textarea.md-textarea.invalid + label:after,\n.md-form textarea.md-textarea:focus.invalid + label:after {\n content: attr(data-error);\n color: #f44336;\n opacity: 1;\n}\n.md-form input[type=text].form-control.valid + label:after, .md-form input[type=text].form-control:focus.valid + label:after,\n.md-form input[type=password].form-control.valid + label:after,\n.md-form input[type=password].form-control:focus.valid + label:after,\n.md-form input[type=email].form-control.valid + label:after,\n.md-form input[type=email].form-control:focus.valid + label:after,\n.md-form input[type=url].form-control.valid + label:after,\n.md-form input[type=url].form-control:focus.valid + label:after,\n.md-form input[type=time].form-control.valid + label:after,\n.md-form input[type=time].form-control:focus.valid + label:after,\n.md-form input[type=date].form-control.valid + label:after,\n.md-form input[type=date].form-control:focus.valid + label:after,\n.md-form input[type=datetime-local].form-control.valid + label:after,\n.md-form input[type=datetime-local].form-control:focus.valid + label:after,\n.md-form input[type=tel].form-control.valid + label:after,\n.md-form input[type=tel].form-control:focus.valid + label:after,\n.md-form input[type=number].form-control.valid + label:after,\n.md-form input[type=number].form-control:focus.valid + label:after,\n.md-form input[type=search-md].form-control.valid + label:after,\n.md-form input[type=search-md].form-control:focus.valid + label:after,\n.md-form input[type=search].form-control.valid + label:after,\n.md-form input[type=search].form-control:focus.valid + label:after,\n.md-form textarea.md-textarea.form-control.valid + label:after,\n.md-form textarea.md-textarea.form-control:focus.valid + label:after {\n top: 4.1rem;\n}\n.md-form input[type=text].form-control.invalid + label:after, .md-form input[type=text].form-control:focus.invalid + label:after,\n.md-form input[type=password].form-control.invalid + label:after,\n.md-form input[type=password].form-control:focus.invalid + label:after,\n.md-form input[type=email].form-control.invalid + label:after,\n.md-form input[type=email].form-control:focus.invalid + label:after,\n.md-form input[type=url].form-control.invalid + label:after,\n.md-form input[type=url].form-control:focus.invalid + label:after,\n.md-form input[type=time].form-control.invalid + label:after,\n.md-form input[type=time].form-control:focus.invalid + label:after,\n.md-form input[type=date].form-control.invalid + label:after,\n.md-form input[type=date].form-control:focus.invalid + label:after,\n.md-form input[type=datetime-local].form-control.invalid + label:after,\n.md-form input[type=datetime-local].form-control:focus.invalid + label:after,\n.md-form input[type=tel].form-control.invalid + label:after,\n.md-form input[type=tel].form-control:focus.invalid + label:after,\n.md-form input[type=number].form-control.invalid + label:after,\n.md-form input[type=number].form-control:focus.invalid + label:after,\n.md-form input[type=search-md].form-control.invalid + label:after,\n.md-form input[type=search-md].form-control:focus.invalid + label:after,\n.md-form input[type=search].form-control.invalid + label:after,\n.md-form input[type=search].form-control:focus.invalid + label:after,\n.md-form textarea.md-textarea.form-control.invalid + label:after,\n.md-form textarea.md-textarea.form-control:focus.invalid + label:after {\n top: 4rem;\n}\n.md-form input[type=text].form-control-lg.valid + label:after, .md-form input[type=text].form-control-lg:focus.valid + label:after,\n.md-form input[type=password].form-control-lg.valid + label:after,\n.md-form input[type=password].form-control-lg:focus.valid + label:after,\n.md-form input[type=email].form-control-lg.valid + label:after,\n.md-form input[type=email].form-control-lg:focus.valid + label:after,\n.md-form input[type=url].form-control-lg.valid + label:after,\n.md-form input[type=url].form-control-lg:focus.valid + label:after,\n.md-form input[type=time].form-control-lg.valid + label:after,\n.md-form input[type=time].form-control-lg:focus.valid + label:after,\n.md-form input[type=date].form-control-lg.valid + label:after,\n.md-form input[type=date].form-control-lg:focus.valid + label:after,\n.md-form input[type=datetime-local].form-control-lg.valid + label:after,\n.md-form input[type=datetime-local].form-control-lg:focus.valid + label:after,\n.md-form input[type=tel].form-control-lg.valid + label:after,\n.md-form input[type=tel].form-control-lg:focus.valid + label:after,\n.md-form input[type=number].form-control-lg.valid + label:after,\n.md-form input[type=number].form-control-lg:focus.valid + label:after,\n.md-form input[type=search-md].form-control-lg.valid + label:after,\n.md-form input[type=search-md].form-control-lg:focus.valid + label:after,\n.md-form input[type=search].form-control-lg.valid + label:after,\n.md-form input[type=search].form-control-lg:focus.valid + label:after,\n.md-form textarea.md-textarea.form-control-lg.valid + label:after,\n.md-form textarea.md-textarea.form-control-lg:focus.valid + label:after {\n top: 4.6rem;\n}\n.md-form input[type=text].form-control-lg.invalid + label:after, .md-form input[type=text].form-control-lg:focus.invalid + label:after,\n.md-form input[type=password].form-control-lg.invalid + label:after,\n.md-form input[type=password].form-control-lg:focus.invalid + label:after,\n.md-form input[type=email].form-control-lg.invalid + label:after,\n.md-form input[type=email].form-control-lg:focus.invalid + label:after,\n.md-form input[type=url].form-control-lg.invalid + label:after,\n.md-form input[type=url].form-control-lg:focus.invalid + label:after,\n.md-form input[type=time].form-control-lg.invalid + label:after,\n.md-form input[type=time].form-control-lg:focus.invalid + label:after,\n.md-form input[type=date].form-control-lg.invalid + label:after,\n.md-form input[type=date].form-control-lg:focus.invalid + label:after,\n.md-form input[type=datetime-local].form-control-lg.invalid + label:after,\n.md-form input[type=datetime-local].form-control-lg:focus.invalid + label:after,\n.md-form input[type=tel].form-control-lg.invalid + label:after,\n.md-form input[type=tel].form-control-lg:focus.invalid + label:after,\n.md-form input[type=number].form-control-lg.invalid + label:after,\n.md-form input[type=number].form-control-lg:focus.invalid + label:after,\n.md-form input[type=search-md].form-control-lg.invalid + label:after,\n.md-form input[type=search-md].form-control-lg:focus.invalid + label:after,\n.md-form input[type=search].form-control-lg.invalid + label:after,\n.md-form input[type=search].form-control-lg:focus.invalid + label:after,\n.md-form textarea.md-textarea.form-control-lg.invalid + label:after,\n.md-form textarea.md-textarea.form-control-lg:focus.invalid + label:after {\n top: 4.6rem;\n}\n.md-form input[type=text].form-control-sm.valid + label:after, .md-form input[type=text].form-control-sm:focus.valid + label:after,\n.md-form input[type=password].form-control-sm.valid + label:after,\n.md-form input[type=password].form-control-sm:focus.valid + label:after,\n.md-form input[type=email].form-control-sm.valid + label:after,\n.md-form input[type=email].form-control-sm:focus.valid + label:after,\n.md-form input[type=url].form-control-sm.valid + label:after,\n.md-form input[type=url].form-control-sm:focus.valid + label:after,\n.md-form input[type=time].form-control-sm.valid + label:after,\n.md-form input[type=time].form-control-sm:focus.valid + label:after,\n.md-form input[type=date].form-control-sm.valid + label:after,\n.md-form input[type=date].form-control-sm:focus.valid + label:after,\n.md-form input[type=datetime-local].form-control-sm.valid + label:after,\n.md-form input[type=datetime-local].form-control-sm:focus.valid + label:after,\n.md-form input[type=tel].form-control-sm.valid + label:after,\n.md-form input[type=tel].form-control-sm:focus.valid + label:after,\n.md-form input[type=number].form-control-sm.valid + label:after,\n.md-form input[type=number].form-control-sm:focus.valid + label:after,\n.md-form input[type=search-md].form-control-sm.valid + label:after,\n.md-form input[type=search-md].form-control-sm:focus.valid + label:after,\n.md-form input[type=search].form-control-sm.valid + label:after,\n.md-form input[type=search].form-control-sm:focus.valid + label:after,\n.md-form textarea.md-textarea.form-control-sm.valid + label:after,\n.md-form textarea.md-textarea.form-control-sm:focus.valid + label:after {\n top: 3.7rem;\n}\n.md-form input[type=text].form-control-sm.invalid + label:after, .md-form input[type=text].form-control-sm:focus.invalid + label:after,\n.md-form input[type=password].form-control-sm.invalid + label:after,\n.md-form input[type=password].form-control-sm:focus.invalid + label:after,\n.md-form input[type=email].form-control-sm.invalid + label:after,\n.md-form input[type=email].form-control-sm:focus.invalid + label:after,\n.md-form input[type=url].form-control-sm.invalid + label:after,\n.md-form input[type=url].form-control-sm:focus.invalid + label:after,\n.md-form input[type=time].form-control-sm.invalid + label:after,\n.md-form input[type=time].form-control-sm:focus.invalid + label:after,\n.md-form input[type=date].form-control-sm.invalid + label:after,\n.md-form input[type=date].form-control-sm:focus.invalid + label:after,\n.md-form input[type=datetime-local].form-control-sm.invalid + label:after,\n.md-form input[type=datetime-local].form-control-sm:focus.invalid + label:after,\n.md-form input[type=tel].form-control-sm.invalid + label:after,\n.md-form input[type=tel].form-control-sm:focus.invalid + label:after,\n.md-form input[type=number].form-control-sm.invalid + label:after,\n.md-form input[type=number].form-control-sm:focus.invalid + label:after,\n.md-form input[type=search-md].form-control-sm.invalid + label:after,\n.md-form input[type=search-md].form-control-sm:focus.invalid + label:after,\n.md-form input[type=search].form-control-sm.invalid + label:after,\n.md-form input[type=search].form-control-sm:focus.invalid + label:after,\n.md-form textarea.md-textarea.form-control-sm.invalid + label:after,\n.md-form textarea.md-textarea.form-control-sm:focus.invalid + label:after {\n top: 3.6rem;\n}\n.md-form > input[type=date]:not(.browser-default) + label {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n width: 125%;\n}\n.md-form > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label,\n.md-form > input[type=time]:not(.browser-default) + label {\n transform: translateY(-14px);\n transform-origin: 0 0;\n font-size: 0.8rem;\n width: 100%;\n}\n.md-form .was-validated input[type=text]:valid + label {\n color: #00c851 !important;\n}\n.md-form .was-validated input[type=text]:invalid + label {\n color: #f44336 !important;\n}\n.md-form .was-validated .form-control:valid:focus {\n box-shadow: 0 1px 0 0 #00c851 !important;\n}\n.md-form .was-validated .form-control:valid {\n border-color: #00c851 !important;\n}\n.md-form .was-validated .form-control:invalid:focus {\n box-shadow: 0 1px 0 0 #f44336 !important;\n}\n.md-form .was-validated .form-control:invalid {\n border-color: #f44336 !important;\n}\n.md-form .form-control {\n margin: 0 0 0.5rem 0;\n border-radius: 0;\n padding: 0.6rem 0 0.4rem 0;\n background-color: transparent;\n height: auto;\n}\n.md-form .form-control:focus {\n box-shadow: none;\n}\n.md-form .form-control:disabled, .md-form .form-control[readonly] {\n border-bottom: 1px solid #bdbdbd;\n background-color: transparent;\n}\n.md-form .form-control.is-valid {\n border-color: #00c851;\n}\n.md-form .form-control.is-valid:focus {\n border-color: #00c851 !important;\n box-shadow: 0 1px 0 0 #00c851 !important;\n}\n.md-form .form-control.is-invalid {\n border-color: #f44336;\n}\n.md-form .form-control.is-invalid:focus {\n box-shadow: 0 1px 0 0 #f44336 !important;\n border-color: #f44336 !important;\n}\n.md-form .form-control.is-valid, .md-form .form-control.is-invalid {\n background-position: center right !important;\n}\n.md-form .validate {\n margin-bottom: 2.5rem;\n}\n.md-form label {\n font-size: 1rem;\n}\n.md-form label.active {\n font-size: 1rem;\n}\n.md-form .prefix {\n top: 0.25rem;\n font-size: 1.75rem;\n}\n.md-form .prefix ~ input,\n.md-form .prefix ~ textarea {\n margin-left: 2.5rem;\n width: calc(100% - 2.5rem);\n}\n.md-form .prefix ~ label {\n max-width: calc(99% - 2.5rem);\n margin-left: 2.5rem;\n}\n.md-form .prefix ~ label.active {\n max-width: calc(121% - 2.5rem);\n}\n.md-form .prefix ~ .form-text {\n margin-left: 2.6rem;\n}\n.md-form label {\n position: absolute;\n top: 0;\n left: 0;\n font-size: 1rem;\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n transform-origin: 0% 100%;\n transform: translateY(12px);\n cursor: text;\n color: #757575;\n}\n.md-form label.active {\n transform: translateY(-14px) scale(0.8);\n}\n.md-form label:not(.form-check-label) {\n transition: transform 0.2s ease-out, color 0.2s ease-out, max-width 0.2s ease-out;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n}\n.md-form label:not(.form-check-label).active {\n max-width: 123%;\n}\n.md-form .switch label {\n text-overflow: unset;\n overflow: unset;\n}\n.md-form .prefix {\n position: absolute;\n transition: color 0s;\n}\n.md-form .prefix.active {\n color: #4285f4;\n}\n.md-form .prefix.active.success-message {\n color: #00c851;\n}\n.md-form .prefix.active.error-message {\n color: #f44336;\n}\n.md-form.form-lg .validate {\n margin-bottom: 2.8rem;\n}\n.md-form.form-lg label {\n font-size: 1.25rem;\n}\n.md-form.form-lg label.active {\n font-size: 1.15rem;\n}\n.md-form.form-lg .prefix {\n top: 0.4rem;\n font-size: 2rem;\n}\n.md-form.form-lg .prefix ~ input,\n.md-form.form-lg .prefix ~ textarea {\n margin-left: 3rem;\n width: calc(100% - 3rem);\n}\n.md-form.form-lg .prefix ~ label {\n max-width: calc(99% - 3rem);\n margin-left: 3rem;\n}\n.md-form.form-lg .prefix ~ label.active {\n max-width: calc(121% - 3rem);\n}\n.md-form.form-lg .prefix ~ .form-text {\n margin-left: 3.1rem;\n}\n.md-form.form-lg mdb-error,\n.md-form.form-lg mdb-success {\n left: 3rem !important;\n}\n.md-form.form-sm .validate {\n margin-bottom: 2.3rem;\n}\n.md-form.form-sm label {\n font-size: 0.875rem;\n}\n.md-form.form-sm label.active {\n font-size: 0.95rem;\n}\n.md-form.form-sm .prefix {\n top: 0.35rem;\n font-size: 1.5rem;\n}\n.md-form.form-sm .prefix ~ input,\n.md-form.form-sm .prefix ~ textarea {\n margin-left: 2rem;\n width: calc(100% - 2rem);\n}\n.md-form.form-sm .prefix ~ label {\n max-width: calc(99% - 2rem);\n margin-left: 2rem;\n}\n.md-form.form-sm .prefix ~ label.active {\n max-width: calc(121% - 2rem);\n}\n.md-form.form-sm .prefix ~ .form-text {\n margin-left: 2rem;\n}\n.md-form.form-sm mdb-error,\n.md-form.form-sm mdb-success {\n left: 2rem !important;\n}\n.md-form textarea {\n /* ~ label {\n &.active {\n color: $input-md-focus-color;\n }\n } */\n}\n.md-form textarea.md-textarea {\n overflow-y: hidden;\n padding: 1.5rem 0;\n}\n.md-form textarea.md-textarea-auto {\n padding: 0;\n padding-top: 1.5rem;\n}\n.md-form.md-outline {\n position: relative;\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n.md-form.md-outline input[type=text],\n.md-form.md-outline input[type=password],\n.md-form.md-outline input[type=email],\n.md-form.md-outline input[type=url],\n.md-form.md-outline input[type=time],\n.md-form.md-outline input[type=date],\n.md-form.md-outline input[type=datetime-local],\n.md-form.md-outline input[type=tel],\n.md-form.md-outline input[type=number],\n.md-form.md-outline input[type=search-md],\n.md-form.md-outline input[type=search],\n.md-form.md-outline textarea.md-textarea {\n transition: all 0.3s;\n outline: none;\n box-shadow: none;\n border: 1px solid #dadce0;\n border-radius: 4px;\n background-color: transparent;\n box-sizing: border-box;\n}\n.md-form.md-outline input[type=text]:focus:not([readonly]),\n.md-form.md-outline input[type=password]:focus:not([readonly]),\n.md-form.md-outline input[type=email]:focus:not([readonly]),\n.md-form.md-outline input[type=url]:focus:not([readonly]),\n.md-form.md-outline input[type=time]:focus:not([readonly]),\n.md-form.md-outline input[type=date]:focus:not([readonly]),\n.md-form.md-outline input[type=datetime-local]:focus:not([readonly]),\n.md-form.md-outline input[type=tel]:focus:not([readonly]),\n.md-form.md-outline input[type=number]:focus:not([readonly]),\n.md-form.md-outline input[type=search-md]:focus:not([readonly]),\n.md-form.md-outline input[type=search]:focus:not([readonly]),\n.md-form.md-outline textarea.md-textarea:focus:not([readonly]) {\n border-color: #4285f4;\n box-shadow: inset 0px 0px 0px 1px #4285f4;\n}\n.md-form.md-outline input[type=text]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=password]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=email]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=url]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=time]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=date]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=datetime-local]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=tel]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=number]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=search-md]:focus:not([readonly]) + label,\n.md-form.md-outline input[type=search]:focus:not([readonly]) + label,\n.md-form.md-outline textarea.md-textarea:focus:not([readonly]) + label {\n color: #4285f4;\n}\n.md-form.md-outline input[type=text].valid, .md-form.md-outline input[type=text]:focus.valid,\n.md-form.md-outline input[type=password].valid,\n.md-form.md-outline input[type=password]:focus.valid,\n.md-form.md-outline input[type=email].valid,\n.md-form.md-outline input[type=email]:focus.valid,\n.md-form.md-outline input[type=url].valid,\n.md-form.md-outline input[type=url]:focus.valid,\n.md-form.md-outline input[type=time].valid,\n.md-form.md-outline input[type=time]:focus.valid,\n.md-form.md-outline input[type=date].valid,\n.md-form.md-outline input[type=date]:focus.valid,\n.md-form.md-outline input[type=datetime-local].valid,\n.md-form.md-outline input[type=datetime-local]:focus.valid,\n.md-form.md-outline input[type=tel].valid,\n.md-form.md-outline input[type=tel]:focus.valid,\n.md-form.md-outline input[type=number].valid,\n.md-form.md-outline input[type=number]:focus.valid,\n.md-form.md-outline input[type=search-md].valid,\n.md-form.md-outline input[type=search-md]:focus.valid,\n.md-form.md-outline input[type=search].valid,\n.md-form.md-outline input[type=search]:focus.valid,\n.md-form.md-outline textarea.md-textarea.valid,\n.md-form.md-outline textarea.md-textarea:focus.valid {\n border-color: #00c851;\n box-shadow: inset 0px 0px 0px 1px #00c851;\n}\n.md-form.md-outline input[type=text]:focus:not([readonly]).valid + label, .md-form.md-outline input[type=text].valid + label:after, .md-form.md-outline input[type=text]:focus.valid + label:after,\n.md-form.md-outline input[type=password]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=password].valid + label:after,\n.md-form.md-outline input[type=password]:focus.valid + label:after,\n.md-form.md-outline input[type=email]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=email].valid + label:after,\n.md-form.md-outline input[type=email]:focus.valid + label:after,\n.md-form.md-outline input[type=url]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=url].valid + label:after,\n.md-form.md-outline input[type=url]:focus.valid + label:after,\n.md-form.md-outline input[type=time]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=time].valid + label:after,\n.md-form.md-outline input[type=time]:focus.valid + label:after,\n.md-form.md-outline input[type=date]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=date].valid + label:after,\n.md-form.md-outline input[type=date]:focus.valid + label:after,\n.md-form.md-outline input[type=datetime-local]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=datetime-local].valid + label:after,\n.md-form.md-outline input[type=datetime-local]:focus.valid + label:after,\n.md-form.md-outline input[type=tel]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=tel].valid + label:after,\n.md-form.md-outline input[type=tel]:focus.valid + label:after,\n.md-form.md-outline input[type=number]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=number].valid + label:after,\n.md-form.md-outline input[type=number]:focus.valid + label:after,\n.md-form.md-outline input[type=search-md]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=search-md].valid + label:after,\n.md-form.md-outline input[type=search-md]:focus.valid + label:after,\n.md-form.md-outline input[type=search]:focus:not([readonly]).valid + label,\n.md-form.md-outline input[type=search].valid + label:after,\n.md-form.md-outline input[type=search]:focus.valid + label:after,\n.md-form.md-outline textarea.md-textarea:focus:not([readonly]).valid + label,\n.md-form.md-outline textarea.md-textarea.valid + label:after,\n.md-form.md-outline textarea.md-textarea:focus.valid + label:after {\n content: attr(data-success);\n color: #00c851;\n opacity: 1;\n}\n.md-form.md-outline input[type=text].invalid, .md-form.md-outline input[type=text]:focus.invalid,\n.md-form.md-outline input[type=password].invalid,\n.md-form.md-outline input[type=password]:focus.invalid,\n.md-form.md-outline input[type=email].invalid,\n.md-form.md-outline input[type=email]:focus.invalid,\n.md-form.md-outline input[type=url].invalid,\n.md-form.md-outline input[type=url]:focus.invalid,\n.md-form.md-outline input[type=time].invalid,\n.md-form.md-outline input[type=time]:focus.invalid,\n.md-form.md-outline input[type=date].invalid,\n.md-form.md-outline input[type=date]:focus.invalid,\n.md-form.md-outline input[type=datetime-local].invalid,\n.md-form.md-outline input[type=datetime-local]:focus.invalid,\n.md-form.md-outline input[type=tel].invalid,\n.md-form.md-outline input[type=tel]:focus.invalid,\n.md-form.md-outline input[type=number].invalid,\n.md-form.md-outline input[type=number]:focus.invalid,\n.md-form.md-outline input[type=search-md].invalid,\n.md-form.md-outline input[type=search-md]:focus.invalid,\n.md-form.md-outline input[type=search].invalid,\n.md-form.md-outline input[type=search]:focus.invalid,\n.md-form.md-outline textarea.md-textarea.invalid,\n.md-form.md-outline textarea.md-textarea:focus.invalid {\n border-color: #f44336;\n box-shadow: inset 0px 0px 0px 1px #f44336;\n}\n.md-form.md-outline input[type=text]:focus:not([readonly]).invalid + label, .md-form.md-outline input[type=text].invalid + label:after, .md-form.md-outline input[type=text]:focus.invalid + label:after,\n.md-form.md-outline input[type=password]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=password].invalid + label:after,\n.md-form.md-outline input[type=password]:focus.invalid + label:after,\n.md-form.md-outline input[type=email]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=email].invalid + label:after,\n.md-form.md-outline input[type=email]:focus.invalid + label:after,\n.md-form.md-outline input[type=url]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=url].invalid + label:after,\n.md-form.md-outline input[type=url]:focus.invalid + label:after,\n.md-form.md-outline input[type=time]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=time].invalid + label:after,\n.md-form.md-outline input[type=time]:focus.invalid + label:after,\n.md-form.md-outline input[type=date]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=date].invalid + label:after,\n.md-form.md-outline input[type=date]:focus.invalid + label:after,\n.md-form.md-outline input[type=datetime-local]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=datetime-local].invalid + label:after,\n.md-form.md-outline input[type=datetime-local]:focus.invalid + label:after,\n.md-form.md-outline input[type=tel]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=tel].invalid + label:after,\n.md-form.md-outline input[type=tel]:focus.invalid + label:after,\n.md-form.md-outline input[type=number]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=number].invalid + label:after,\n.md-form.md-outline input[type=number]:focus.invalid + label:after,\n.md-form.md-outline input[type=search-md]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=search-md].invalid + label:after,\n.md-form.md-outline input[type=search-md]:focus.invalid + label:after,\n.md-form.md-outline input[type=search]:focus:not([readonly]).invalid + label,\n.md-form.md-outline input[type=search].invalid + label:after,\n.md-form.md-outline input[type=search]:focus.invalid + label:after,\n.md-form.md-outline textarea.md-textarea:focus:not([readonly]).invalid + label,\n.md-form.md-outline textarea.md-textarea.invalid + label:after,\n.md-form.md-outline textarea.md-textarea:focus.invalid + label:after {\n content: attr(data-error);\n color: #f44336;\n opacity: 1;\n}\n.md-form.md-outline input[type=text].form-control.valid + label:after, .md-form.md-outline input[type=text].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=password].form-control.valid + label:after,\n.md-form.md-outline input[type=password].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=email].form-control.valid + label:after,\n.md-form.md-outline input[type=email].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=url].form-control.valid + label:after,\n.md-form.md-outline input[type=url].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=time].form-control.valid + label:after,\n.md-form.md-outline input[type=time].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=date].form-control.valid + label:after,\n.md-form.md-outline input[type=date].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=datetime-local].form-control.valid + label:after,\n.md-form.md-outline input[type=datetime-local].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=tel].form-control.valid + label:after,\n.md-form.md-outline input[type=tel].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=number].form-control.valid + label:after,\n.md-form.md-outline input[type=number].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=search-md].form-control.valid + label:after,\n.md-form.md-outline input[type=search-md].form-control:focus.valid + label:after,\n.md-form.md-outline input[type=search].form-control.valid + label:after,\n.md-form.md-outline input[type=search].form-control:focus.valid + label:after,\n.md-form.md-outline textarea.md-textarea.form-control.valid + label:after,\n.md-form.md-outline textarea.md-textarea.form-control:focus.valid + label:after {\n top: 2.75rem;\n left: 0;\n position: absolute;\n}\n.md-form.md-outline input[type=text].form-control.invalid + label:after, .md-form.md-outline input[type=text].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=password].form-control.invalid + label:after,\n.md-form.md-outline input[type=password].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=email].form-control.invalid + label:after,\n.md-form.md-outline input[type=email].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=url].form-control.invalid + label:after,\n.md-form.md-outline input[type=url].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=time].form-control.invalid + label:after,\n.md-form.md-outline input[type=time].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=date].form-control.invalid + label:after,\n.md-form.md-outline input[type=date].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=datetime-local].form-control.invalid + label:after,\n.md-form.md-outline input[type=datetime-local].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=tel].form-control.invalid + label:after,\n.md-form.md-outline input[type=tel].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=number].form-control.invalid + label:after,\n.md-form.md-outline input[type=number].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=search-md].form-control.invalid + label:after,\n.md-form.md-outline input[type=search-md].form-control:focus.invalid + label:after,\n.md-form.md-outline input[type=search].form-control.invalid + label:after,\n.md-form.md-outline input[type=search].form-control:focus.invalid + label:after,\n.md-form.md-outline textarea.md-textarea.form-control.invalid + label:after,\n.md-form.md-outline textarea.md-textarea.form-control:focus.invalid + label:after {\n top: 2.75rem;\n left: 0;\n position: absolute;\n}\n.md-form.md-outline > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label,\n.md-form.md-outline > input[type=time]:not(.browser-default) + label {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n background: #fff;\n font-weight: 500;\n padding-right: 5px;\n padding-left: 5px;\n font-size: 11px;\n left: 8px;\n}\n.md-form.md-outline > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label.active,\n.md-form.md-outline > input[type=time]:not(.browser-default) + label.active {\n transform: translateY(-14px) scale(0.8);\n transform-origin: 0 0;\n}\n@-webkit-keyframes autofill {\n to {\n color: #495057;\n background: transparent;\n }\n}\n@keyframes autofill {\n to {\n color: #495057;\n background: transparent;\n }\n}\n.md-form.md-outline input:-webkit-autofill {\n -webkit-animation-name: autofill;\n animation-name: autofill;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n}\n.md-form.md-outline .form-control {\n padding: 0.375rem 0.75rem;\n}\n.md-form.md-outline label {\n font-size: 1rem !important;\n position: absolute;\n top: 0;\n left: 0;\n padding-left: 10px;\n transition: transform 0.2s ease-out, color 0.2s ease-out, max-width 0.2 ease-out;\n transform-origin: 0% 100%;\n transform: translateY(9px);\n cursor: text;\n color: #757575;\n}\n.md-form.md-outline label.active {\n transform: translateY(-13px) scale(0.8);\n background: #fff;\n font-weight: 500;\n padding-right: 5px;\n padding-left: 5px;\n left: 8px;\n}\n.md-form.md-outline.form-lg .form-control.form-control-lg {\n padding: 0.5rem 0.725rem;\n}\n.md-form.md-outline.form-lg label {\n font-size: 1.25rem;\n transform: translateY(10px);\n}\n.md-form.md-outline.form-lg label.active {\n font-size: 1.1rem;\n transform: translateY(-14px) scale(0.8);\n}\n.md-form.md-outline.form-lg .prefix {\n top: 0.65rem;\n font-size: 25px;\n}\n.md-form.md-outline.form-lg .prefix ~ input,\n.md-form.md-outline.form-lg .prefix ~ textarea {\n margin-left: 2.2rem;\n width: calc(100% - 2.2rem);\n}\n.md-form.md-outline.form-lg .prefix ~ label {\n margin-left: 2.2rem;\n}\n.md-form.md-outline.form-lg .prefix ~ .form-text {\n margin-left: 2.3rem;\n}\n.md-form.md-outline.form-sm .form-control.form-control-sm {\n padding: 0.25rem 0.625rem;\n}\n.md-form.md-outline.form-sm label {\n font-size: 0.8rem;\n transform: translateY(8px);\n}\n.md-form.md-outline.form-sm label.active {\n font-size: 0.85rem;\n transform: translateY(-12px) scale(0.8);\n}\n.md-form.md-outline.form-sm .prefix {\n top: 0.5rem;\n font-size: 15px;\n}\n.md-form.md-outline.form-sm .prefix ~ input,\n.md-form.md-outline.form-sm .prefix ~ textarea {\n margin-left: 1.6rem;\n width: calc(100% - 1.6rem);\n}\n.md-form.md-outline.form-sm .prefix ~ label {\n margin-left: 1.6rem;\n}\n.md-form.md-outline.form-sm .prefix ~ .form-text {\n margin-left: 1.7rem;\n}\n.md-form.md-outline .prefix {\n position: absolute;\n transition: color 0.2s;\n}\n.md-form.md-outline .prefix:focus {\n color: #4285f4;\n}\n.md-form.md-outline .prefix {\n font-size: 20px;\n}\n.md-form.md-outline .prefix ~ input,\n.md-form.md-outline .prefix ~ textarea {\n margin-left: 2rem;\n width: calc(100% - 2rem);\n}\n.md-form.md-outline .prefix ~ label {\n margin-left: 2rem;\n}\n.md-form.md-outline .prefix ~ .form-text {\n margin-left: 2.1rem;\n}\n.md-form.md-outline .character-counter {\n margin-top: -0.5rem;\n}\n.md-form.md-bg input[type=text],\n.md-form.md-bg input[type=password],\n.md-form.md-bg input[type=email],\n.md-form.md-bg input[type=url],\n.md-form.md-bg input[type=time],\n.md-form.md-bg input[type=date],\n.md-form.md-bg input[type=datetime-local],\n.md-form.md-bg input[type=tel],\n.md-form.md-bg input[type=number],\n.md-form.md-bg input[type=search-md],\n.md-form.md-bg input[type=search],\n.md-form.md-bg textarea.md-textarea {\n box-sizing: border-box;\n padding: 10px 5px;\n border: 0;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n background: #f5f5f5 no-repeat;\n background-image: linear-gradient(to bottom, #4285f4, #4285f4), linear-gradient(to bottom, #ced4da, #ced4da);\n background-size: 0 2px, 100% 1px;\n background-position: 50% 100%, 50% 100%;\n transition: background-size 0.3s cubic-bezier(0.64, 0.09, 0.08, 1);\n}\n.md-form.md-bg input[type=text]:focus:not([readonly]),\n.md-form.md-bg input[type=password]:focus:not([readonly]),\n.md-form.md-bg input[type=email]:focus:not([readonly]),\n.md-form.md-bg input[type=url]:focus:not([readonly]),\n.md-form.md-bg input[type=time]:focus:not([readonly]),\n.md-form.md-bg input[type=date]:focus:not([readonly]),\n.md-form.md-bg input[type=datetime-local]:focus:not([readonly]),\n.md-form.md-bg input[type=tel]:focus:not([readonly]),\n.md-form.md-bg input[type=number]:focus:not([readonly]),\n.md-form.md-bg input[type=search-md]:focus:not([readonly]),\n.md-form.md-bg input[type=search]:focus:not([readonly]),\n.md-form.md-bg textarea.md-textarea:focus:not([readonly]) {\n box-shadow: none;\n border-bottom: none;\n}\n.md-form.md-bg input[type=text]:focus,\n.md-form.md-bg input[type=password]:focus,\n.md-form.md-bg input[type=email]:focus,\n.md-form.md-bg input[type=url]:focus,\n.md-form.md-bg input[type=time]:focus,\n.md-form.md-bg input[type=date]:focus,\n.md-form.md-bg input[type=datetime-local]:focus,\n.md-form.md-bg input[type=tel]:focus,\n.md-form.md-bg input[type=number]:focus,\n.md-form.md-bg input[type=search-md]:focus,\n.md-form.md-bg input[type=search]:focus,\n.md-form.md-bg textarea.md-textarea:focus {\n background-color: #dcdcdc;\n background-size: 100% 2px, 100% 1px;\n outline: none;\n}\n.md-form.md-bg > input[type=date]:not(.browser-default) + label {\n transform: translateY(-12px) scale(0.8);\n transform-origin: 0 0;\n}\n.md-form.md-bg > input[type]:-webkit-autofill:not(.browser-default):not([type=search]) + label,\n.md-form.md-bg > input[type=time]:not(.browser-default) + label {\n transform: translateY(-12px);\n transform-origin: 0 0;\n font-size: 0.8rem;\n}\n.md-form.md-bg .form-control {\n padding: 1.1rem 0.7rem 0.4rem !important;\n}\n.md-form.md-bg label {\n top: 0;\n padding-left: 0.7rem;\n font-size: 1rem;\n transition: transform 0.2s ease-out, color 0.2s ease-out;\n transform-origin: 0% 100%;\n transform: translateY(13px);\n}\n.md-form.md-bg label.active {\n transform: translateY(-3px) scale(0.8);\n font-weight: 500;\n padding-left: 0.75rem;\n}\n.md-form.md-bg.form-lg label {\n transform: translateY(16px);\n}\n.md-form.md-bg.form-lg label.active {\n transform: translateY(-4px) scale(0.8);\n}\n.md-form.md-bg.form-sm label {\n transform: translateY(11px);\n}\n.md-form.md-bg.form-sm label.active {\n transform: translateY(-2px) scale(0.8);\n}\n.md-form .form-control.is-invalid,\n.was-validated .md-form .form-control:invalid {\n padding-right: 0;\n}\n.md-form .form-control.is-valid,\n.was-validated .md-form .form-control:valid {\n padding-right: 0;\n}\n.needs-validation .md-form label {\n left: 0.3rem;\n}\n.custom-file-input:lang(es) ~ .custom-file-label::after {\n content: \"Elegir\";\n}\n.custom-file-input:lang(pl-PL) ~ .custom-file-label::after {\n content: \"Wybierz\";\n}\n.custom-file-input:lang(fr) ~ .custom-file-label::after {\n content: \"Choisir\";\n}\n.custom-file-input:lang(in) ~ .custom-file-label::after {\n content: \"Pilih\";\n}\n.custom-file-input:lang(zh) ~ .custom-file-label::after {\n content: \"選擇\";\n}\n.custom-file-input:lang(de) ~ .custom-file-label::after {\n content: \"Wählen\";\n}\n.custom-file-input:lang(ru) ~ .custom-file-label::after {\n content: \"выбирать\";\n}\n.disabled {\n cursor: not-allowed !important;\n}\n.counter-danger {\n border-bottom: 1px solid #f44336 !important;\n box-shadow: 0 1px 0 0 #f44336 !important;\n}\ninput:focus ~ .chars {\n float: right;\n clear: both;\n display: block;\n}\ntextarea:focus ~ .chars {\n float: right;\n clear: both;\n display: block;\n}\n.md-form label {\n left: 0;\n}\n.md-form label.active {\n color: #757575;\n}\n.counter-success {\n border-bottom: 1px solid #00c851 !important;\n box-shadow: 0 1px 0 0 #00c851 !important;\n}\n.inputVal {\n font-size: 0.8rem;\n position: absolute;\n}\n.modal-body .md-form .prefix ~ .text-success,\n.modal-body .md-form .prefix ~ .text-danger {\n left: 2.5rem;\n}\n.md-form .prefix ~ .text-success,\n.md-form .prefix ~ .text-danger {\n left: 2.5rem;\n}\n.md-form .prefix ~ .error-message,\n.md-form .prefix ~ .success-message {\n left: 2.5rem;\n}\nmdb-tab .md-form .prefix ~ .inputVal {\n left: 2rem;\n}\ninput.counter-danger ~ span.text-danger {\n visibility: visible;\n}\ninput.counter-success ~ span.text-success {\n visibility: visible;\n}\n.md-form textarea.md-textarea {\n overflow-y: auto !important;\n}\n.md-outline input.form-control.validate-success.ng-valid.ng-dirty,\n.md-outline input.form-control.validate-success.ng-valid.ng-touched,\n.md-outline.form-submitted input.form-control.validate-success.ng-valid {\n border-color: #00c851 !important;\n box-shadow: inset 0 0 0 1px #00c851 !important;\n}\n.md-outline input.form-control.validate-success.ng-valid.ng-dirty + label,\n.md-outline input.form-control.validate-success.ng-valid.ng-touched + label,\n.md-outline.form-submitted input.form-control.validate-success.ng-valid + label {\n color: #00c851 !important;\n font-weight: normal !important;\n}\n.md-outline input.form-control.validate-error.ng-invalid.ng-touched,\n.md-outline input.form-control.validate-error.ng-invalid.ng-dirty,\n.md-outline.form-submitted input.form-control.validate-error.ng-invalid {\n border-color: #f44336 !important;\n box-shadow: inset 0 0 0 1px #f44336 !important;\n}\n.md-outline input.form-control.validate-error.ng-invalid.ng-touched + label,\n.md-outline input.form-control.validate-error.ng-invalid.ng-dirty + label,\n.md-outline.form-submitted input.form-control.validate-error.ng-invalid + label {\n color: #f44336 !important;\n font-weight: normal !important;\n}\n.md-outline .md-textarea.validate-success.ng-valid.ng-dirty,\n.md-outline .md-textarea.validate-success.ng-valid.ng-touched {\n border-color: #00c851 !important;\n box-shadow: inset 0 0 0 1px #00c851 !important;\n}\n.md-outline .md-textarea.validate-success.ng-valid.ng-dirty,\n.md-outline .md-textarea.validate-success.ng-valid.ng-touched + label {\n color: inherit !important;\n font-weight: normal !important;\n}\n.md-outline .md-textarea.validate-error.ng-invalid.ng-touched,\n.md-outline .md-textarea.validate-error.ng-invalid.ng-dirty,\n.md-outline .form-submitted .md-textarea.validate-error.ng-invalid {\n border-color: #f44336 !important;\n box-shadow: inset 0 0 0 1px #f44336 !important;\n}\n.md-outline .md-textarea.validate-error.ng-invalid.ng-touched + label,\n.md-outline .md-textarea.validate-error.ng-invalid.ng-dirty + label,\n.md-outline .form-submitted .md-textarea.validate-error.ng-invalid + label {\n color: inherit !important;\n font-weight: normal !important;\n}\ninput.form-control.validate-success.ng-valid.ng-dirty,\ninput.form-control.validate-success.ng-valid.ng-touched,\n.form-submitted input.form-control.validate-success.ng-valid {\n border-bottom: 1px solid #00c851 !important;\n box-shadow: 0 1px 0 0 #00c851 !important;\n}\ninput.form-control.validate-success.ng-valid.ng-dirty + label,\ninput.form-control.validate-success.ng-valid.ng-touched + label,\n.form-submitted input.form-control.validate-success.ng-valid + label {\n color: #00c851 !important;\n}\ninput.form-control.validate-error.ng-invalid.ng-touched,\ninput.form-control.validate-error.ng-invalid.ng-dirty,\n.form-submitted input.form-control.validate-error.ng-invalid {\n border-bottom: 1px solid #f44336 !important;\n box-shadow: 0 1px 0 0 #f44336 !important;\n}\ninput.form-control.validate-error.ng-invalid.ng-touched + label,\ninput.form-control.validate-error.ng-invalid.ng-dirty + label,\n.form-submitted input.form-control.validate-error.ng-invalid + label {\n color: #f44336 !important;\n}\n.md-textarea.validate-success.ng-valid.ng-dirty,\n.md-textarea.validate-success.ng-valid.ng-touched {\n border-bottom: 1px solid #00c851 !important;\n box-shadow: 0 1px 0 0 #00c851 !important;\n}\n.md-textarea.validate-success.ng-valid.ng-dirty + label,\n.md-textarea.validate-success.ng-valid.ng-touched + label {\n color: #00c851 !important;\n}\n.md-textarea.validate-error.ng-invalid.ng-touched,\n.md-textarea.validate-error.ng-invalid.ng-dirty,\n.form-submitted .md-textarea.validate-error.ng-invalid {\n border-bottom: 1px solid #f44336 !important;\n box-shadow: 0 1px 0 0 #f44336 !important;\n}\n.md-textarea.validate-error.ng-invalid.ng-touched + label,\n.md-textarea.validate-error.ng-invalid.ng-dirty + label,\n.form-submitted .md-textarea.validate-error.ng-invalid + label {\n color: #f44336 !important;\n}\n.md-form {\n margin-bottom: 2rem;\n}\n.error-message {\n position: absolute;\n top: 40px;\n left: 0;\n font-size: 0.8rem;\n color: #f44336;\n}\n.success-message {\n position: absolute;\n top: 40px;\n left: 0;\n font-size: 0.8rem;\n color: #00c851;\n}\n.md-form.input-group label {\n top: 0;\n margin-bottom: 0;\n}\n.md-form.input-group .input-group-text {\n background-color: #e0e0e0;\n}\n.md-form.input-group .input-group-text.md-addon {\n border: none;\n background-color: transparent;\n font-weight: 500;\n}\n.md-form.input-group .form-control {\n margin: 0;\n padding: 0.375rem 0.75rem;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-10 {\n opacity: 0.1;\n}\n.opacity-20 {\n opacity: 0.2;\n}\n.opacity-30 {\n opacity: 0.3;\n}\n.opacity-40 {\n opacity: 0.4;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-60 {\n opacity: 0.6;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.opacity-90 {\n opacity: 0.9;\n}\n.opacity-100 {\n opacity: 1;\n}\nfooter.page-footer {\n bottom: 0;\n color: #fff;\n}\nfooter.page-footer .container-fluid {\n width: auto;\n}\nfooter.page-footer .footer-copyright {\n overflow: hidden;\n background-color: rgba(0, 0, 0, 0.2);\n color: rgba(255, 255, 255, 0.6);\n}\nfooter.page-footer a {\n color: #fff;\n}\n.flex-column .nav-item a {\n width: 100%;\n margin: 0;\n color: #495057;\n margin-bottom: -1px;\n}\n.flex-column .active a {\n background-color: #007bff;\n border-color: #007bff;\n color: #fff !important;\n}\n.flex-column .list-group-item {\n border-radius: 0;\n}\n.flex-column.list-group .nav-link {\n padding: 0 !important;\n}\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: unset;\n}\n.fast.spinner-border {\n -webkit-animation: spinner-border 0.4s linear infinite;\n animation: spinner-border 0.4s linear infinite;\n}\n.fast.spinner-grow {\n -webkit-animation: spinner-grow 0.4s linear infinite;\n animation: spinner-grow 0.4s linear infinite;\n}\n.edge-header {\n display: block;\n height: 278px;\n background-color: #ccc;\n}\n.free-bird {\n margin-top: -100px;\n}\n.juicy-peach-gradient {\n background-image: linear-gradient(to right, #ffecd2 0%, #fcb69f 100%);\n}\n.young-passion-gradient {\n background-image: linear-gradient(to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100%);\n}\n.lady-lips-gradient {\n background-image: linear-gradient(to top, #ff9a9e 0%, #fecfef 99%, #fecfef 100%);\n}\n.sunny-morning-gradient {\n background-image: linear-gradient(120deg, #f6d365 0%, #fda085 100%);\n}\n.rainy-ashville-gradient {\n background-image: linear-gradient(to top, #fbc2eb 0%, #a6c1ee 100%);\n}\n.frozen-dreams-gradient {\n background-image: linear-gradient(to top, #fdcbf1 0%, #fdcbf1 1%, #e6dee9 100%);\n}\n.warm-flame-gradient {\n background-image: linear-gradient(45deg, #ff9a9e 0%, #fad0c4 99%, #fad0c4 100%);\n}\n.night-fade-gradient {\n background-image: linear-gradient(to top, #a18cd1 0%, #fbc2eb 100%);\n}\n.spring-warmth-gradient {\n background-image: linear-gradient(to top, #fad0c4 0%, #ffd1ff 100%);\n}\n.winter-neva-gradient {\n background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);\n}\n.dusty-grass-gradient {\n background-image: linear-gradient(120deg, #d4fc79 0%, #96e6a1 100%);\n}\n.tempting-azure-gradient {\n background-image: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%);\n}\n.heavy-rain-gradient {\n background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);\n}\n.amy-crisp-gradient {\n background-image: linear-gradient(120deg, #a6c0fe 0%, #f68084 100%);\n}\n.mean-fruit-gradient {\n background-image: linear-gradient(120deg, #fccb90 0%, #d57eeb 100%);\n}\n.deep-blue-gradient {\n background-image: linear-gradient(120deg, #e0c3fc 0%, #8ec5fc 100%);\n}\n.ripe-malinka-gradient {\n background-image: linear-gradient(120deg, #f093fb 0%, #f5576c 100%);\n}\n.cloudy-knoxville-gradient {\n background-image: linear-gradient(120deg, #fdfbfb 0%, #ebedee 100%);\n}\n.morpheus-den-gradient {\n background-image: linear-gradient(to top, #30cfd0 0%, #330867 100%);\n}\n.rare-wind-gradient {\n background-image: linear-gradient(to top, #a8edea 0%, #fed6e3 100%);\n}\n.near-moon-gradient {\n background-image: linear-gradient(to top, #5ee7df 0%, #b490ca 100%);\n}\n.schedule-list .hr-bold {\n border-top: 2px solid #212529;\n}\n.schedule-list .font-smaller {\n font-size: 0.8rem;\n}\n.note {\n padding: 10px;\n border-left: 6px solid;\n border-radius: 5px;\n}\n.note strong {\n font-weight: 600;\n}\n.note p {\n font-weight: 500;\n}\n.note.note-primary {\n background-color: #dfeefd;\n border-color: #176ac4;\n}\n.note.note-secondary {\n background-color: #e2e3e5;\n border-color: #58595a;\n}\n.note.note-success {\n background-color: #e2f0e5;\n border-color: #49a75f;\n}\n.note.note-danger {\n background-color: #fae7e8;\n border-color: #e45460;\n}\n.note.note-warning {\n background-color: #faf4e0;\n border-color: #c2a442;\n}\n.note.note-info {\n background-color: #e4f2f5;\n border-color: #2492a5;\n}\n.note.note-light {\n background-color: #fefefe;\n border-color: #0f0f0f;\n}\n.pagination .page-item.active .page-link {\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\n transition: all 0.2s linear;\n border-radius: 0.125rem;\n background-color: #4285f4;\n color: #fff;\n}\n.pagination .page-item.active .page-link:hover {\n background-color: #4285f4;\n}\n.pagination .page-item.disabled .page-link {\n color: #868e96;\n}\n.pagination .page-item .page-link {\n transition: all 0.3s linear;\n outline: 0;\n border: 0;\n background-color: transparent;\n font-size: 0.9rem;\n color: #212529;\n}\n.pagination .page-item .page-link:hover {\n transition: all 0.3s linear;\n border-radius: 0.125rem;\n background-color: #eee;\n}\n.pagination .page-item .page-link:focus {\n background-color: transparent;\n box-shadow: none;\n}\n.pagination.pagination-lg .page-item .page-link {\n font-size: 1rem;\n}\n.pagination.pagination-sm .page-item .page-link {\n font-size: 0.8rem;\n}\n.pagination.pagination-circle .page-item .page-link {\n margin-left: 2px;\n margin-right: 2px;\n border-radius: 50%;\n}\n.pagination.pagination-circle .page-item .page-link:hover {\n border-radius: 50%;\n}\n.pagination.pagination-circle .page-item.active .page-link {\n border-radius: 50%;\n}\n.pagination.pg-blue .page-item.active .page-link {\n background-color: #4285f4;\n}\n.pagination.pg-blue .page-item.active .page-link:hover {\n background-color: #4285f4;\n}\n.pagination.pg-red .page-item.active .page-link {\n background-color: #ff3547;\n}\n.pagination.pg-red .page-item.active .page-link:hover {\n background-color: #ff3547;\n}\n.pagination.pg-teal .page-item.active .page-link {\n background-color: #2bbbad;\n}\n.pagination.pg-teal .page-item.active .page-link:hover {\n background-color: #2bbbad;\n}\n.pagination.pg-dark-grey .page-item.active .page-link {\n background-color: #37474f;\n}\n.pagination.pg-dark-grey .page-item.active .page-link:hover {\n background-color: #37474f;\n}\n.pagination.pg-dark .page-item.active .page-link {\n background-color: #2e2e2e;\n}\n.pagination.pg-dark .page-item.active .page-link:hover {\n background-color: #2e2e2e;\n}\n.pagination.pg-blue-grey .page-item.active .page-link {\n background-color: #3f729b;\n}\n.pagination.pg-blue-grey .page-item.active .page-link:hover {\n background-color: #3f729b;\n}\n.pagination.pg-amber .page-item.active .page-link {\n background-color: #ff6f00;\n}\n.pagination.pg-amber .page-item.active .page-link:hover {\n background-color: #ff6f00;\n}\n.pagination.pg-purple .page-item.active .page-link {\n background-color: #5e35b1;\n}\n.pagination.pg-purple .page-item.active .page-link:hover {\n background-color: #5e35b1;\n}\nul.stepper {\n counter-reset: section;\n overflow-y: auto;\n overflow-x: hidden;\n margin: 1em -1.5rem;\n padding: 0 1.5rem;\n padding: 1.5rem;\n}\nul.stepper li a {\n padding: 1.5rem;\n text-align: center;\n}\nul.stepper li a .circle {\n display: inline-block;\n color: #fff;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.38);\n width: 1.75rem;\n height: 1.75rem;\n text-align: center;\n line-height: 1.7rem;\n margin-right: 0.5rem;\n}\nul.stepper li a .label {\n display: inline-block;\n color: rgba(0, 0, 0, 0.38);\n}\nul.stepper li.active a .label, ul.stepper li.completed a .label {\n font-weight: 600;\n color: rgba(0, 0, 0, 0.87);\n}\n.stepper-horizontal {\n position: relative;\n display: flex;\n justify-content: space-between;\n}\n.stepper-horizontal li {\n transition: 0.5s;\n display: flex;\n align-items: center;\n flex: 1;\n position: relative;\n}\n.stepper-horizontal li a .label {\n margin-top: 0.63rem;\n}\n.stepper-horizontal li:not(:last-child):after {\n content: \"\";\n position: relative;\n flex: 1;\n margin: 0.5rem 0 0 0;\n height: 1px;\n background-color: rgba(0, 0, 0, 0.1);\n}\n.stepper-horizontal li:not(:first-child):before {\n content: \"\";\n position: relative;\n flex: 1;\n margin: 0.5rem 0 0 0;\n height: 1px;\n background-color: rgba(0, 0, 0, 0.1);\n}\n.stepper-horizontal li:hover {\n background-color: rgba(0, 0, 0, 0.06);\n}\n@media (max-width: 47.9375rem) {\n .stepper-horizontal {\n flex-direction: column;\n }\n .stepper-horizontal li {\n align-items: flex-start;\n flex-direction: column;\n }\n .stepper-horizontal li a .label {\n flex-flow: column nowrap;\n order: 2;\n margin-top: 0.2rem;\n }\n .stepper-horizontal li:not(:last-child):after {\n content: \"\";\n position: absolute;\n width: 1px;\n height: calc(100% - 40px);\n left: 2.19rem;\n top: 3.75rem;\n }\n}\n.stepper-horizontal > li:not(:last-of-type) {\n margin-bottom: 0 !important;\n}\n.stepper-vertical {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n.stepper-vertical li {\n display: flex;\n align-items: flex-start;\n flex: 1;\n flex-direction: column;\n position: relative;\n}\n.stepper-vertical li a {\n align-self: flex-start;\n display: flex;\n position: relative;\n}\n.stepper-vertical li a .circle {\n order: 1;\n}\n.stepper-vertical li a .label {\n flex-flow: column nowrap;\n order: 2;\n margin-top: 0.2rem;\n}\n.stepper-vertical li.completed a .label {\n font-weight: 500;\n}\n.stepper-vertical li .step-content {\n display: block;\n margin-top: 0;\n margin-left: 3.13rem;\n padding: 0.94rem;\n}\n.stepper-vertical li .step-content p {\n font-size: 0.88rem;\n}\n.stepper-vertical li:not(:last-child):after {\n content: \"\";\n position: absolute;\n width: 1px;\n height: calc(100% - 40px);\n left: 2.19rem;\n top: 3.44rem;\n background-color: rgba(0, 0, 0, 0.1);\n}\n.bs-switch {\n position: relative;\n display: inline-block;\n width: 60px;\n height: 34px;\n}\n.bs-switch input {\n display: none;\n}\n.bs-switch input:checked + .slider {\n background-color: #2196f3;\n}\n.bs-switch input:checked + .slider:before {\n transform: translateX(26px);\n}\n.bs-switch input:focus + .slider {\n box-shadow: 0 0 1px #2196f3;\n}\n.bs-switch .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #ccc;\n transition: 0.4s;\n}\n.bs-switch .slider:before {\n position: absolute;\n content: \"\";\n height: 26px;\n width: 26px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n transition: 0.4s;\n}\n.bs-switch .slider.round {\n border-radius: 34px;\n}\n.bs-switch .slider.round:before {\n border-radius: 50%;\n}\n.carousel .carousel-control-prev-icon {\n background-image: url('arrow_left.svg') !important;\n}\n.carousel .carousel-control-next-icon {\n background-image: url('arrow_right.svg') !important;\n}\n.custom-select.validate-error.ng-touched.ng-invalid {\n border-color: #ff4444;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.custom-select.validate-error.ng-touched.ng-invalid:focus {\n border-color: #ff4444;\n box-shadow: 0 0 0 0.2rem rgba(255, 68, 68, 0.25);\n}\n.custom-select.validate-success.ng-touched.ng-valid {\n border-color: #00c851;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.custom-select.validate-success.ng-touched.ng-valid:focus {\n border-color: #00c851;\n box-shadow: 0 0 0 0.2rem rgba(0, 200, 81, 0.25);\n}","@charset \"UTF-8\";/*!\n * animate.css - https://animate.style/\n * Version - 4.1.1\n * Licensed under the MIT license - http://opensource.org/licenses/MIT\n *\n * Copyright (c) 2020 Animate.css\n */:root {\n --animate-duration: 1s;\n --animate-delay: 1s;\n --animate-repeat: 1;\n}.animate__animated {\n -webkit-animation-duration: 1s;\n animation-duration: 1s;\n -webkit-animation-duration: var(--animate-duration);\n animation-duration: var(--animate-duration);\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n}.animate__animated.animate__infinite {\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n}.animate__animated.animate__repeat-1 {\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-animation-iteration-count: var(--animate-repeat);\n animation-iteration-count: var(--animate-repeat);\n}.animate__animated.animate__repeat-2 {\n -webkit-animation-iteration-count: calc(1 * 2);\n animation-iteration-count: calc(1 * 2);\n -webkit-animation-iteration-count: calc(var(--animate-repeat) * 2);\n animation-iteration-count: calc(var(--animate-repeat) * 2);\n}.animate__animated.animate__repeat-3 {\n -webkit-animation-iteration-count: calc(1 * 3);\n animation-iteration-count: calc(1 * 3);\n -webkit-animation-iteration-count: calc(var(--animate-repeat) * 3);\n animation-iteration-count: calc(var(--animate-repeat) * 3);\n}.animate__animated.animate__delay-1s {\n -webkit-animation-delay: 1s;\n animation-delay: 1s;\n -webkit-animation-delay: var(--animate-delay);\n animation-delay: var(--animate-delay);\n}.animate__animated.animate__delay-2s {\n -webkit-animation-delay: calc(1s * 2);\n animation-delay: calc(1s * 2);\n -webkit-animation-delay: calc(var(--animate-delay) * 2);\n animation-delay: calc(var(--animate-delay) * 2);\n}.animate__animated.animate__delay-3s {\n -webkit-animation-delay: calc(1s * 3);\n animation-delay: calc(1s * 3);\n -webkit-animation-delay: calc(var(--animate-delay) * 3);\n animation-delay: calc(var(--animate-delay) * 3);\n}.animate__animated.animate__delay-4s {\n -webkit-animation-delay: calc(1s * 4);\n animation-delay: calc(1s * 4);\n -webkit-animation-delay: calc(var(--animate-delay) * 4);\n animation-delay: calc(var(--animate-delay) * 4);\n}.animate__animated.animate__delay-5s {\n -webkit-animation-delay: calc(1s * 5);\n animation-delay: calc(1s * 5);\n -webkit-animation-delay: calc(var(--animate-delay) * 5);\n animation-delay: calc(var(--animate-delay) * 5);\n}.animate__animated.animate__faster {\n -webkit-animation-duration: calc(1s / 2);\n animation-duration: calc(1s / 2);\n -webkit-animation-duration: calc(var(--animate-duration) / 2);\n animation-duration: calc(var(--animate-duration) / 2);\n}.animate__animated.animate__fast {\n -webkit-animation-duration: calc(1s * 0.8);\n animation-duration: calc(1s * 0.8);\n -webkit-animation-duration: calc(var(--animate-duration) * 0.8);\n animation-duration: calc(var(--animate-duration) * 0.8);\n}.animate__animated.animate__slow {\n -webkit-animation-duration: calc(1s * 2);\n animation-duration: calc(1s * 2);\n -webkit-animation-duration: calc(var(--animate-duration) * 2);\n animation-duration: calc(var(--animate-duration) * 2);\n}.animate__animated.animate__slower {\n -webkit-animation-duration: calc(1s * 3);\n animation-duration: calc(1s * 3);\n -webkit-animation-duration: calc(var(--animate-duration) * 3);\n animation-duration: calc(var(--animate-duration) * 3);\n}@media print, (prefers-reduced-motion: reduce) {\n .animate__animated {\n -webkit-animation-duration: 1ms !important;\n animation-duration: 1ms !important;\n -webkit-transition-duration: 1ms !important;\n transition-duration: 1ms !important;\n -webkit-animation-iteration-count: 1 !important;\n animation-iteration-count: 1 !important;\n }\n\n .animate__animated[class*='Out'] {\n opacity: 0;\n }\n}/* Attention seekers */@-webkit-keyframes bounce {\n from,\n 20%,\n 53%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 40%,\n 43% {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1);\n transform: translate3d(0, -30px, 0) scaleY(1.1);\n }\n\n 70% {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05);\n transform: translate3d(0, -15px, 0) scaleY(1.05);\n }\n\n 80% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n -webkit-transform: translate3d(0, 0, 0) scaleY(0.95);\n transform: translate3d(0, 0, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02);\n transform: translate3d(0, -4px, 0) scaleY(1.02);\n }\n}@keyframes bounce {\n from,\n 20%,\n 53%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 40%,\n 43% {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1);\n transform: translate3d(0, -30px, 0) scaleY(1.1);\n }\n\n 70% {\n -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);\n -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05);\n transform: translate3d(0, -15px, 0) scaleY(1.05);\n }\n\n 80% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n -webkit-transform: translate3d(0, 0, 0) scaleY(0.95);\n transform: translate3d(0, 0, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02);\n transform: translate3d(0, -4px, 0) scaleY(1.02);\n }\n}.animate__bounce {\n -webkit-animation-name: bounce;\n animation-name: bounce;\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n}@-webkit-keyframes flash {\n from,\n 50%,\n to {\n opacity: 1;\n }\n\n 25%,\n 75% {\n opacity: 0;\n }\n}@keyframes flash {\n from,\n 50%,\n to {\n opacity: 1;\n }\n\n 25%,\n 75% {\n opacity: 0;\n }\n}.animate__flash {\n -webkit-animation-name: flash;\n animation-name: flash;\n}/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */@-webkit-keyframes pulse {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.05, 1.05, 1.05);\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}@keyframes pulse {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.05, 1.05, 1.05);\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}.animate__pulse {\n -webkit-animation-name: pulse;\n animation-name: pulse;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n}@-webkit-keyframes rubberBand {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n -webkit-transform: scale3d(1.25, 0.75, 1);\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.75, 1.25, 1);\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.15, 0.85, 1);\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n -webkit-transform: scale3d(0.95, 1.05, 1);\n transform: scale3d(0.95, 1.05, 1);\n }\n\n 75% {\n -webkit-transform: scale3d(1.05, 0.95, 1);\n transform: scale3d(1.05, 0.95, 1);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}@keyframes rubberBand {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n -webkit-transform: scale3d(1.25, 0.75, 1);\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.75, 1.25, 1);\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.15, 0.85, 1);\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n -webkit-transform: scale3d(0.95, 1.05, 1);\n transform: scale3d(0.95, 1.05, 1);\n }\n\n 75% {\n -webkit-transform: scale3d(1.05, 0.95, 1);\n transform: scale3d(1.05, 0.95, 1);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}.animate__rubberBand {\n -webkit-animation-name: rubberBand;\n animation-name: rubberBand;\n}@-webkit-keyframes shakeX {\n from,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n}@keyframes shakeX {\n from,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n}.animate__shakeX {\n -webkit-animation-name: shakeX;\n animation-name: shakeX;\n}@-webkit-keyframes shakeY {\n from,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n}@keyframes shakeY {\n from,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%,\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n}.animate__shakeY {\n -webkit-animation-name: shakeY;\n animation-name: shakeY;\n}@-webkit-keyframes headShake {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 6.5% {\n -webkit-transform: translateX(-6px) rotateY(-9deg);\n transform: translateX(-6px) rotateY(-9deg);\n }\n\n 18.5% {\n -webkit-transform: translateX(5px) rotateY(7deg);\n transform: translateX(5px) rotateY(7deg);\n }\n\n 31.5% {\n -webkit-transform: translateX(-3px) rotateY(-5deg);\n transform: translateX(-3px) rotateY(-5deg);\n }\n\n 43.5% {\n -webkit-transform: translateX(2px) rotateY(3deg);\n transform: translateX(2px) rotateY(3deg);\n }\n\n 50% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}@keyframes headShake {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 6.5% {\n -webkit-transform: translateX(-6px) rotateY(-9deg);\n transform: translateX(-6px) rotateY(-9deg);\n }\n\n 18.5% {\n -webkit-transform: translateX(5px) rotateY(7deg);\n transform: translateX(5px) rotateY(7deg);\n }\n\n 31.5% {\n -webkit-transform: translateX(-3px) rotateY(-5deg);\n transform: translateX(-3px) rotateY(-5deg);\n }\n\n 43.5% {\n -webkit-transform: translateX(2px) rotateY(3deg);\n transform: translateX(2px) rotateY(3deg);\n }\n\n 50% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}.animate__headShake {\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n -webkit-animation-name: headShake;\n animation-name: headShake;\n}@-webkit-keyframes swing {\n 20% {\n -webkit-transform: rotate3d(0, 0, 1, 15deg);\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n -webkit-transform: rotate3d(0, 0, 1, -10deg);\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 5deg);\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, -5deg);\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n}@keyframes swing {\n 20% {\n -webkit-transform: rotate3d(0, 0, 1, 15deg);\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n -webkit-transform: rotate3d(0, 0, 1, -10deg);\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 5deg);\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, -5deg);\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n}.animate__swing {\n -webkit-transform-origin: top center;\n transform-origin: top center;\n -webkit-animation-name: swing;\n animation-name: swing;\n}@-webkit-keyframes tada {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 10%,\n 20% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%,\n 60%,\n 80% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}@keyframes tada {\n from {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 10%,\n 20% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%,\n 50%,\n 70%,\n 90% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%,\n 60%,\n 80% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n to {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}.animate__tada {\n -webkit-animation-name: tada;\n animation-name: tada;\n}/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */@-webkit-keyframes wobble {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes wobble {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__wobble {\n -webkit-animation-name: wobble;\n animation-name: wobble;\n}@-webkit-keyframes jello {\n from,\n 11.1%,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 22.2% {\n -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);\n transform: skewX(-12.5deg) skewY(-12.5deg);\n }\n\n 33.3% {\n -webkit-transform: skewX(6.25deg) skewY(6.25deg);\n transform: skewX(6.25deg) skewY(6.25deg);\n }\n\n 44.4% {\n -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);\n transform: skewX(-3.125deg) skewY(-3.125deg);\n }\n\n 55.5% {\n -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);\n transform: skewX(1.5625deg) skewY(1.5625deg);\n }\n\n 66.6% {\n -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);\n transform: skewX(-0.78125deg) skewY(-0.78125deg);\n }\n\n 77.7% {\n -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);\n transform: skewX(0.390625deg) skewY(0.390625deg);\n }\n\n 88.8% {\n -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n }\n}@keyframes jello {\n from,\n 11.1%,\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 22.2% {\n -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);\n transform: skewX(-12.5deg) skewY(-12.5deg);\n }\n\n 33.3% {\n -webkit-transform: skewX(6.25deg) skewY(6.25deg);\n transform: skewX(6.25deg) skewY(6.25deg);\n }\n\n 44.4% {\n -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);\n transform: skewX(-3.125deg) skewY(-3.125deg);\n }\n\n 55.5% {\n -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);\n transform: skewX(1.5625deg) skewY(1.5625deg);\n }\n\n 66.6% {\n -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);\n transform: skewX(-0.78125deg) skewY(-0.78125deg);\n }\n\n 77.7% {\n -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);\n transform: skewX(0.390625deg) skewY(0.390625deg);\n }\n\n 88.8% {\n -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n transform: skewX(-0.1953125deg) skewY(-0.1953125deg);\n }\n}.animate__jello {\n -webkit-animation-name: jello;\n animation-name: jello;\n -webkit-transform-origin: center;\n transform-origin: center;\n}@-webkit-keyframes heartBeat {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 14% {\n -webkit-transform: scale(1.3);\n transform: scale(1.3);\n }\n\n 28% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 42% {\n -webkit-transform: scale(1.3);\n transform: scale(1.3);\n }\n\n 70% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}@keyframes heartBeat {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 14% {\n -webkit-transform: scale(1.3);\n transform: scale(1.3);\n }\n\n 28% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n\n 42% {\n -webkit-transform: scale(1.3);\n transform: scale(1.3);\n }\n\n 70% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}.animate__heartBeat {\n -webkit-animation-name: heartBeat;\n animation-name: heartBeat;\n -webkit-animation-duration: calc(1s * 1.3);\n animation-duration: calc(1s * 1.3);\n -webkit-animation-duration: calc(var(--animate-duration) * 1.3);\n animation-duration: calc(var(--animate-duration) * 1.3);\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n}/* Back entrances */@-webkit-keyframes backInDown {\n 0% {\n -webkit-transform: translateY(-1200px) scale(0.7);\n transform: translateY(-1200px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}@keyframes backInDown {\n 0% {\n -webkit-transform: translateY(-1200px) scale(0.7);\n transform: translateY(-1200px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}.animate__backInDown {\n -webkit-animation-name: backInDown;\n animation-name: backInDown;\n}@-webkit-keyframes backInLeft {\n 0% {\n -webkit-transform: translateX(-2000px) scale(0.7);\n transform: translateX(-2000px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}@keyframes backInLeft {\n 0% {\n -webkit-transform: translateX(-2000px) scale(0.7);\n transform: translateX(-2000px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}.animate__backInLeft {\n -webkit-animation-name: backInLeft;\n animation-name: backInLeft;\n}@-webkit-keyframes backInRight {\n 0% {\n -webkit-transform: translateX(2000px) scale(0.7);\n transform: translateX(2000px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}@keyframes backInRight {\n 0% {\n -webkit-transform: translateX(2000px) scale(0.7);\n transform: translateX(2000px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}.animate__backInRight {\n -webkit-animation-name: backInRight;\n animation-name: backInRight;\n}@-webkit-keyframes backInUp {\n 0% {\n -webkit-transform: translateY(1200px) scale(0.7);\n transform: translateY(1200px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}@keyframes backInUp {\n 0% {\n -webkit-transform: translateY(1200px) scale(0.7);\n transform: translateY(1200px) scale(0.7);\n opacity: 0.7;\n }\n\n 80% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n}.animate__backInUp {\n -webkit-animation-name: backInUp;\n animation-name: backInUp;\n}/* Back exits */@-webkit-keyframes backOutDown {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateY(700px) scale(0.7);\n transform: translateY(700px) scale(0.7);\n opacity: 0.7;\n }\n}@keyframes backOutDown {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateY(700px) scale(0.7);\n transform: translateY(700px) scale(0.7);\n opacity: 0.7;\n }\n}.animate__backOutDown {\n -webkit-animation-name: backOutDown;\n animation-name: backOutDown;\n}@-webkit-keyframes backOutLeft {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateX(-2000px) scale(0.7);\n transform: translateX(-2000px) scale(0.7);\n opacity: 0.7;\n }\n}@keyframes backOutLeft {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateX(-2000px) scale(0.7);\n transform: translateX(-2000px) scale(0.7);\n opacity: 0.7;\n }\n}.animate__backOutLeft {\n -webkit-animation-name: backOutLeft;\n animation-name: backOutLeft;\n}@-webkit-keyframes backOutRight {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateX(2000px) scale(0.7);\n transform: translateX(2000px) scale(0.7);\n opacity: 0.7;\n }\n}@keyframes backOutRight {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateX(0px) scale(0.7);\n transform: translateX(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateX(2000px) scale(0.7);\n transform: translateX(2000px) scale(0.7);\n opacity: 0.7;\n }\n}.animate__backOutRight {\n -webkit-animation-name: backOutRight;\n animation-name: backOutRight;\n}@-webkit-keyframes backOutUp {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateY(-700px) scale(0.7);\n transform: translateY(-700px) scale(0.7);\n opacity: 0.7;\n }\n}@keyframes backOutUp {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1;\n }\n\n 20% {\n -webkit-transform: translateY(0px) scale(0.7);\n transform: translateY(0px) scale(0.7);\n opacity: 0.7;\n }\n\n 100% {\n -webkit-transform: translateY(-700px) scale(0.7);\n transform: translateY(-700px) scale(0.7);\n opacity: 0.7;\n }\n}.animate__backOutUp {\n -webkit-animation-name: backOutUp;\n animation-name: backOutUp;\n}/* Bouncing entrances */@-webkit-keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 20% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n -webkit-transform: scale3d(0.97, 0.97, 0.97);\n transform: scale3d(0.97, 0.97, 0.97);\n }\n\n to {\n opacity: 1;\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}@keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 20% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n -webkit-transform: scale3d(0.97, 0.97, 0.97);\n transform: scale3d(0.97, 0.97, 0.97);\n }\n\n to {\n opacity: 1;\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}.animate__bounceIn {\n -webkit-animation-duration: calc(1s * 0.75);\n animation-duration: calc(1s * 0.75);\n -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\n animation-duration: calc(var(--animate-duration) * 0.75);\n -webkit-animation-name: bounceIn;\n animation-name: bounceIn;\n}@-webkit-keyframes bounceInDown {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -3000px, 0) scaleY(3);\n transform: translate3d(0, -3000px, 0) scaleY(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, 25px, 0) scaleY(0.9);\n transform: translate3d(0, 25px, 0) scaleY(0.9);\n }\n\n 75% {\n -webkit-transform: translate3d(0, -10px, 0) scaleY(0.95);\n transform: translate3d(0, -10px, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, 5px, 0) scaleY(0.985);\n transform: translate3d(0, 5px, 0) scaleY(0.985);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes bounceInDown {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -3000px, 0) scaleY(3);\n transform: translate3d(0, -3000px, 0) scaleY(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, 25px, 0) scaleY(0.9);\n transform: translate3d(0, 25px, 0) scaleY(0.9);\n }\n\n 75% {\n -webkit-transform: translate3d(0, -10px, 0) scaleY(0.95);\n transform: translate3d(0, -10px, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, 5px, 0) scaleY(0.985);\n transform: translate3d(0, 5px, 0) scaleY(0.985);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__bounceInDown {\n -webkit-animation-name: bounceInDown;\n animation-name: bounceInDown;\n}@-webkit-keyframes bounceInLeft {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-3000px, 0, 0) scaleX(3);\n transform: translate3d(-3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(25px, 0, 0) scaleX(1);\n transform: translate3d(25px, 0, 0) scaleX(1);\n }\n\n 75% {\n -webkit-transform: translate3d(-10px, 0, 0) scaleX(0.98);\n transform: translate3d(-10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n -webkit-transform: translate3d(5px, 0, 0) scaleX(0.995);\n transform: translate3d(5px, 0, 0) scaleX(0.995);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes bounceInLeft {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-3000px, 0, 0) scaleX(3);\n transform: translate3d(-3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(25px, 0, 0) scaleX(1);\n transform: translate3d(25px, 0, 0) scaleX(1);\n }\n\n 75% {\n -webkit-transform: translate3d(-10px, 0, 0) scaleX(0.98);\n transform: translate3d(-10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n -webkit-transform: translate3d(5px, 0, 0) scaleX(0.995);\n transform: translate3d(5px, 0, 0) scaleX(0.995);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__bounceInLeft {\n -webkit-animation-name: bounceInLeft;\n animation-name: bounceInLeft;\n}@-webkit-keyframes bounceInRight {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n -webkit-transform: translate3d(3000px, 0, 0) scaleX(3);\n transform: translate3d(3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(-25px, 0, 0) scaleX(1);\n transform: translate3d(-25px, 0, 0) scaleX(1);\n }\n\n 75% {\n -webkit-transform: translate3d(10px, 0, 0) scaleX(0.98);\n transform: translate3d(10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n -webkit-transform: translate3d(-5px, 0, 0) scaleX(0.995);\n transform: translate3d(-5px, 0, 0) scaleX(0.995);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes bounceInRight {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n -webkit-transform: translate3d(3000px, 0, 0) scaleX(3);\n transform: translate3d(3000px, 0, 0) scaleX(3);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(-25px, 0, 0) scaleX(1);\n transform: translate3d(-25px, 0, 0) scaleX(1);\n }\n\n 75% {\n -webkit-transform: translate3d(10px, 0, 0) scaleX(0.98);\n transform: translate3d(10px, 0, 0) scaleX(0.98);\n }\n\n 90% {\n -webkit-transform: translate3d(-5px, 0, 0) scaleX(0.995);\n transform: translate3d(-5px, 0, 0) scaleX(0.995);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__bounceInRight {\n -webkit-animation-name: bounceInRight;\n animation-name: bounceInRight;\n}@-webkit-keyframes bounceInUp {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 3000px, 0) scaleY(5);\n transform: translate3d(0, 3000px, 0) scaleY(5);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n 75% {\n -webkit-transform: translate3d(0, 10px, 0) scaleY(0.95);\n transform: translate3d(0, 10px, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -5px, 0) scaleY(0.985);\n transform: translate3d(0, -5px, 0) scaleY(0.985);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes bounceInUp {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 3000px, 0) scaleY(5);\n transform: translate3d(0, 3000px, 0) scaleY(5);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n 75% {\n -webkit-transform: translate3d(0, 10px, 0) scaleY(0.95);\n transform: translate3d(0, 10px, 0) scaleY(0.95);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -5px, 0) scaleY(0.985);\n transform: translate3d(0, -5px, 0) scaleY(0.985);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__bounceInUp {\n -webkit-animation-name: bounceInUp;\n animation-name: bounceInUp;\n}/* Bouncing exits */@-webkit-keyframes bounceOut {\n 20% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 50%,\n 55% {\n opacity: 1;\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n}@keyframes bounceOut {\n 20% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 50%,\n 55% {\n opacity: 1;\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n}.animate__bounceOut {\n -webkit-animation-duration: calc(1s * 0.75);\n animation-duration: calc(1s * 0.75);\n -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\n animation-duration: calc(var(--animate-duration) * 0.75);\n -webkit-animation-name: bounceOut;\n animation-name: bounceOut;\n}@-webkit-keyframes bounceOutDown {\n 20% {\n -webkit-transform: translate3d(0, 10px, 0) scaleY(0.985);\n transform: translate3d(0, 10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0) scaleY(3);\n transform: translate3d(0, 2000px, 0) scaleY(3);\n }\n}@keyframes bounceOutDown {\n 20% {\n -webkit-transform: translate3d(0, 10px, 0) scaleY(0.985);\n transform: translate3d(0, 10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0) scaleY(0.9);\n transform: translate3d(0, -20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0) scaleY(3);\n transform: translate3d(0, 2000px, 0) scaleY(3);\n }\n}.animate__bounceOutDown {\n -webkit-animation-name: bounceOutDown;\n animation-name: bounceOutDown;\n}@-webkit-keyframes bounceOutLeft {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(20px, 0, 0) scaleX(0.9);\n transform: translate3d(20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0) scaleX(2);\n transform: translate3d(-2000px, 0, 0) scaleX(2);\n }\n}@keyframes bounceOutLeft {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(20px, 0, 0) scaleX(0.9);\n transform: translate3d(20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0) scaleX(2);\n transform: translate3d(-2000px, 0, 0) scaleX(2);\n }\n}.animate__bounceOutLeft {\n -webkit-animation-name: bounceOutLeft;\n animation-name: bounceOutLeft;\n}@-webkit-keyframes bounceOutRight {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(-20px, 0, 0) scaleX(0.9);\n transform: translate3d(-20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0) scaleX(2);\n transform: translate3d(2000px, 0, 0) scaleX(2);\n }\n}@keyframes bounceOutRight {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(-20px, 0, 0) scaleX(0.9);\n transform: translate3d(-20px, 0, 0) scaleX(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0) scaleX(2);\n transform: translate3d(2000px, 0, 0) scaleX(2);\n }\n}.animate__bounceOutRight {\n -webkit-animation-name: bounceOutRight;\n animation-name: bounceOutRight;\n}@-webkit-keyframes bounceOutUp {\n 20% {\n -webkit-transform: translate3d(0, -10px, 0) scaleY(0.985);\n transform: translate3d(0, -10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, 20px, 0) scaleY(0.9);\n transform: translate3d(0, 20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0) scaleY(3);\n transform: translate3d(0, -2000px, 0) scaleY(3);\n }\n}@keyframes bounceOutUp {\n 20% {\n -webkit-transform: translate3d(0, -10px, 0) scaleY(0.985);\n transform: translate3d(0, -10px, 0) scaleY(0.985);\n }\n\n 40%,\n 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, 20px, 0) scaleY(0.9);\n transform: translate3d(0, 20px, 0) scaleY(0.9);\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0) scaleY(3);\n transform: translate3d(0, -2000px, 0) scaleY(3);\n }\n}.animate__bounceOutUp {\n -webkit-animation-name: bounceOutUp;\n animation-name: bounceOutUp;\n}/* Fading entrances */@-webkit-keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}.animate__fadeIn {\n -webkit-animation-name: fadeIn;\n animation-name: fadeIn;\n}@-webkit-keyframes fadeInDown {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInDown {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInDown {\n -webkit-animation-name: fadeInDown;\n animation-name: fadeInDown;\n}@-webkit-keyframes fadeInDownBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInDownBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInDownBig {\n -webkit-animation-name: fadeInDownBig;\n animation-name: fadeInDownBig;\n}@-webkit-keyframes fadeInLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInLeft {\n -webkit-animation-name: fadeInLeft;\n animation-name: fadeInLeft;\n}@-webkit-keyframes fadeInLeftBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInLeftBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInLeftBig {\n -webkit-animation-name: fadeInLeftBig;\n animation-name: fadeInLeftBig;\n}@-webkit-keyframes fadeInRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInRight {\n -webkit-animation-name: fadeInRight;\n animation-name: fadeInRight;\n}@-webkit-keyframes fadeInRightBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInRightBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInRightBig {\n -webkit-animation-name: fadeInRightBig;\n animation-name: fadeInRightBig;\n}@-webkit-keyframes fadeInUp {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInUp {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInUp {\n -webkit-animation-name: fadeInUp;\n animation-name: fadeInUp;\n}@-webkit-keyframes fadeInUpBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInUpBig {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInUpBig {\n -webkit-animation-name: fadeInUpBig;\n animation-name: fadeInUpBig;\n}@-webkit-keyframes fadeInTopLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, -100%, 0);\n transform: translate3d(-100%, -100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInTopLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, -100%, 0);\n transform: translate3d(-100%, -100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInTopLeft {\n -webkit-animation-name: fadeInTopLeft;\n animation-name: fadeInTopLeft;\n}@-webkit-keyframes fadeInTopRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, -100%, 0);\n transform: translate3d(100%, -100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInTopRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, -100%, 0);\n transform: translate3d(100%, -100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInTopRight {\n -webkit-animation-name: fadeInTopRight;\n animation-name: fadeInTopRight;\n}@-webkit-keyframes fadeInBottomLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 100%, 0);\n transform: translate3d(-100%, 100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInBottomLeft {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 100%, 0);\n transform: translate3d(-100%, 100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInBottomLeft {\n -webkit-animation-name: fadeInBottomLeft;\n animation-name: fadeInBottomLeft;\n}@-webkit-keyframes fadeInBottomRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, 100%, 0);\n transform: translate3d(100%, 100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes fadeInBottomRight {\n from {\n opacity: 0;\n -webkit-transform: translate3d(100%, 100%, 0);\n transform: translate3d(100%, 100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__fadeInBottomRight {\n -webkit-animation-name: fadeInBottomRight;\n animation-name: fadeInBottomRight;\n}/* Fading exits */@-webkit-keyframes fadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}@keyframes fadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}.animate__fadeOut {\n -webkit-animation-name: fadeOut;\n animation-name: fadeOut;\n}@-webkit-keyframes fadeOutDown {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}@keyframes fadeOutDown {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}.animate__fadeOutDown {\n -webkit-animation-name: fadeOutDown;\n animation-name: fadeOutDown;\n}@-webkit-keyframes fadeOutDownBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}@keyframes fadeOutDownBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}.animate__fadeOutDownBig {\n -webkit-animation-name: fadeOutDownBig;\n animation-name: fadeOutDownBig;\n}@-webkit-keyframes fadeOutLeft {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}@keyframes fadeOutLeft {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}.animate__fadeOutLeft {\n -webkit-animation-name: fadeOutLeft;\n animation-name: fadeOutLeft;\n}@-webkit-keyframes fadeOutLeftBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}@keyframes fadeOutLeftBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}.animate__fadeOutLeftBig {\n -webkit-animation-name: fadeOutLeftBig;\n animation-name: fadeOutLeftBig;\n}@-webkit-keyframes fadeOutRight {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}@keyframes fadeOutRight {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}.animate__fadeOutRight {\n -webkit-animation-name: fadeOutRight;\n animation-name: fadeOutRight;\n}@-webkit-keyframes fadeOutRightBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}@keyframes fadeOutRightBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}.animate__fadeOutRightBig {\n -webkit-animation-name: fadeOutRightBig;\n animation-name: fadeOutRightBig;\n}@-webkit-keyframes fadeOutUp {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}@keyframes fadeOutUp {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}.animate__fadeOutUp {\n -webkit-animation-name: fadeOutUp;\n animation-name: fadeOutUp;\n}@-webkit-keyframes fadeOutUpBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}@keyframes fadeOutUpBig {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}.animate__fadeOutUpBig {\n -webkit-animation-name: fadeOutUpBig;\n animation-name: fadeOutUpBig;\n}@-webkit-keyframes fadeOutTopLeft {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, -100%, 0);\n transform: translate3d(-100%, -100%, 0);\n }\n}@keyframes fadeOutTopLeft {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, -100%, 0);\n transform: translate3d(-100%, -100%, 0);\n }\n}.animate__fadeOutTopLeft {\n -webkit-animation-name: fadeOutTopLeft;\n animation-name: fadeOutTopLeft;\n}@-webkit-keyframes fadeOutTopRight {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, -100%, 0);\n transform: translate3d(100%, -100%, 0);\n }\n}@keyframes fadeOutTopRight {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, -100%, 0);\n transform: translate3d(100%, -100%, 0);\n }\n}.animate__fadeOutTopRight {\n -webkit-animation-name: fadeOutTopRight;\n animation-name: fadeOutTopRight;\n}@-webkit-keyframes fadeOutBottomRight {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 100%, 0);\n transform: translate3d(100%, 100%, 0);\n }\n}@keyframes fadeOutBottomRight {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 100%, 0);\n transform: translate3d(100%, 100%, 0);\n }\n}.animate__fadeOutBottomRight {\n -webkit-animation-name: fadeOutBottomRight;\n animation-name: fadeOutBottomRight;\n}@-webkit-keyframes fadeOutBottomLeft {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 100%, 0);\n transform: translate3d(-100%, 100%, 0);\n }\n}@keyframes fadeOutBottomLeft {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n to {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 100%, 0);\n transform: translate3d(-100%, 100%, 0);\n }\n}.animate__fadeOutBottomLeft {\n -webkit-animation-name: fadeOutBottomLeft;\n animation-name: fadeOutBottomLeft;\n}/* Flippers */@-webkit-keyframes flip {\n from {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 40% {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 50% {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 80% {\n -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n to {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n}@keyframes flip {\n from {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 40% {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -190deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 50% {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)\n rotate3d(0, 1, 0, -170deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 80% {\n -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)\n rotate3d(0, 1, 0, 0deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n to {\n -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n}.animate__animated.animate__flip {\n -webkit-backface-visibility: visible;\n backface-visibility: visible;\n -webkit-animation-name: flip;\n animation-name: flip;\n}@-webkit-keyframes flipInX {\n from {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n to {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}@keyframes flipInX {\n from {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n to {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}.animate__flipInX {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipInX;\n animation-name: flipInX;\n}@-webkit-keyframes flipInY {\n from {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n to {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}@keyframes flipInY {\n from {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n to {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}.animate__flipInY {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipInY;\n animation-name: flipInY;\n}@-webkit-keyframes flipOutX {\n from {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n to {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}@keyframes flipOutX {\n from {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n to {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}.animate__flipOutX {\n -webkit-animation-duration: calc(1s * 0.75);\n animation-duration: calc(1s * 0.75);\n -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\n animation-duration: calc(var(--animate-duration) * 0.75);\n -webkit-animation-name: flipOutX;\n animation-name: flipOutX;\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n}@-webkit-keyframes flipOutY {\n from {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n to {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n}@keyframes flipOutY {\n from {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n to {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n}.animate__flipOutY {\n -webkit-animation-duration: calc(1s * 0.75);\n animation-duration: calc(1s * 0.75);\n -webkit-animation-duration: calc(var(--animate-duration) * 0.75);\n animation-duration: calc(var(--animate-duration) * 0.75);\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipOutY;\n animation-name: flipOutY;\n}/* Lightspeed */@-webkit-keyframes lightSpeedInRight {\n from {\n -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);\n transform: translate3d(100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(20deg);\n transform: skewX(20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(-5deg);\n transform: skewX(-5deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes lightSpeedInRight {\n from {\n -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);\n transform: translate3d(100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(20deg);\n transform: skewX(20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(-5deg);\n transform: skewX(-5deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__lightSpeedInRight {\n -webkit-animation-name: lightSpeedInRight;\n animation-name: lightSpeedInRight;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n}@-webkit-keyframes lightSpeedInLeft {\n from {\n -webkit-transform: translate3d(-100%, 0, 0) skewX(30deg);\n transform: translate3d(-100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(-20deg);\n transform: skewX(-20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(5deg);\n transform: skewX(5deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes lightSpeedInLeft {\n from {\n -webkit-transform: translate3d(-100%, 0, 0) skewX(30deg);\n transform: translate3d(-100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(-20deg);\n transform: skewX(-20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(5deg);\n transform: skewX(5deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__lightSpeedInLeft {\n -webkit-animation-name: lightSpeedInLeft;\n animation-name: lightSpeedInLeft;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n}@-webkit-keyframes lightSpeedOutRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);\n transform: translate3d(100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n}@keyframes lightSpeedOutRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);\n transform: translate3d(100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n}.animate__lightSpeedOutRight {\n -webkit-animation-name: lightSpeedOutRight;\n animation-name: lightSpeedOutRight;\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n}@-webkit-keyframes lightSpeedOutLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(-100%, 0, 0) skewX(-30deg);\n transform: translate3d(-100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n}@keyframes lightSpeedOutLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(-100%, 0, 0) skewX(-30deg);\n transform: translate3d(-100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n}.animate__lightSpeedOutLeft {\n -webkit-animation-name: lightSpeedOutLeft;\n animation-name: lightSpeedOutLeft;\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n}/* Rotating entrances */@-webkit-keyframes rotateIn {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -200deg);\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}@keyframes rotateIn {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -200deg);\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}.animate__rotateIn {\n -webkit-animation-name: rotateIn;\n animation-name: rotateIn;\n -webkit-transform-origin: center;\n transform-origin: center;\n}@-webkit-keyframes rotateInDownLeft {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}@keyframes rotateInDownLeft {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}.animate__rotateInDownLeft {\n -webkit-animation-name: rotateInDownLeft;\n animation-name: rotateInDownLeft;\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n}@-webkit-keyframes rotateInDownRight {\n from {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}@keyframes rotateInDownRight {\n from {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}.animate__rotateInDownRight {\n -webkit-animation-name: rotateInDownRight;\n animation-name: rotateInDownRight;\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n}@-webkit-keyframes rotateInUpLeft {\n from {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}@keyframes rotateInUpLeft {\n from {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}.animate__rotateInUpLeft {\n -webkit-animation-name: rotateInUpLeft;\n animation-name: rotateInUpLeft;\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n}@-webkit-keyframes rotateInUpRight {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -90deg);\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}@keyframes rotateInUpRight {\n from {\n -webkit-transform: rotate3d(0, 0, 1, -90deg);\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}.animate__rotateInUpRight {\n -webkit-animation-name: rotateInUpRight;\n animation-name: rotateInUpRight;\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n}/* Rotating exits */@-webkit-keyframes rotateOut {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 200deg);\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n}@keyframes rotateOut {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 200deg);\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n}.animate__rotateOut {\n -webkit-animation-name: rotateOut;\n animation-name: rotateOut;\n -webkit-transform-origin: center;\n transform-origin: center;\n}@-webkit-keyframes rotateOutDownLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n}@keyframes rotateOutDownLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n}.animate__rotateOutDownLeft {\n -webkit-animation-name: rotateOutDownLeft;\n animation-name: rotateOutDownLeft;\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n}@-webkit-keyframes rotateOutDownRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}@keyframes rotateOutDownRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}.animate__rotateOutDownRight {\n -webkit-animation-name: rotateOutDownRight;\n animation-name: rotateOutDownRight;\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n}@-webkit-keyframes rotateOutUpLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}@keyframes rotateOutUpLeft {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}.animate__rotateOutUpLeft {\n -webkit-animation-name: rotateOutUpLeft;\n animation-name: rotateOutUpLeft;\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n}@-webkit-keyframes rotateOutUpRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 90deg);\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n}@keyframes rotateOutUpRight {\n from {\n opacity: 1;\n }\n\n to {\n -webkit-transform: rotate3d(0, 0, 1, 90deg);\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n}.animate__rotateOutUpRight {\n -webkit-animation-name: rotateOutUpRight;\n animation-name: rotateOutUpRight;\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n}/* Specials */@-webkit-keyframes hinge {\n 0% {\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 20%,\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 80deg);\n transform: rotate3d(0, 0, 1, 80deg);\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 40%,\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, 60deg);\n transform: rotate3d(0, 0, 1, 60deg);\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(0, 700px, 0);\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n}@keyframes hinge {\n 0% {\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 20%,\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 80deg);\n transform: rotate3d(0, 0, 1, 80deg);\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 40%,\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, 60deg);\n transform: rotate3d(0, 0, 1, 60deg);\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n to {\n -webkit-transform: translate3d(0, 700px, 0);\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n}.animate__hinge {\n -webkit-animation-duration: calc(1s * 2);\n animation-duration: calc(1s * 2);\n -webkit-animation-duration: calc(var(--animate-duration) * 2);\n animation-duration: calc(var(--animate-duration) * 2);\n -webkit-animation-name: hinge;\n animation-name: hinge;\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}@-webkit-keyframes jackInTheBox {\n from {\n opacity: 0;\n -webkit-transform: scale(0.1) rotate(30deg);\n transform: scale(0.1) rotate(30deg);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n }\n\n 50% {\n -webkit-transform: rotate(-10deg);\n transform: rotate(-10deg);\n }\n\n 70% {\n -webkit-transform: rotate(3deg);\n transform: rotate(3deg);\n }\n\n to {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}@keyframes jackInTheBox {\n from {\n opacity: 0;\n -webkit-transform: scale(0.1) rotate(30deg);\n transform: scale(0.1) rotate(30deg);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n }\n\n 50% {\n -webkit-transform: rotate(-10deg);\n transform: rotate(-10deg);\n }\n\n 70% {\n -webkit-transform: rotate(3deg);\n transform: rotate(3deg);\n }\n\n to {\n opacity: 1;\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n}.animate__jackInTheBox {\n -webkit-animation-name: jackInTheBox;\n animation-name: jackInTheBox;\n}/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */@-webkit-keyframes rollIn {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes rollIn {\n from {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__rollIn {\n -webkit-animation-name: rollIn;\n animation-name: rollIn;\n}/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */@-webkit-keyframes rollOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n}@keyframes rollOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n}.animate__rollOut {\n -webkit-animation-name: rollOut;\n animation-name: rollOut;\n}/* Zooming entrances */@-webkit-keyframes zoomIn {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 50% {\n opacity: 1;\n }\n}@keyframes zoomIn {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n 50% {\n opacity: 1;\n }\n}.animate__zoomIn {\n -webkit-animation-name: zoomIn;\n animation-name: zoomIn;\n}@-webkit-keyframes zoomInDown {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomInDown {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomInDown {\n -webkit-animation-name: zoomInDown;\n animation-name: zoomInDown;\n}@-webkit-keyframes zoomInLeft {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomInLeft {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomInLeft {\n -webkit-animation-name: zoomInLeft;\n animation-name: zoomInLeft;\n}@-webkit-keyframes zoomInRight {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomInRight {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomInRight {\n -webkit-animation-name: zoomInRight;\n animation-name: zoomInRight;\n}@-webkit-keyframes zoomInUp {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomInUp {\n from {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomInUp {\n -webkit-animation-name: zoomInUp;\n animation-name: zoomInUp;\n}/* Zooming exits */@-webkit-keyframes zoomOut {\n from {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n to {\n opacity: 0;\n }\n}@keyframes zoomOut {\n from {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n -webkit-transform: scale3d(0.3, 0.3, 0.3);\n transform: scale3d(0.3, 0.3, 0.3);\n }\n\n to {\n opacity: 0;\n }\n}.animate__zoomOut {\n -webkit-animation-name: zoomOut;\n animation-name: zoomOut;\n}@-webkit-keyframes zoomOutDown {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomOutDown {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomOutDown {\n -webkit-animation-name: zoomOutDown;\n animation-name: zoomOutDown;\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n}@-webkit-keyframes zoomOutLeft {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);\n transform: scale(0.1) translate3d(-2000px, 0, 0);\n }\n}@keyframes zoomOutLeft {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);\n transform: scale(0.1) translate3d(-2000px, 0, 0);\n }\n}.animate__zoomOutLeft {\n -webkit-animation-name: zoomOutLeft;\n animation-name: zoomOutLeft;\n -webkit-transform-origin: left center;\n transform-origin: left center;\n}@-webkit-keyframes zoomOutRight {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);\n transform: scale(0.1) translate3d(2000px, 0, 0);\n }\n}@keyframes zoomOutRight {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);\n transform: scale(0.1) translate3d(2000px, 0, 0);\n }\n}.animate__zoomOutRight {\n -webkit-animation-name: zoomOutRight;\n animation-name: zoomOutRight;\n -webkit-transform-origin: right center;\n transform-origin: right center;\n}@-webkit-keyframes zoomOutUp {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}@keyframes zoomOutUp {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\n }\n\n to {\n opacity: 0;\n -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);\n }\n}.animate__zoomOutUp {\n -webkit-animation-name: zoomOutUp;\n animation-name: zoomOutUp;\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n}/* Sliding entrances */@-webkit-keyframes slideInDown {\n from {\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes slideInDown {\n from {\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__slideInDown {\n -webkit-animation-name: slideInDown;\n animation-name: slideInDown;\n}@-webkit-keyframes slideInLeft {\n from {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes slideInLeft {\n from {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__slideInLeft {\n -webkit-animation-name: slideInLeft;\n animation-name: slideInLeft;\n}@-webkit-keyframes slideInRight {\n from {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes slideInRight {\n from {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__slideInRight {\n -webkit-animation-name: slideInRight;\n animation-name: slideInRight;\n}@-webkit-keyframes slideInUp {\n from {\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}@keyframes slideInUp {\n from {\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n visibility: visible;\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}.animate__slideInUp {\n -webkit-animation-name: slideInUp;\n animation-name: slideInUp;\n}/* Sliding exits */@-webkit-keyframes slideOutDown {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}@keyframes slideOutDown {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}.animate__slideOutDown {\n -webkit-animation-name: slideOutDown;\n animation-name: slideOutDown;\n}@-webkit-keyframes slideOutLeft {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}@keyframes slideOutLeft {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}.animate__slideOutLeft {\n -webkit-animation-name: slideOutLeft;\n animation-name: slideOutLeft;\n}@-webkit-keyframes slideOutRight {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}@keyframes slideOutRight {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}.animate__slideOutRight {\n -webkit-animation-name: slideOutRight;\n animation-name: slideOutRight;\n}@-webkit-keyframes slideOutUp {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}@keyframes slideOutUp {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n to {\n visibility: hidden;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}.animate__slideOutUp {\n -webkit-animation-name: slideOutUp;\n animation-name: slideOutUp;\n}\n",".toast-center-center {\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.toast-top-center {\n top: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-bottom-center {\n bottom: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-top-full-width {\n top: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-bottom-full-width {\n bottom: 0;\n right: 0;\n width: 100%;\n}\n\n.toast-top-left {\n top: 12px;\n left: 12px;\n}\n\n.toast-top-right {\n top: 12px;\n right: 12px;\n}\n\n.toast-bottom-right {\n right: 12px;\n bottom: 12px;\n}\n\n.toast-bottom-left {\n bottom: 12px;\n left: 12px;\n}\n\n.toast-container.toast-top-center .ngx-toastr,\n.toast-container.toast-bottom-center .ngx-toastr {\n width: 300px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.toast-container.toast-top-full-width .ngx-toastr,\n.toast-container.toast-bottom-full-width .ngx-toastr {\n width: 96%;\n margin-left: auto;\n margin-right: auto;\n}\n\n.toast-container {\n pointer-events: none;\n position: fixed;\n z-index: 999999;\n}\n\n.toast-container .ngx-toastr {\n border-radius: 0.25rem;\n position: relative;\n overflow: hidden;\n margin: 0 0 6px;\n padding: 0.75rem 1.25rem 0.75rem 50px;\n width: 300px;\n background-position: 15px center;\n background-repeat: no-repeat;\n background-size: 24px;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.03);\n pointer-events: auto;\n}\n\n.toast-container .ngx-toastr .toast-title {\n font-weight: bold;\n}\n\n.toast-container .ngx-toastr .toast-message {\n word-wrap: break-word;\n}\n\n.toast-container .ngx-toastr .toast-message a:hover {\n text-decoration: underline;\n}\n\n.toast-container .ngx-toastr .toast-close-button {\n position: relative;\n right: -0.3em;\n top: -0.3em;\n float: right;\n font-size: 20px;\n font-weight: bold;\n color: inherit;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.5;\n background: transparent;\n border: 0;\n padding: 0;\n}\n\n.toast-container .ngx-toastr .toast-progress {\n position: absolute;\n left: 0;\n bottom: 0;\n height: 4px;\n background-color: #000000;\n opacity: 0.3;\n}\n\n.toast-container .ngx-toastr .toast-close-button:hover,\n.toast-container .ngx-toastr .toast-close-button:focus {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.75;\n}\n\n.toast-container .ngx-toastr:hover {\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);\n opacity: 1;\n cursor: pointer;\n}\n\n.toast-success {\n /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/solid/check.svg */\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(21, 87, 36, 0.999999)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E\");\n color: #155724;\n background-color: #d4edda;\n border: 1px solid #c3e6cb;\n}\n\n.toast-error {\n /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/solid/times-circle.svg */\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(114, 28, 36, 0.999999)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E\");\n color: #721c24;\n background-color: #f8d7da;\n border: 1px solid #f5c6cb;\n}\n\n.toast-info {\n /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/solid/info-circle.svg */\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgba(12, 84, 96, 0.999999)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E\");\n color: #0c5460;\n background-color: #d1ecf1;\n border: 1px solid #bee5eb;\n}\n\n.toast-warning {\n /* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/solid/exclamation-triangle.svg */\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgba(133, 100, 4, 0.999999)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E\");\n color: #856404;\n background-color: #fff3cd;\n border: 1px solid #ffeeba;\n}\n\n@media all and (max-width: 240px) {\n .toast-container .ngx-toastr.div {\n padding: 8px 8px 8px 50px;\n width: 11em;\n }\n\n .toast-container .toast-close-button {\n right: -0.2em;\n top: -0.2em;\n }\n}\n\n@media all and (min-width: 241px) and (max-width: 480px) {\n .toast-container .ngx-toastr.div {\n padding: 8px 8px 8px 50px;\n width: 18em;\n }\n\n .toast-container .toast-close-button {\n right: -0.2em;\n top: -0.2em;\n }\n}\n\n@media all and (min-width: 481px) and (max-width: 768px) {\n .toast-container .ngx-toastr.div {\n padding: 15px 15px 15px 50px;\n width: 25em;\n }\n}\n\n/* You can add global styles to this file, and also import other style files */\n\n/* select starting stylings ------------------------------*/\n\n.select {\n position: relative;\n width: 300px;\n}\n\n.link-button {\n padding: 0 !important;\n color: blue !important;\n margin: 0 !important;\n}\n\n.select-text {\n position: relative;\n font-family: inherit;\n font-weight: 300;\n color: #fff;\n background-color: transparent;\n width: 300px;\n padding: 10px 10px 5px 0px;\n font-size: 1rem;\n border-radius: 0;\n border: none;\n border-bottom: 1px solid rgba(255, 255, 255, 0.2);\n}\n\n/* Remove focus */\n\n.select-text:focus {\n outline: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0);\n}\n\n/* Use custom arrow */\n\n.select .select-text {\n -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none;\n}\n\n.select:after {\n position: absolute;\n top: 18px;\n right: 10px;\n /* Styling the down arrow */\n width: 0;\n height: 0;\n padding: 0;\n margin-top: 2px;\n content: \"\";\n background: #fff;\n border-left: 6px solid #263238;\n border-right: 6px solid #263238;\n border-top: 6px solid rgba(0, 0, 0, 0.12);\n pointer-events: none;\n}\n\n/* BOTTOM BARS ================================= */\n\n.select-bar {\n position: relative;\n display: block;\n width: 350px;\n}\n\n.select-bar:before, .select-bar:after {\n content: \"\";\n height: 2px;\n width: 0;\n bottom: 1px;\n position: absolute;\n background: #2F80ED;\n transition: 0.2s ease all;\n}\n\n.select-bar:before {\n left: 50%;\n}\n\n.select-bar:after {\n right: 50%;\n}\n\n/* active state */\n\n.select-text:focus ~ .select-bar:before, .select-text:focus ~ .select-bar:after {\n width: 50%;\n}\n\n/* HIGHLIGHTER ================================== */\n\n.select-highlight {\n position: absolute;\n height: 60%;\n width: 100px;\n top: 25%;\n left: 0;\n pointer-events: none;\n opacity: 0.5;\n}\n\n.gray-text {\n color: #ccc;\n}\n\n.adminio-logo {\n font-family: \"Righteous\", cursive;\n}\n\n.separator {\n display: flex;\n align-items: center;\n text-align: center;\n padding-bottom: 10px;\n}\n\n.separator::before, .separator::after {\n content: \"\";\n flex: 1;\n border-bottom: 1px solid #ccc;\n}\n\n.separator::before {\n margin-right: 0.25em;\n}\n\n.separator::after {\n margin-left: 0.25em;\n}\n\n.transparent {\n background-color: #ffffff !important;\n opacity: 0.8;\n color: #222;\n}\n\n.transparent > a {\n color: #222 !important;\n}\n\ndiv.align-right {\n text-align: right;\n}\n\na.action-link {\n padding: 2px;\n margin: 3px;\n}\n\n.align-center {\n text-align: center;\n}\n\nli.type-none {\n list-style-type: none;\n}\n\nul.type-none {\n -webkit-padding-start: 0px;\n padding-inline-start: 0px;\n}\n\n.dropdown-custom {\n width: 200px;\n}\n\ndiv.statement-actions {\n width: 250px;\n display: inline-block;\n}\n\ndiv.lineCut {\n display: inline-block;\n}\n\ndiv.backdrop {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n.loverlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 111;\n background-color: #fefefe;\n opacity: 0.2;\n width: 100%;\n height: 100%;\n}\n\n.lpopup {\n display: table;\n margin: 0 auto;\n left: 50%;\n top: 40%;\n background-color: transparent;\n text-align: center;\n z-index: 222;\n width: 200px;\n height: 200px;\n margin-left: -100px;\n position: absolute;\n}\n\n.error-lpopup {\n display: table;\n margin: 0 auto;\n left: 50%;\n top: 20%;\n box-shadow: 0px 3px 10px #959595;\n color: #fff;\n text-align: center;\n z-index: 222;\n width: 200px;\n height: 200px;\n margin-left: -100px;\n border-radius: 35px;\n position: absolute;\n}\n\n.error-lpopup > mdb-icon {\n margin-top: 30px;\n}\n\n.pointer {\n cursor: pointer !important;\n}\n\n.button-fix {\n margin-top: 0.23rem !important;\n}\n\n/*list css*/\n\n.c-btn {\n min-width: 485px !important;\n background: #fff;\n border: 1px solid #ccc;\n color: #333;\n}\n\n.selected-list .c-list .c-token {\n background: #0079FE;\n}\n\n.selected-list .c-list .c-token .c-label {\n color: #fff;\n}\n\n.selected-list .c-list .c-token .c-remove svg {\n fill: #fff;\n}\n\n.selected-list .c-angle-down svg, .selected-list .c-angle-up svg {\n fill: #333;\n}\n\n.dropdown-list ul li:hover {\n background: #f5f5f5;\n}\n\n.arrow-up, .arrow-down {\n border-bottom: 15px solid #fff;\n}\n\n.arrow-2 {\n border-bottom: 15px solid #ccc;\n}\n\n.list-area {\n border: 1px solid #ccc;\n background: #fff;\n box-shadow: 0px 1px 5px #959595;\n}\n\n.select-all {\n border-bottom: 1px solid #ccc;\n}\n\n.list-filter {\n border-bottom: 1px solid #ccc;\n}\n\n.list-filter .c-search svg {\n fill: #888;\n}\n\n.list-filter .c-clear svg {\n fill: #888;\n}\n\n.pure-checkbox input[type=checkbox]:focus + label:before, .pure-checkbox input[type=checkbox]:hover + label:before {\n border-color: #0079FE;\n background-color: #f2f2f2;\n}\n\n.pure-checkbox input[type=checkbox] + label {\n color: #000;\n}\n\n.pure-checkbox input[type=checkbox] + label:before {\n color: #0079FE;\n border: 1px solid #0079FE;\n}\n\n.pure-checkbox input[type=checkbox] + label:after {\n background-color: #0079FE;\n}\n\n.pure-checkbox input[type=checkbox]:disabled + label:before {\n border-color: #cccccc;\n}\n\n.pure-checkbox input[type=checkbox]:disabled:checked + label:before {\n background-color: #cccccc;\n}\n\n.pure-checkbox input[type=checkbox] + label:after {\n border-color: #ffffff;\n}\n\n.pure-checkbox input[type=radio]:checked + label:before {\n background-color: white;\n}\n\n.pure-checkbox input[type=checkbox]:checked + label:before {\n background: #0079FE;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox]:focus + label:before, .single-select-mode .pure-checkbox input[type=checkbox]:hover + label:before {\n border-color: #0079FE;\n background-color: #f2f2f2;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox] + label {\n color: #000;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox] + label:before {\n color: transparent !important;\n border: 0px solid #0079FE;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox] + label:after {\n background-color: transparent !important;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox]:disabled + label:before {\n border-color: #cccccc;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox]:disabled:checked + label:before {\n background-color: #cccccc;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox] + label:after {\n border-color: #0079FE;\n}\n\n.single-select-mode .pure-checkbox input[type=radio]:checked + label:before {\n background-color: white;\n}\n\n.single-select-mode .pure-checkbox input[type=checkbox]:checked + label:before {\n background: none !important;\n}\n\n.selected-item {\n background: #e9f4ff;\n}\n\n.btn-iceblue {\n background: #0079FE;\n border: 1px solid #ccc;\n color: #fff;\n}",".c-btn {\n background: #fff;\n border: 1px solid #ccc;\n color: #333; }\n\n.selected-list .c-list .c-token {\n background: #0079FE; }\n\n.selected-list .c-list .c-token .c-label {\n color: #fff; }\n\n.selected-list .c-list .c-token .c-remove svg {\n fill: #fff; }\n\n.selected-list .c-angle-down svg, .selected-list .c-angle-up svg {\n fill: #333; }\n\n.dropdown-list ul li:hover {\n background: #f5f5f5; }\n\n.arrow-up, .arrow-down {\n border-bottom: 15px solid #fff; }\n\n.arrow-2 {\n border-bottom: 15px solid #ccc; }\n\n.list-area {\n border: 1px solid #ccc;\n background: #fff;\n box-shadow: 0px 1px 5px #959595; }\n\n.select-all {\n border-bottom: 1px solid #ccc; }\n\n.list-filter {\n border-bottom: 1px solid #ccc; }\n\n.list-filter .c-search svg {\n fill: #888; }\n\n.list-filter .c-clear svg {\n fill: #888; }\n\n.pure-checkbox input[type=\"checkbox\"]:focus + label:before, .pure-checkbox input[type=\"checkbox\"]:hover + label:before {\n border-color: #0079FE;\n background-color: #f2f2f2; }\n\n.pure-checkbox input[type=\"checkbox\"] + label {\n color: #000; }\n\n.pure-checkbox input[type=\"checkbox\"] + label:before {\n color: #0079FE;\n border: 1px solid #0079FE; }\n\n.pure-checkbox input[type=\"checkbox\"] + label:after {\n background-color: #0079FE; }\n\n.pure-checkbox input[type=\"checkbox\"]:disabled + label:before {\n border-color: #cccccc; }\n\n.pure-checkbox input[type=\"checkbox\"]:disabled:checked + label:before {\n background-color: #cccccc; }\n\n.pure-checkbox input[type=\"checkbox\"] + label:after {\n border-color: #ffffff; }\n\n.pure-checkbox input[type=\"radio\"]:checked + label:before {\n background-color: white; }\n\n.pure-checkbox input[type=\"checkbox\"]:checked + label:before {\n background: #0079FE; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"]:focus + label:before, .single-select-mode .pure-checkbox input[type=\"checkbox\"]:hover + label:before {\n border-color: #0079FE;\n background-color: #f2f2f2; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"] + label {\n color: #000; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"] + label:before {\n color: transparent !important;\n border: 0px solid #0079FE; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"] + label:after {\n background-color: transparent !important; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"]:disabled + label:before {\n border-color: #cccccc; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"]:disabled:checked + label:before {\n background-color: #cccccc; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"] + label:after {\n border-color: #0079FE; }\n\n.single-select-mode .pure-checkbox input[type=\"radio\"]:checked + label:before {\n background-color: white; }\n\n.single-select-mode .pure-checkbox input[type=\"checkbox\"]:checked + label:before {\n background: none !important; }\n\n.selected-item {\n background: #e9f4ff; }\n\n.btn-iceblue {\n background: #0079FE;\n border: 1px solid #ccc;\n color: #fff; }\n"],"sourceRoot":"webpack:///"} \ No newline at end of file