{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/account/facebook-login/facebook-login.component.html","./src/app/account/login-form/login-form.component.html","./src/app/account/registration-form/registration-form.component.html","./src/app/app.component.html","./src/app/dashboard/home/home.component.html","./src/app/dashboard/pages/employee/employee-detail.component.html","./src/app/dashboard/pages/employee/employee-edit.component.html","./src/app/dashboard/pages/employee/employee.component.html","./src/app/dashboard/pages/employeetrip/employeetrip-detail.component.html","./src/app/dashboard/pages/employeetrip/employeetrip-edit.component.html","./src/app/dashboard/pages/employeetrip/employeetrip.component.html","./src/app/dashboard/pages/farm/farm.component.html","./src/app/dashboard/pages/farm/farm.detail.component.html","./src/app/dashboard/pages/farm/farm.edit.component.html","./src/app/dashboard/pages/field/field-detail.component.html","./src/app/dashboard/pages/field/field-edit.component.html","./src/app/dashboard/pages/field/field.component.html","./src/app/dashboard/pages/product/plant-variety-edit/plant-variety-edit.component.html","./src/app/dashboard/pages/product/product-detail.component.html","./src/app/dashboard/pages/product/product-edit.component.html","./src/app/dashboard/pages/product/product.component.html","./src/app/dashboard/pages/trace/trace-detail.component.html","./src/app/dashboard/pages/trace/trace-edit.component.html","./src/app/dashboard/pages/trace/trace.component.html","./src/app/dashboard/pages/vehicle-make/vehicle-make-detail.component.html","./src/app/dashboard/pages/vehicle-make/vehicle-make-edit.component.html","./src/app/dashboard/pages/vehicle-make/vehicle-make.component.html","./src/app/dashboard/pages/vehicle-model/vehicle-model-detail.component.html","./src/app/dashboard/pages/vehicle-model/vehicle-model-edit.component.html","./src/app/dashboard/pages/vehicle-model/vehicle-model.component.html","./src/app/dashboard/pages/vehicle/vehicle-detail.component.html","./src/app/dashboard/pages/vehicle/vehicle-edit.component.html","./src/app/dashboard/pages/vehicle/vehicle.component.html","./src/app/dashboard/reports/trips/trips.component.html","./src/app/dashboard/root/root.component.html","./src/app/dashboard/settings/settings.component.html","./src/app/header/header.component.html","./src/app/home/home.component.html","./src/app/spinner/spinner.component.html","./src/app/account/account.module.ts","./src/app/account/account.routing.ts","./src/app/account/facebook-login/facebook-login.component.scss","./src/app/account/facebook-login/facebook-login.component.ts","./src/app/account/login-form/login-form.component.scss","./src/app/account/login-form/login-form.component.ts","./src/app/account/registration-form/registration-form.component.scss","./src/app/account/registration-form/registration-form.component.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/auth.guard.ts","./src/app/dashboard/dashboard.module.ts","./src/app/dashboard/dashboard.routing.ts","./src/app/dashboard/home/home.component.scss","./src/app/dashboard/home/home.component.ts","./src/app/dashboard/pages/company/company.module.ts","./src/app/dashboard/pages/employee/employee-detail.component.css","./src/app/dashboard/pages/employee/employee-detail.component.ts","./src/app/dashboard/pages/employee/employee-edit.component.css","./src/app/dashboard/pages/employee/employee-edit.component.ts","./src/app/dashboard/pages/employee/employee-edit.guard.ts","./src/app/dashboard/pages/employee/employee.component.css","./src/app/dashboard/pages/employee/employee.component.ts","./src/app/dashboard/pages/employee/employee.module.ts","./src/app/dashboard/pages/employeetrip/employee-trip.module.ts","./src/app/dashboard/pages/employeetrip/employeetrip-detail.component.css","./src/app/dashboard/pages/employeetrip/employeetrip-detail.component.ts","./src/app/dashboard/pages/employeetrip/employeetrip-edit.component.css","./src/app/dashboard/pages/employeetrip/employeetrip-edit.component.ts","./src/app/dashboard/pages/employeetrip/employeetrip.component.css","./src/app/dashboard/pages/employeetrip/employeetrip.component.ts","./src/app/dashboard/pages/employeetrip/employeetrip.guard.ts","./src/app/dashboard/pages/farm/farm-edit.guard.ts","./src/app/dashboard/pages/farm/farm.component.scss","./src/app/dashboard/pages/farm/farm.component.ts","./src/app/dashboard/pages/farm/farm.detail.component.scss","./src/app/dashboard/pages/farm/farm.detail.component.ts","./src/app/dashboard/pages/farm/farm.edit.component.scss","./src/app/dashboard/pages/farm/farm.edit.component.ts","./src/app/dashboard/pages/farm/farm.module.ts","./src/app/dashboard/pages/field/field-detail.component.css","./src/app/dashboard/pages/field/field-detail.component.ts","./src/app/dashboard/pages/field/field-edit.component.css","./src/app/dashboard/pages/field/field-edit.component.ts","./src/app/dashboard/pages/field/field-edit.guard.ts","./src/app/dashboard/pages/field/field.component.scss","./src/app/dashboard/pages/field/field.component.ts","./src/app/dashboard/pages/field/field.module.ts","./src/app/dashboard/pages/product/plant-variety-edit/plant-variety-edit.component.css","./src/app/dashboard/pages/product/plant-variety-edit/plant-variety-edit.component.ts","./src/app/dashboard/pages/product/product-detail.component.css","./src/app/dashboard/pages/product/product-detail.component.ts","./src/app/dashboard/pages/product/product-edit.component.css","./src/app/dashboard/pages/product/product-edit.component.ts","./src/app/dashboard/pages/product/product-edit.guard.ts","./src/app/dashboard/pages/product/product.component.scss","./src/app/dashboard/pages/product/product.component.ts","./src/app/dashboard/pages/product/product.module.ts","./src/app/dashboard/pages/trace/trace-detail.component.css","./src/app/dashboard/pages/trace/trace-detail.component.ts","./src/app/dashboard/pages/trace/trace-edit.component.css","./src/app/dashboard/pages/trace/trace-edit.component.ts","./src/app/dashboard/pages/trace/trace.component.scss","./src/app/dashboard/pages/trace/trace.component.ts","./src/app/dashboard/pages/trace/trace.guard.ts","./src/app/dashboard/pages/trace/trace.module.ts","./src/app/dashboard/pages/vehicle-make/vehicle-make-detail.component.css","./src/app/dashboard/pages/vehicle-make/vehicle-make-detail.component.ts","./src/app/dashboard/pages/vehicle-make/vehicle-make-edit.component.css","./src/app/dashboard/pages/vehicle-make/vehicle-make-edit.component.ts","./src/app/dashboard/pages/vehicle-make/vehicle-make-edit.guard.ts","./src/app/dashboard/pages/vehicle-make/vehicle-make.component.css","./src/app/dashboard/pages/vehicle-make/vehicle-make.component.ts","./src/app/dashboard/pages/vehicle-make/vehicle-make.module.ts","./src/app/dashboard/pages/vehicle-model/vehicle-model-detail.component.css","./src/app/dashboard/pages/vehicle-model/vehicle-model-detail.component.ts","./src/app/dashboard/pages/vehicle-model/vehicle-model-edit.component.css","./src/app/dashboard/pages/vehicle-model/vehicle-model-edit.component.ts","./src/app/dashboard/pages/vehicle-model/vehicle-model-edit.guard.ts","./src/app/dashboard/pages/vehicle-model/vehicle-model.component.css","./src/app/dashboard/pages/vehicle-model/vehicle-model.component.ts","./src/app/dashboard/pages/vehicle-model/vehicle-model.module.ts","./src/app/dashboard/pages/vehicle/vehicle-detail.component.css","./src/app/dashboard/pages/vehicle/vehicle-detail.component.ts","./src/app/dashboard/pages/vehicle/vehicle-edit.component.css","./src/app/dashboard/pages/vehicle/vehicle-edit.component.ts","./src/app/dashboard/pages/vehicle/vehicle.component.css","./src/app/dashboard/pages/vehicle/vehicle.component.ts","./src/app/dashboard/pages/vehicle/vehicle.guard.ts","./src/app/dashboard/pages/vehicle/vehicle.module.ts","./src/app/dashboard/reports/trips/trips.component.css","./src/app/dashboard/reports/trips/trips.component.ts","./src/app/dashboard/root/root.component.scss","./src/app/dashboard/root/root.component.ts","./src/app/dashboard/services/dashboard.service.ts","./src/app/dashboard/services/employee.service.ts","./src/app/dashboard/services/employeetrip.service.ts","./src/app/dashboard/services/farm.service.ts","./src/app/dashboard/services/field.service.ts","./src/app/dashboard/services/file-upload-service.service.ts","./src/app/dashboard/services/plant-variety.service.ts","./src/app/dashboard/services/plant.service.ts","./src/app/dashboard/services/product-type.service.ts","./src/app/dashboard/services/product.service.ts","./src/app/dashboard/services/trace-product.service.ts","./src/app/dashboard/services/trace.service.ts","./src/app/dashboard/services/vehicle-make.service.ts","./src/app/dashboard/services/vehicle-model.service.ts","./src/app/dashboard/services/vehicle.service.ts","./src/app/dashboard/settings/settings.component.scss","./src/app/dashboard/settings/settings.component.ts","./src/app/data-models/gender.ts","./src/app/directives/email.validator.directive.ts","./src/app/directives/focus.directive.ts","./src/app/header/header.component.scss","./src/app/header/header.component.ts","./src/app/home/home.component.scss","./src/app/home/home.component.ts","./src/app/material.module.ts","./src/app/primeng.module.ts","./src/app/shared/generic-validator.ts","./src/app/shared/modules/shared.module.ts","./src/app/shared/modules/validate-odometero-readingdirective.ts","./src/app/shared/services/base.service.ts","./src/app/shared/services/company.service.ts","./src/app/shared/services/productType.service.ts","./src/app/shared/services/rentalAgreement.service.ts","./src/app/shared/services/user.service.ts","./src/app/shared/utils/Interceptor.service.ts","./src/app/shared/utils/config.service.ts","./src/app/shared/utils/interceptor-handler.ts","./src/app/spinner/spinner.component.scss","./src/app/spinner/spinner.component.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["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 = \"./$$_lazy_route_resource lazy recursive\";","export default \"
\\n
\\n

\\n
\\n
\\n
Oops! Your facebook login failed.
\\n
\\n - Error: {{error}}
\\n - Description: {{errorDescription}}
\\n
\\n
\\n
\\n
\\n\"","export default \"\\r\\n
\\r\\n
\\r\\n All set! Please login with your account\\r\\n
\\r\\n
Login
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","export default \"\\r\\n
\\r\\n
Please enter your information
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","export default \"\\n\\n \\n\\t\\n
\\n \\n\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Company | \\r\\n Date | \\r\\n Vehicle Reg | \\r\\n Vehicle Mileage | \\r\\n Fuel Type | \\r\\n Litres Pumped | \\r\\n Rate | \\r\\n Value | \\r\\n Employee Name | \\r\\n Km Travelled | \\r\\n R/Km Travelled | \\r\\n Documents | \\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ employeeTrip.companyName}}\\r\\n\\r\\n | \\r\\n\\r\\n \\r\\n {{ employeeTrip.transactionDate | date: 'dd-MM-yyyy'}}\\r\\n\\r\\n | \\r\\n\\r\\n \\r\\n \\r\\n {{ employeeTrip.vehicleRegistrationNumber }}\\r\\n \\r\\n | \\r\\n {{ employeeTrip.distanceTravelled }} | \\r\\n {{ employeeTrip.productName }} | \\r\\n {{ employeeTrip.quantity | number:'.3-3' }} | \\r\\n {{ employeeTrip.price | currency:'R':'symbol-narrow':'.3-3'}} | \\r\\n {{ employeeTrip.value | currency:'R':'symbol-narrow':'.3-3'}} | \\r\\n {{ employeeTrip.employeeName }} | \\r\\n\\r\\n {{ employeeTrip.kmTravelled }} | \\r\\n {{ employeeTrip.valuePerkmTravelled | currency:'R':'symbol-narrow' }} | \\r\\n \\r\\n\\r\\n \\r\\n  \\r\\n\\r\\n  \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n | \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Error: {{ errorMessage }}\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
FirstName:
\\r\\n
{{employee.firstName}}
\\r\\n
\\r\\n
\\r\\n
Surname:
\\r\\n
{{employee.surname}}
\\r\\n
\\r\\n
\\r\\n
Company Name:
\\r\\n
{{employee.companyName}}
\\r\\n
\\r\\n
\\r\\n
Employee Number:
\\r\\n
{{employee.employeeNumber}}
\\r\\n
\\r\\n
\\r\\n
Date Of Birth:
\\r\\n
{{employee.dateOfBirth | date: 'dd-MM-yyyy'}}
\\r\\n
\\r\\n
\\r\\n
Job Title:
\\r\\n
{{employee.jobTitle}}
\\r\\n
\\r\\n
\\r\\n
gender:
\\r\\n
{{employee.gender }}
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Full Name | \\r\\n Employee Number | \\r\\n JobTitle | \\r\\n Company | \\r\\n | \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ employee.firstName }} {{ employee.surname }}\\r\\n \\r\\n | \\r\\n {{ employee.employeeNumber }} | \\r\\n {{ employee.jobTitle }} | \\r\\n {{ employee.companyName }} | \\r\\n\\r\\n \\r\\n \\r\\n | \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Error: {{ errorMessage }}\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Product:
\\r\\n
{{employeeTrip.productName}}
\\r\\n
\\r\\n
\\r\\n
Vehicle Registration:
\\r\\n
{{employeeTrip.vehicleRegistrationNumber}}
\\r\\n
\\r\\n
\\r\\n
Company Name:
\\r\\n
{{employeeTrip.companyName}}
\\r\\n
\\r\\n
\\r\\n
Distance Travelled:
\\r\\n
{{employeeTrip.distanceTravelled}}
\\r\\n
\\r\\n
\\r\\n
Date Of Birth:
\\r\\n
{{employeeTrip.transactionDate | date: 'dd-MM-yyyy'}}
\\r\\n
\\r\\n
\\r\\n
km Travelled
\\r\\n
{{employeeTrip.kmTravelled}}
\\r\\n
\\r\\n
\\r\\n
Quantity:
\\r\\n
{{employeeTrip.quantity }}
\\r\\n
\\r\\n
\\r\\n
Price/Litre:
\\r\\n
{{employeeTrip.price }}
\\r\\n
\\r\\n
\\r\\n
Total Value:
\\r\\n
{{employeeTrip.value }}
\\r\\n
\\r\\n\\r\\n
\\r\\n
Invoice:
\\r\\n
\\r\\n

\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
Odometer Reading:
\\r\\n
\\r\\n

\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Date | \\r\\n Vehicle Reg | \\r\\n Vehicle Mileage | \\r\\n Fuel Type | \\r\\n Litres Pumped | \\r\\n \\r\\n Price(per litre) | \\r\\n Value | \\r\\n Employee Name | \\r\\n Km Travelled | \\r\\n R/Km Travelled | \\r\\n Documents | \\r\\n | \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ employeeTrip.transactionDate | date: 'dd-MM-yyyy'}}\\r\\n\\r\\n | \\r\\n\\r\\n \\r\\n \\r\\n {{ employeeTrip.vehicleRegistrationNumber }}\\r\\n \\r\\n | \\r\\n {{ employeeTrip.distanceTravelled }} | \\r\\n {{ employeeTrip.productName }} | \\r\\n {{ employeeTrip.quantity | number:'.3-3' }} | \\r\\n {{ employeeTrip.price | currency:'R':'symbol-narrow':'.3-3'}} | \\r\\n {{ employeeTrip.value | currency:'R':'symbol-narrow':'.3-3'}} | \\r\\n {{ employeeTrip.employeeName }} | \\r\\n\\r\\n {{ employeeTrip.kmTravelled }} | \\r\\n {{ employeeTrip.valuePerkmTravelled | currency:'R':'symbol-narrow' }} | \\r\\n \\r\\n\\r\\n \\r\\n  \\r\\n \\r\\n  \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n | \\r\\n \\r\\n \\r\\n | \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Error: {{ errorMessage }}\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Farm Name | \\r\\n Code | \\r\\n Size | \\r\\n Location | \\r\\n | \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ farm.farmName }}\\r\\n \\r\\n | \\r\\n {{ farm.farmCode }} | \\r\\n {{ farm.size }} | \\r\\n {{ farm.loaction }} | \\r\\n \\r\\n \\r\\n \\r\\n | \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Error: {{ errorMessage }}\\r\\n
\\r\\n\"","export default \"\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n
Name:
\\n
{{farm.farmName}}
\\n
\\n
\\n
Code:
\\n
{{farm.farmCode}}
\\n
\\n
\\n
Image Url:
\\n
{{farm.imageUrl}}
\\n
\\n
\\n
Latitude:
\\n
{{farm.latitude}}
\\n
\\n
\\n
Longitude:
\\n
{{farm.longitude}}
\\n
\\n
\\n
Size:
\\n
{{farm.size}}
\\n
\\n \\n
\\n
Tags:
\\n
{{farm.tags}}
\\n
\\n
\\n\\n
\\n
![]()
\\n
\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n\\n
{{errorMessage}}\\n
\\n
\\n\"","export default \"\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
{{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Name:
\\r\\n
{{field.fieldName}}
\\r\\n
\\r\\n
\\r\\n
Code:
\\r\\n
{{field.code}}
\\r\\n
\\r\\n
\\r\\n
Farm Name:
\\r\\n
{{field.farmName}}
\\r\\n
\\r\\n
\\r\\n
Row Spacing:
\\r\\n
{{field.rowSpacing}}
\\r\\n
\\r\\n
\\r\\n
Rental Agreement Name:
\\r\\n
{{field.rentalAgreementName}}
\\r\\n
\\r\\n
\\r\\n
Rental Agreement Text:
\\r\\n
{{field.rentalAgreementText}}
\\r\\n
\\r\\n
\\r\\n
Size:
\\r\\n
{{field.size}}
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n \\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Farm Name\\r\\n | \\r\\n Field Name | \\r\\n Code | \\r\\n RowSpacing | \\r\\n Size | \\r\\n | \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ field.farmName }}\\r\\n \\r\\n | \\r\\n \\r\\n \\r\\n {{ field.fieldName }}\\r\\n \\r\\n | \\r\\n {{ field.code }} | \\r\\n {{ field.rowSpacing }} | \\r\\n {{ field.size }} | \\r\\n \\r\\n \\r\\n | \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n Error: {{ errorMessage }}\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n\\r\\n
\\r\\n\"","export default \"product-detail works!
\\n\"","export default \"\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Trace - Prodcut Management\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Manage Crops\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{errorMessage}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Plant Varieties\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Plant Type\\r\\n | \\r\\n Name | \\r\\n Time To Germinate | \\r\\n Time To First Harvest | \\r\\n Total Days To End Of Crop | \\r\\n | \\r\\n | \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n {{ item.plantTypeName }}\\r\\n\\r\\n | \\r\\n \\r\\n\\r\\n {{ item.name }}\\r\\n\\r\\n | \\r\\n {{ item.timeToGerminate }} | \\r\\n {{ item.timeToFirstHarvest }} | \\r\\n {{ item.totalDaysToEndOfCrop }} | \\r\\n \\r\\n \\r\\n | \\r\\n \\r\\n \\r\\n | \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","export default \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Field Name:
\\r\\n
{{trace.fieldName}}
\\r\\n
\\r\\n
\\r\\n
Field Code:
\\r\\n
{{trace.fieldCode}}
\\r\\n
\\r\\n
\\r\\n
Bed Code:
\\r\\n
{{trace.code}}
\\r\\n
\\r\\n
\\r\\n
Plant Spacing:
\\r\\n
{{trace.plantSpacing}}
\\r\\n
\\r\\n
\\r\\n
Coverage:
\\r\\n
{{trace.size}}
\\r\\n
\\r\\n\\r\\n
\\r\\n
Number of Beds:
\\r\\n
{{trace.bedQuantity}}
\\r\\n
\\r\\n
\\r\\n
Bed Length(in meter):
\\r\\n
{{trace.bedLength}}
\\r\\n
\\r\\n
\\r\\n
Bed Spacing:
\\r\\n
{{trace.bedSpacing}}
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Field Name\\r\\n | \\r\\n Trace Code | \\r\\n Plant Spacing | \\r\\n Coverage | \\r\\n Number of Beds | \\r\\n Bed Length | \\r\\n Bed Spacing | \\r\\n | \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ trace.fieldName }}\\r\\n \\r\\n | \\r\\n \\r\\n \\r\\n {{ trace.code }}\\r\\n \\r\\n | \\r\\n {{ trace.plantSpacing | number : '.2-2'}} | \\r\\n {{ trace.size | number : '.2-2'}} | \\r\\n {{ trace.bedQuantity }} | \\r\\n {{ trace.bedLength }} | \\r\\n {{ trace.bedSpacing }} | \\r\\n \\r\\n \\r\\n | \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n Error: {{ errorMessage }}\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Vehicle Make :
\\r\\n
{{vehicleMake.name}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Vehicle Make | \\r\\n | \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ vehicleMake.name }}\\r\\n \\r\\n | \\r\\n \\r\\n \\r\\n \\r\\n | \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Error: {{ errorMessage }}\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Vehicle Make:
\\r\\n
{{vehicleModel.vehicleMake}}
\\r\\n
\\r\\n
\\r\\n
Vehicle Model:
\\r\\n
{{vehicleModel.name}}
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Vehicle Make | \\r\\n Vehicle Model | \\r\\n | \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ vehicleModel.vehicleMake }}\\r\\n \\r\\n | \\r\\n {{ vehicleModel.name }} | \\r\\n \\r\\n \\r\\n \\r\\n | \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Error: {{ errorMessage }}\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Vehicle Make:
\\r\\n
{{vehicle.vehicleMake}}
\\r\\n
\\r\\n
\\r\\n
Vehicle Model:
\\r\\n
{{vehicle.vehicleModel}}
\\r\\n
\\r\\n
\\r\\n
Registration Number:
\\r\\n
{{vehicle.registrationNumber}}
\\r\\n
\\r\\n
\\r\\n
VIN:
\\r\\n
{{vehicle.vin}}
\\r\\n
\\r\\n
\\r\\n
Odometer Reading:
\\r\\n
{{vehicle.ordometerReading }}
\\r\\n
\\r\\n
\\r\\n
Previous Reading:
\\r\\n
{{vehicle.previousReading }}
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{errorMessage}}\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Vehicle Make | \\r\\n VIN | \\r\\n Registration Number | \\r\\n Odometer Reading | \\r\\n | \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ vehicle.vehicleMake }} {{ vehicle.vehicleModel}}\\r\\n \\r\\n | \\r\\n {{ vehicle.vin }} | \\r\\n {{ vehicle.registrationNumber }} | \\r\\n {{ vehicle.ordometerReading }} | \\r\\n\\r\\n \\r\\n \\r\\n | \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Error: {{ errorMessage }}\\r\\n
\\r\\n\"","export default \"trips works!
\\n\"","export default \"\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n homeHome\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n personEmployee\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n directions_carVehicle\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\"","export default \"\\n settings works!\\n
\\n\"","export default \"\\r\\n \\r\\n\\r\\n\"","export default \"\\n\\n \\n \\n
\\n
FLeet Management App
\\n
An Application that we assist in the management of your day to day Fleets activities and content.
\\n
Register Login with email \\n
\\n
\\n
\\n\\n\"","export default \" \"","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/modules/shared.module';\r\n \r\nimport { UserService } from '../shared/services/user.service';\r\n\r\nimport { EmailValidator } from '../directives/email.validator.directive';\r\n\r\nimport { routing } from './account.routing';\r\nimport { RegistrationFormComponent } from './registration-form/registration-form.component';\r\nimport { LoginFormComponent } from './login-form/login-form.component';\r\nimport { FacebookLoginComponent } from './facebook-login/facebook-login.component';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { InterceptorService } from '../shared/utils/Interceptor.service';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,FormsModule,routing,SharedModule\r\n ],\r\n declarations: [RegistrationFormComponent,EmailValidator, LoginFormComponent, FacebookLoginComponent],\r\n providers: [UserService, { provide: HTTP_INTERCEPTORS, useClass: InterceptorService, multi: true }]\r\n})\r\nexport class AccountModule { }\r\n","import { ModuleWithProviders } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { RegistrationFormComponent } from './registration-form/registration-form.component';\nimport { LoginFormComponent } from './login-form/login-form.component';\nimport { FacebookLoginComponent } from './facebook-login/facebook-login.component';\n\nexport const routing: ModuleWithProviders = RouterModule.forChild([\n { path: 'register', component: RegistrationFormComponent},\n { path: 'login', component: LoginFormComponent},\n { path: 'facebook-login', component: FacebookLoginComponent}\n]);","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FjY291bnQvZmFjZWJvb2stbG9naW4vZmFjZWJvb2stbG9naW4uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component } from '@angular/core';\r\n\r\nimport { UserService } from '../../shared/services/user.service';\r\nimport { Router } from '@angular/router';\r\n \r\n\r\n@Component({\r\n selector: 'app-facebook-login',\r\n templateUrl: './facebook-login.component.html',\r\n styleUrls: ['./facebook-login.component.scss']\r\n})\r\nexport class FacebookLoginComponent {\r\n\r\n private authWindow: Window;\r\n failed: boolean;\r\n error: string;\r\n errorDescription: string;\r\n isRequesting: boolean; \r\n\r\n launchFbLogin() {\r\n this.authWindow = window.open('https://www.facebook.com/v2.11/dialog/oauth?&response_type=token&display=popup&client_id=1528751870549294&display=popup&redirect_uri=http://41.76.211.4/facebook-auth.html&scope=email',null,'width=600,height=400'); \r\n }\r\n\r\n constructor(private userService: UserService, private router: Router) {\r\n if (window.addEventListener) {\r\n window.addEventListener(\"message\", this.handleMessage.bind(this), false);\r\n } else {\r\n (window).attachEvent(\"onmessage\", this.handleMessage.bind(this));\r\n } \r\n } \r\n\r\n handleMessage(event: Event) {\r\n const message = event as MessageEvent;\r\n // Only trust messages from the below origin.\r\n if (message.origin !== \"http://localhost:5000\") return;\r\n\r\n this.authWindow.close();\r\n\r\n const result = JSON.parse(message.data);\r\n if (!result.status)\r\n {\r\n this.failed = true;\r\n this.error = result.error;\r\n this.errorDescription = result.errorDescription;\r\n }\r\n else\r\n {\r\n this.failed = false;\r\n this.isRequesting = true;\r\n\r\n this.userService.facebookLogin(result.accessToken)\r\n \r\n .subscribe(\r\n result => {\r\n if (result) {\r\n this.router.navigate(['/dashboard/home']);\r\n }\r\n },\r\n error => {\r\n this.failed = true;\r\n this.error = error;\r\n },\r\n () => this.isRequesting = false); \r\n }\r\n }\r\n}\r\n","export default \".new-user-alert {\\n padding-top: 2.5rem;\\n}\\n\\n.login_body {\\n /*background: url('Images/LoginPage/bottom-Black.gif') repeat scroll 0 0 #1B1B1B;*/\\n color: #FFFFFF;\\n font-size: 14px;\\n width: 300px;\\n font-family: Verdana, Helvetica, sans-serif;\\n}\\n\\n.login_main_bg {\\n margin: 0 0 0 -160px;\\n position: absolute;\\n font-weight: bold;\\n text-shadow: 0 -1px 0 #050505;\\n top: 0;\\n z-index: 99;\\n}\\n\\n.login_logo {\\n padding-top: 140px;\\n height: 120px;\\n text-align: center;\\n}\\n\\n.login_txtbox {\\n background: none repeat scroll 0 0 #EBEBEB;\\n border: 2px solid;\\n border-color: #E0E0E0;\\n border-radius: 4px 4px 4px 4px;\\n color: #555555;\\n font-size: 13px;\\n padding: 8px;\\n width: 300px;\\n *margin: 0px 8px 8px 0px;\\n}\\n\\n.login_lbl {\\n color: #585858;\\n font-family: Verdana, Helvetica, sans-serif;\\n font-size: 11px;\\n font-weight: bold;\\n}\\n\\n.login_signin {\\n width: 400px;\\n background-color: #1667A8;\\n border: 1px solid transparent;\\n border-radius: 4px 4px 4px 4px;\\n color: #FFFFFF;\\n cursor: pointer;\\n /*float: left;*/\\n font-size: 14px;\\n /*font-weight: bold;*/\\n letter-spacing: 1px;\\n padding: 6px 10px 6px 10px;\\n *padding: 6px 0px 6px 0px;\\n text-shadow: 0 -1px 0 #050505;\\n margin-left: 45px;\\n}\\n\\n.login_lblForgotPwd {\\n color: #494949;\\n font-family: Verdana, Helvetica, sans-serif;\\n font-size: 13px;\\n margin-left: 10px;\\n font-weight: normal;\\n height: 22px;\\n text-decoration: none;\\n}\\n\\n.login_chkbox {\\n clear: left;\\n display: block;\\n float: left;\\n padding: 0 5px 0 0;\\n width: 19px;\\n margin: 2px;\\n *margin-top: 0px;\\n}\\n\\n.login_remember {\\n color: #494949;\\n font-family: Verdana, Helvetica, sans-serif;\\n font-size: 13px;\\n font-weight: normal;\\n height: 22px;\\n margin-right: 10px;\\n}\\n\\n.btn-primary {\\n background-color: #1667A8 !important;\\n border: 1px solid transparent;\\n border-radius: 4px 4px 4px 4px;\\n color: #FFFFFF;\\n cursor: pointer;\\n}\\n\\n.login-container {\\n text-align: center;\\n}\\n\\n.login-square {\\n background-color: #0074D9;\\n width: 100px;\\n height: 100px;\\n display: inline-block;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYWNjb3VudC9sb2dpbi1mb3JtL0M6XFxEZXZlbG9wbWVudHNcXEN1c3RvbWVyc1xcRmFybUFwcFxcRmFybUFwcC5XZWIvc3JjXFxhcHBcXGFjY291bnRcXGxvZ2luLWZvcm1cXGxvZ2luLWZvcm0uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2FjY291bnQvbG9naW4tZm9ybS9sb2dpbi1mb3JtLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQWdCLG1CQUFBO0FDRWhCOztBREFBO0VBQ0Usa0ZBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLFlBQUE7RUFDQSwyQ0FBQTtBQ0dGOztBREFBO0VBRUUsb0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsNkJBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtBQ0VGOztBRENBO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7QUNFRjs7QURDQTtFQUNFLDBDQUFBO0VBQ0EsaUJBQUE7RUFDQSxxQkFBQTtFQUNBLDhCQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtHQUNBLHVCQUFBO0FDRUY7O0FEQ0E7RUFDRSxjQUFBO0VBQ0EsMkNBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7QUNFRjs7QURDQTtFQUNFLFlBQUE7RUFDQSx5QkFBQTtFQUNBLDZCQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLDBCQUFBO0dBQ0Esd0JBQUE7RUFDQSw2QkFBQTtFQUNBLGlCQUFBO0FDRUY7O0FEQ0E7RUFDRSxjQUFBO0VBQ0EsMkNBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtBQ0VGOztBRENBO0VBQ0UsV0FBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtHQUNBLGVBQUE7QUNFRjs7QURDQTtFQUNFLGNBQUE7RUFDQSwyQ0FBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBQ0VGOztBRENBO0VBQ0Usb0NBQUE7RUFDQSw2QkFBQTtFQUNBLDhCQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7QUNFRjs7QURDQTtFQUNJLGtCQUFBO0FDRUo7O0FEQ0E7RUFDSSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EscUJBQUE7QUNFSiIsImZpbGUiOiJzcmMvYXBwL2FjY291bnQvbG9naW4tZm9ybS9sb2dpbi1mb3JtLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm5ldy11c2VyLWFsZXJ0e3BhZGRpbmctdG9wOjIuNXJlbX1cclxuXHJcbi5sb2dpbl9ib2R5IHtcclxuICAvKmJhY2tncm91bmQ6IHVybCgnSW1hZ2VzL0xvZ2luUGFnZS9ib3R0b20tQmxhY2suZ2lmJykgcmVwZWF0IHNjcm9sbCAwIDAgIzFCMUIxQjsqL1xyXG4gIGNvbG9yOiAjRkZGRkZGO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICB3aWR0aDogMzAwcHg7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsSGVsdmV0aWNhLHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbi5sb2dpbl9tYWluX2JnIHtcclxuICBcclxuICBtYXJnaW46IDAgMCAwIC0xNjBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAwICMwNTA1MDU7XHJcbiAgdG9wOiAwO1xyXG4gIHotaW5kZXg6IDk5O1xyXG59XHJcblxyXG4ubG9naW5fbG9nbyB7XHJcbiAgcGFkZGluZy10b3A6IDE0MHB4O1xyXG4gIGhlaWdodDogMTIwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ubG9naW5fdHh0Ym94IHtcclxuICBiYWNrZ3JvdW5kOiBub25lIHJlcGVhdCBzY3JvbGwgMCAwICNFQkVCRUI7XHJcbiAgYm9yZGVyOiAycHggc29saWQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjRTBFMEUwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweCA0cHggNHB4IDRweDtcclxuICBjb2xvcjogIzU1NTU1NTtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgcGFkZGluZzogOHB4O1xyXG4gIHdpZHRoOiAzMDBweDtcclxuICAqbWFyZ2luOiAwcHggOHB4IDhweCAwcHg7XHJcbn1cclxuXHJcbi5sb2dpbl9sYmwge1xyXG4gIGNvbG9yOiAjNTg1ODU4O1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLEhlbHZldGljYSxzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMTFweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLmxvZ2luX3NpZ25pbiB7XHJcbiAgd2lkdGg6IDQwMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxNjY3QTg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4IDRweCA0cHggNHB4O1xyXG4gIGNvbG9yOiAjRkZGRkZGO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICAvKmZsb2F0OiBsZWZ0OyovXHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIC8qZm9udC13ZWlnaHQ6IGJvbGQ7Ki9cclxuICBsZXR0ZXItc3BhY2luZzogMXB4O1xyXG4gIHBhZGRpbmc6IDZweCAxMHB4IDZweCAxMHB4O1xyXG4gICpwYWRkaW5nOiA2cHggMHB4IDZweCAwcHg7XHJcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAwICMwNTA1MDU7XHJcbiAgbWFyZ2luLWxlZnQ6IDQ1cHg7XHJcbn1cclxuXHJcbi5sb2dpbl9sYmxGb3Jnb3RQd2Qge1xyXG4gIGNvbG9yOiAjNDk0OTQ5O1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLEhlbHZldGljYSxzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBtYXJnaW4tbGVmdDogMTBweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGhlaWdodDogMjJweDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbi5sb2dpbl9jaGtib3gge1xyXG4gIGNsZWFyOiBsZWZ0O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIHBhZGRpbmc6IDAgNXB4IDAgMDtcclxuICB3aWR0aDogMTlweDtcclxuICBtYXJnaW46IDJweDtcclxuICAqbWFyZ2luLXRvcDogMHB4O1xyXG59XHJcblxyXG4ubG9naW5fcmVtZW1iZXIge1xyXG4gIGNvbG9yOiAjNDk0OTQ5O1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLEhlbHZldGljYSxzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMTNweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGhlaWdodDogMjJweDtcclxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2NjdBOCAhaW1wb3J0YW50O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweCA0cHggNHB4IDRweDtcclxuICBjb2xvcjogI0ZGRkZGRjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5sb2dpbi1jb250YWluZXIge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ubG9naW4tc3F1YXJlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc0RDk7XHJcbiAgICB3aWR0aDogMTAwcHg7XHJcbiAgICBoZWlnaHQ6IDEwMHB4O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4gICIsIi5uZXctdXNlci1hbGVydCB7XG4gIHBhZGRpbmctdG9wOiAyLjVyZW07XG59XG5cbi5sb2dpbl9ib2R5IHtcbiAgLypiYWNrZ3JvdW5kOiB1cmwoJ0ltYWdlcy9Mb2dpblBhZ2UvYm90dG9tLUJsYWNrLmdpZicpIHJlcGVhdCBzY3JvbGwgMCAwICMxQjFCMUI7Ki9cbiAgY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgd2lkdGg6IDMwMHB4O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xufVxuXG4ubG9naW5fbWFpbl9iZyB7XG4gIG1hcmdpbjogMCAwIDAgLTE2MHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDAgIzA1MDUwNTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA5OTtcbn1cblxuLmxvZ2luX2xvZ28ge1xuICBwYWRkaW5nLXRvcDogMTQwcHg7XG4gIGhlaWdodDogMTIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxvZ2luX3R4dGJveCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgI0VCRUJFQjtcbiAgYm9yZGVyOiAycHggc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI0UwRTBFMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDRweCA0cHggNHB4O1xuICBjb2xvcjogIzU1NTU1NTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiA4cHg7XG4gIHdpZHRoOiAzMDBweDtcbiAgKm1hcmdpbjogMHB4IDhweCA4cHggMHB4O1xufVxuXG4ubG9naW5fbGJsIHtcbiAgY29sb3I6ICM1ODU4NTg7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5sb2dpbl9zaWduaW4ge1xuICB3aWR0aDogNDAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNjY3QTg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDRweCA0cHg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8qZmxvYXQ6IGxlZnQ7Ki9cbiAgZm9udC1zaXplOiAxNHB4O1xuICAvKmZvbnQtd2VpZ2h0OiBib2xkOyovXG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIHBhZGRpbmc6IDZweCAxMHB4IDZweCAxMHB4O1xuICAqcGFkZGluZzogNnB4IDBweCA2cHggMHB4O1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDAgIzA1MDUwNTtcbiAgbWFyZ2luLWxlZnQ6IDQ1cHg7XG59XG5cbi5sb2dpbl9sYmxGb3Jnb3RQd2Qge1xuICBjb2xvcjogIzQ5NDk0OTtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgaGVpZ2h0OiAyMnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5sb2dpbl9jaGtib3gge1xuICBjbGVhcjogbGVmdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICBwYWRkaW5nOiAwIDVweCAwIDA7XG4gIHdpZHRoOiAxOXB4O1xuICBtYXJnaW46IDJweDtcbiAgKm1hcmdpbi10b3A6IDBweDtcbn1cblxuLmxvZ2luX3JlbWVtYmVyIHtcbiAgY29sb3I6ICM0OTQ5NDk7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5idG4tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNjY3QTggIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweCA0cHggNHB4IDRweDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmxvZ2luLWNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxvZ2luLXNxdWFyZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc0RDk7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufSJdfQ== */\"","import { Subscription } from 'rxjs';\r\nimport { Component, OnInit,OnDestroy } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\nimport { Credentials } from '../../shared/models/credentials.interface';\r\nimport { UserService } from '../../shared/services/user.service';\r\nimport { debug } from 'util';\r\n\r\n@Component({\r\n selector: 'app-login-form',\r\n templateUrl: './login-form.component.html',\r\n styleUrls: ['./login-form.component.scss']\r\n})\r\n\r\nexport class LoginFormComponent implements OnInit, OnDestroy {\r\n\r\n private subscription: Subscription;\r\n\r\n pageTitle: string = \"Login\";\r\n brandNew: boolean;\r\n errors: string;\r\n isRequesting: boolean;\r\n submitted: boolean = false;\r\n credentials: Credentials = { email: '', password: '' };\r\n\r\n constructor(private userService: UserService, private router: Router,private activatedRoute: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n\r\n // subscribe to router event\r\n this.subscription = this.activatedRoute.queryParams.subscribe(\r\n (param: any) => {\r\n \r\n this.brandNew = param['brandNew']; \r\n this.credentials.email = param['email']; \r\n }); \r\n }\r\n\r\n ngOnDestroy() {\r\n // prevent memory leak by unsubscribing\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n login({ value, valid }: { value: Credentials, valid: boolean }) {\r\n this.submitted = true;\r\n this.isRequesting = true;\r\n this.errors='';\r\n if (valid) {\r\n\r\n this.userService.login(value.email, value.password)\r\n .subscribe(\r\n res => {\r\n \r\n localStorage.setItem('auth_token', res.auth_token);\r\n this.router.navigate(['/dashboard/home']); \r\n \r\n },\r\n error => this.errors = error\r\n \r\n , () => {\r\n this.isRequesting = false\r\n })\r\n ;\r\n }\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FjY291bnQvcmVnaXN0cmF0aW9uLWZvcm0vcmVnaXN0cmF0aW9uLWZvcm0uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Company } from '../../data-models/company';\r\n\r\nimport { UserRegistration } from '../../shared/models/user.registration.interface';\r\nimport { CompanyService } from '../../shared/services/company.service';\r\nimport { UserService } from '../../shared/services/user.service';\r\n\r\n@Component({\r\n selector: 'app-registration-form',\r\n templateUrl: './registration-form.component.html',\r\n styleUrls: ['./registration-form.component.scss']\r\n})\r\nexport class RegistrationFormComponent implements OnInit {\r\n\r\n errors: string;\r\n isRequesting: boolean;\r\n submitted: boolean = false;\r\n companies: Company[];\r\n\r\n selectedCompany: Company;\r\n constructor(private userService: UserService\r\n , private router: Router\r\n , private companyService: CompanyService) { }\r\n\r\n ngOnInit() {\r\n this.companyService.getCompanies().subscribe(\r\n companies => {\r\n\r\n this.companies = companies;\r\n this.selectedCompany = this.companies[0];\r\n\r\n });\r\n\r\n }\r\n\r\n registerUser({ value, valid }: { value: UserRegistration, valid: boolean }) {\r\n this.submitted = true;\r\n this.isRequesting = true;\r\n this.errors = '';\r\n if (valid) {\r\n this.userService.register(value.email, value.password, value.firstName, value.lastName, value.location,value.company, value.employeeNumber, value.cellphoneNumber, value.uID)\r\n .subscribe(\r\n\r\n result => {\r\n debugger;\r\n if (result) {\r\n this.router.navigate(['/login'], { queryParams: { brandNew: true, email: value.email } });\r\n }\r\n },\r\n errors => this.errors = errors,\r\n () => this.isRequesting = false);\r\n }\r\n }\r\n\r\n // Choose company using select dropdown\r\n changeCompany(companyId) {\r\n\r\n if (companyId > 0 && this.companies !== undefined) {\r\n this.selectedCompany = null;\r\n for (var i = 0; i < this.companies.length; i++) {\r\n if (this.companies[i].id == companyId) {\r\n this.selectedCompany = this.companies[i];\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n}\r\n","export default \".nav-link {\\n font-size: xx-large;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvQzpcXERldmVsb3BtZW50c1xcQ3VzdG9tZXJzXFxGYXJtQXBwXFxGYXJtQXBwLldlYi9zcmNcXGFwcFxcYXBwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxtQkFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm5hdi1saW5rIHtcbiAgZm9udC1zaXplOiB4eC1sYXJnZTtcbn1cbiIsIi5uYXYtbGluayB7XG4gIGZvbnQtc2l6ZTogeHgtbGFyZ2U7XG59Il19 */\"","import { Component,ElementRef, OnInit } from '@angular/core';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'Farm Management App';\r\n\r\n ngOnInit(): void {\r\n \r\n $.fn.dataTable.ext.errMode = 'none';\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpXhrBackend, HttpClientModule, HttpBackend, XhrFactory, HTTP_INTERCEPTORS } from '@angular/common/http'\r\nimport { routing } from './app.routing';\r\n\r\n/* App Root */\r\nimport { AppComponent } from './app.component';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { HomeComponent } from './home/home.component';\r\n\r\n/* Account Imports */\r\nimport { AccountModule } from './account/account.module';\r\n/* Dashboard Imports */\r\nimport { DashboardModule } from './dashboard/dashboard.module';\r\n\r\nimport { ConfigService } from './shared/utils/config.service';\r\nimport { FarmModule } from './dashboard/pages/farm/farm.module';\r\nimport { FieldModule } from './dashboard/pages/field/field.module';\r\nimport { HttpAuthenticationInterceptorHandler } from './shared/utils/interceptor-handler';\r\nimport { FarmService } from './dashboard/services/farm.service';\r\nimport { FieldService } from './dashboard/services/field.service';\r\nimport { RentalAgreementService } from './shared/services/rentalAgreement.service';\r\nimport { HighlightJsModule, HighlightJsService } from 'angular2-highlight-js';\r\nimport { TraceModule } from './dashboard/pages/trace/trace.module';\r\nimport { TraceService } from './dashboard/services/trace.service';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { MaterialModule } from './material.module';\r\nimport { PrimeNgModule } from './primeng.module';\r\nimport { ProductModule } from './dashboard/pages/product/product.module';\r\nimport { ProductService } from './dashboard/services/product.service';\r\nimport { ProductTypeService } from './shared/services/productType.service';\r\nimport { PlantService } from './dashboard/services/plant.service';\r\nimport { PlantVarietyService } from './dashboard/services/plant-variety.service';\r\nimport { TraceProductService } from './dashboard/services/trace-product.service';\r\nimport { EmployeeModule } from './dashboard/pages/employee/employee.module';\r\nimport { EmployeeService } from './dashboard/services/employee.service';\r\nimport { CompanyService } from './shared/services/company.service';\r\nimport { CompanyModule } from './dashboard/pages/company/company.module';\r\nimport { DatePipe } from '@angular/common';\r\nimport { EmployeeTripService } from './dashboard/services/employeetrip.service';\r\nimport { VehicleMakeService } from './dashboard/services/vehicle-make.service';\r\nimport { VehicleModelService } from './dashboard/services/vehicle-model.service';\r\nimport { VehicleService } from './dashboard/services/vehicle.service';\r\nimport { VehicleModule } from './dashboard/pages/vehicle/vehicle.module';\r\nimport { FileUploadServiceService } from './dashboard/services/file-upload-service.service';\r\nimport { EmployeeTripModule } from './dashboard/pages/employeetrip/employee-trip.module';\r\nimport { VehicleModelModule } from './dashboard/pages/vehicle-model/vehicle-model.module';\r\nimport { VehicleMakeModule } from './dashboard/pages/vehicle-make/vehicle-make.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n HomeComponent\r\n \r\n \r\n ],\r\n imports: [\r\n AccountModule,\r\n DashboardModule,\r\n BrowserModule,\r\n FormsModule,\r\n HttpClientModule,\r\n routing,\r\n HighlightJsModule,\r\n FarmModule,\r\n EmployeeModule,\r\n EmployeeTripModule,\r\n VehicleModule,\r\n VehicleMakeModule,\r\n VehicleModelModule,\r\n CompanyModule,\r\n FieldModule,\r\n TraceModule,\r\n ProductModule,\r\n BrowserAnimationsModule,\r\n MaterialModule,\r\n PrimeNgModule\r\n ],\r\n providers: [ConfigService, { provide: HTTP_INTERCEPTORS, useClass: HttpAuthenticationInterceptorHandler, multi: true }\r\n , FarmService\r\n , EmployeeService\r\n , EmployeeTripService\r\n , CompanyService\r\n , FieldService\r\n , TraceService\r\n , RentalAgreementService\r\n , HighlightJsService,\r\n , ProductService\r\n , ProductTypeService\r\n , PlantService\r\n , VehicleService\r\n , VehicleModelService\r\n , VehicleMakeService\r\n , TraceProductService\r\n , DatePipe\r\n , FileUploadServiceService\r\n , PlantVarietyService],\r\n\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { ModuleWithProviders } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { HomeComponent } from './home/home.component';\n\nconst appRoutes: Routes = [\n { path: '', component: HomeComponent } \n];\n\nexport const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);","// auth.guard.ts\r\nimport { Injectable } from '@angular/core';\r\nimport { Router, CanActivate } from '@angular/router';\r\nimport { UserService } from './shared/services/user.service';\r\nimport { debug } from 'util';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(private user: UserService,private router: Router) {}\r\n\r\n canActivate() {\r\n \r\n if(!this.user.isLoggedIn())\r\n {\r\n this.router.navigate(['/account/login']);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/modules/shared.module';\r\n\r\nimport { routing } from './dashboard.routing';\r\nimport { RootComponent } from './root/root.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { DashboardService } from './services/dashboard.service';\r\n\r\nimport { AuthGuard } from '../auth.guard';\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport { MaterialModule } from '../material.module';\r\nimport { DataTablesModule } from 'angular-datatables';\nimport { TripsComponent } from './reports/trips/trips.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n routing,\r\n SharedModule,\r\n MaterialModule,\r\n DataTablesModule\r\n ],\r\n declarations: [RootComponent, HomeComponent, SettingsComponent, TripsComponent],\r\n exports: [],\r\n providers: [AuthGuard, DashboardService]\r\n})\r\nexport class DashboardModule { }\r\n","import { ModuleWithProviders } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { RootComponent } from './root/root.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { SettingsComponent } from './settings/settings.component';\r\n\r\nimport { AuthGuard } from '../auth.guard';\r\nimport { TraceComponent } from './pages/trace/trace.component';\r\nimport { FieldComponent } from './pages/field/field.component';\r\nimport { FarmComponent } from './pages/farm/farm.component';\r\nimport { FarmEditComponent } from './pages/farm/farm.edit.component';\r\nimport { FarmDetailComponent } from './pages/farm/farm.detail.component';\r\nimport { FarmEditGuard } from './pages/farm/farm-edit.guard';\r\nimport { FieldEditComponent } from './pages/field/field-edit.component';\r\nimport { FieldDetailComponent } from './pages/field/field-detail.component';\r\nimport { TraceDetailComponent } from './pages/trace/trace-detail.component';\r\nimport { TraceEditComponent } from './pages/trace/trace-edit.component';\r\nimport { ProductComponent } from './pages/product/product.component';\r\nimport { ProductEditGuard } from './pages/product/product-edit.guard';\r\nimport { ProductEditComponent } from './pages/product/product-edit.component';\r\nimport { ProductDetailComponent } from './pages/product/product-detail.component';\r\nimport { VehicleEditComponent } from './pages/vehicle/vehicle-edit.component';\r\nimport { VehicleDetailComponent } from './pages/vehicle/vehicle-detail.component';\r\nimport { EmployeetripComponent } from './pages/employeetrip/employeetrip.component';\r\nimport { EmployeetripEditComponent } from './pages/employeetrip/employeetrip-edit.component';\r\nimport { EmployeetripDetailComponent } from './pages/employeetrip/employeetrip-detail.component';\r\nimport { EmployeeDetailComponent } from './pages/employee/employee-detail.component';\r\nimport { EmployeeEditComponent } from './pages/employee/employee-edit.component';\r\nimport { EmployeeComponent } from './pages/employee/employee.component';\r\nimport { EmployeeEditGuard } from './pages/employee/employee-edit.guard';\r\nimport { VehicleComponent } from './pages/vehicle/vehicle.component';\r\nimport { VehicleEditGuard } from './pages/vehicle/vehicle.guard';\r\nimport { EmployeetripGuard } from './pages/employeetrip/employeetrip.guard';\r\nimport { VehicleModelComponent } from './pages/vehicle-model/vehicle-model.component';\r\nimport { VehicleModelEditComponent } from './pages/vehicle-model/vehicle-model-edit.component';\r\nimport { VehicleModelDetailComponent } from './pages/vehicle-model/vehicle-model-detail.component';\r\nimport { VehicleModelEditGuard } from './pages/vehicle-model/vehicle-model-edit.guard';\r\nimport { VehicleMakeEditGuard } from './pages/vehicle-make/vehicle-make-edit.guard';\r\nimport { VehicleMakeEditComponent } from './pages/vehicle-make/vehicle-make-edit.component';\r\nimport { VehicleMakeDetailComponent } from './pages/vehicle-make/vehicle-make-detail.component';\r\nimport { VehicleMakeComponent } from './pages/vehicle-make/vehicle-make.component';\r\n\r\n\r\nexport const routing: ModuleWithProviders = RouterModule.forChild([\r\n {\r\n path: 'dashboard',\r\n component: RootComponent, canActivate: [AuthGuard],\r\n\r\n children: [\r\n { path: '', component: HomeComponent },\r\n { path: 'home', component: HomeComponent },\r\n { path: 'settings', component: SettingsComponent },\r\n { path: 'farm', component: FarmComponent },\r\n { path: 'farm/0/edit', component: FarmEditComponent },\r\n { path: 'farm/:id', component: FarmDetailComponent },\r\n {\r\n path: 'farm/:id/edit',\r\n canDeactivate: [FarmEditGuard],\r\n component: FarmEditComponent\r\n },\r\n { path: 'field', component: FieldComponent },\r\n { path: 'fields/:id', component: FieldDetailComponent },\r\n { path: 'fields/:id/edit', component: FieldEditComponent },\r\n { path: 'trace', component: TraceComponent },\r\n { path: 'traces/:id', component: TraceDetailComponent },\r\n { path: 'traces/:id/edit', component: TraceEditComponent },\r\n { path: 'products', component: ProductComponent },\r\n { path: 'products/0/edit', component: ProductEditComponent },\r\n { path: 'products/:id', component: ProductDetailComponent },\r\n {\r\n path: 'products/:id/edit',\r\n canDeactivate: [ProductEditGuard],\r\n component: ProductEditComponent\r\n },\r\n { path: 'employee', component: EmployeeComponent },\r\n { path: 'employee/0/edit', component: EmployeeEditComponent },\r\n { path: 'employee/:id', component: EmployeeDetailComponent },\r\n {\r\n path: 'employee/:id/edit',\r\n canDeactivate: [EmployeeEditGuard],\r\n component: EmployeeEditComponent\r\n },\r\n { path: 'employeetrip', component: EmployeetripComponent },\r\n { path: 'employeetrip/0/edit', component: EmployeetripEditComponent },\r\n { path: 'employeetrip/:id', component: EmployeetripDetailComponent },\r\n {\r\n path: 'employeetrip/:id/edit',\r\n canDeactivate: [EmployeetripGuard],\r\n component: EmployeetripEditComponent\r\n },\r\n { path: 'vehicle', component: VehicleComponent },\r\n { path: 'vehicle/0/edit', component: VehicleEditComponent },\r\n { path: 'vehicle/:id', component: VehicleDetailComponent },\r\n {\r\n path: 'vehicle/:id/edit',\r\n canDeactivate: [VehicleEditGuard],\r\n component: VehicleEditComponent\r\n },\r\n { path: 'vehicleMake', component: VehicleMakeComponent },\r\n { path: 'vehicleMake/0/edit', component: VehicleMakeEditComponent },\r\n { path: 'vehicleMake/:id', component: VehicleMakeDetailComponent },\r\n {\r\n path: 'vehicleMake/:id/edit',\r\n canDeactivate: [VehicleMakeEditGuard],\r\n component: VehicleMakeEditComponent\r\n },\r\n { path: 'vehicleModel', component: VehicleModelComponent },\r\n { path: 'vehicleModel/0/edit', component: VehicleModelEditComponent },\r\n { path: 'vehicleModel/:id', component: VehicleModelDetailComponent },\r\n {\r\n path: 'vehicleModel/:id/edit',\r\n canDeactivate: [VehicleModelEditGuard],\r\n component: VehicleModelEditComponent\r\n },\r\n ]\r\n }\r\n]);\r\n\r\n","export default \"card-body {\\n overflow-y: hidden;\\n overflow-x: hidden;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZGFzaGJvYXJkL2hvbWUvQzpcXERldmVsb3BtZW50c1xcQ3VzdG9tZXJzXFxGYXJtQXBwXFxGYXJtQXBwLldlYi9zcmNcXGFwcFxcZGFzaGJvYXJkXFxob21lXFxob21lLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9kYXNoYm9hcmQvaG9tZS9ob21lLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksa0JBQUE7RUFDQSxrQkFBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvZGFzaGJvYXJkL2hvbWUvaG9tZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImNhcmQtYm9keSB7XHJcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47IC8vIGhpZGUgdmVydGljYWxcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgLy8gaGlkZSBob3Jpem9udGFsXHJcbn1cclxuIiwiY2FyZC1ib2R5IHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { HomeDetails } from '../models/home.details.interface';\r\nimport { DashboardService } from '../services/dashboard.service';\r\nimport { Home } from 'src/app/data-models/home';\r\nimport { EmployeeTrip } from '../../data-models/employeetrip';\r\nimport { EmployeeTripService } from '../services/employeetrip.service';\r\nimport { ConfigService } from '../../shared/utils/config.service';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\r\n homeDetails: Home;\r\n _listFilter = '';\r\n get listFilter(): string {\r\n return this._listFilter;\r\n }\r\n set listFilter(value: string) {\r\n this._listFilter = value;\r\n this.filteredEmployeeTrips = this.listFilter ? this.performFilter(this.listFilter) : this.employeeTrips;\r\n }\r\n\r\n filteredEmployeeTrips: EmployeeTrip[] = [];\r\n employeeTrips: EmployeeTrip[] = [];\r\n errorMessage = '';\r\n url: string;\r\n dtOptions: any= {};\r\n\r\n constructor(private dashboardService: DashboardService,\r\n private employeeTripService: EmployeeTripService,\r\n private configService: ConfigService ) {\r\n this.url = configService.getBaseURI();\r\n }\r\n performFilter(filterBy: string): EmployeeTrip[] {\r\n\r\n filterBy = filterBy.toLocaleLowerCase();\r\n return this.employeeTrips.filter((employeeTrip: EmployeeTrip) =>\r\n employeeTrip.employeeName.toLocaleLowerCase().indexOf(filterBy) !== -1\r\n ||\r\n employeeTrip.vehicleName.toLocaleLowerCase().indexOf(filterBy) !== -1 ||\r\n employeeTrip.productName.toLocaleLowerCase().indexOf(filterBy) !== -1\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n pageLength: 20,\r\n processing: true,\r\n dom: 'Bfrtip',\r\n buttons: [\r\n 'copy', 'csv', 'excel', 'print'\r\n ]\r\n };\r\n this.employeeTripService.getEmployeeTrips().subscribe({\r\n next: item => {\r\n\r\n this.employeeTrips = item;\r\n this.filteredEmployeeTrips = this.employeeTrips;\r\n\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n openImage(link: any) {\r\n\r\n\r\n const myWindow = window.open(\r\n this.url + \"/\" + link,\r\n '_blank',\r\n 'width=900, height=240'\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ]\n})\nexport class CompanyModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9lbXBsb3llZS9lbXBsb3llZS1kZXRhaWwuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Field } from '../../../data-models/field';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { EmployeeService } from '../../services/employee.service';\r\nimport { Employee } from '../../../data-models/employee';\r\nimport { Company } from '../../../data-models/company';\r\nimport { CompanyService } from '../../../shared/services/company.service';\r\nimport { Gender } from '../../../data-models/gender';\r\n\r\n@Component({\r\n selector: 'app-employee-detail',\r\n templateUrl: './employee-detail.component.html',\r\n styleUrls: ['./employee-detail.component.css']\r\n})\r\nexport class EmployeeDetailComponent implements OnInit {\r\n pageTitle = 'Employee Detail';\r\n errorMessage = '';\r\n employee: Employee | undefined;\r\n company: Company | undefined;\r\n constructor(private route: ActivatedRoute,\r\n private router: Router,\r\n private employeeService: EmployeeService,\r\n private companyService: CompanyService) {\r\n }\r\n\r\n ngOnInit() {\r\n const param = this.route.snapshot.paramMap.get('id');\r\n if (param) {\r\n const id = +param;\r\n this.getEmployee(id);\r\n\r\n }\r\n }\r\n\r\n getEmployee(id: number) {\r\n this.employeeService.getEmployee(id).subscribe({\r\n next: model => {\r\n debugger;\r\n this.employee = model;\r\n this.employee.gender = Gender[model.gender];\r\n this.getCompany(model.companyId);\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getCompany(id: number) {\r\n this.companyService.getCompany(id).subscribe({\r\n next: company => {\r\n this.company = this.company;\r\n this.employee.companyName = company.name;\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n onBack(): void {\r\n this.router.navigate(['/dashboard/employee']);\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9lbXBsb3llZS9lbXBsb3llZS1lZGl0LmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit, ViewChildren, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';\r\nimport { FormControlName, FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { Employee } from '../../../data-models/employee';\r\nimport { Subscription, Observable, fromEvent, merge } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { EmployeeService } from '../../services/employee.service';\r\nimport { GenericValidator } from '../../../shared/generic-validator';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { debug } from 'util';\r\nimport { Company } from '../../../data-models/company';\r\nimport { CompanyService } from '../../../shared/services/company.service';\r\nimport { Gender } from '../../../data-models/gender';\r\nimport { DatePipe, KeyValue } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-employee-edit',\r\n templateUrl: './employee-edit.component.html',\r\n styleUrls: ['./employee-edit.component.css']\r\n})\r\nexport class EmployeeEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n pageTitle = 'Employee Edit';\r\n errorMessage: string;\r\n employeeForm: FormGroup;\r\n companies: Company[];\r\n employee: Employee;\r\n genderTypes: Gender;\r\n selectedCompany: Company;\r\n genderId: FormControl;\r\n private sub: Subscription;\r\n\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n private validationMessages: { [key: string]: { [key: string]: string } };\r\n private genericValidator: GenericValidator;\r\n\r\n get tags(): FormArray {\r\n return this.employeeForm.get('tags') as FormArray;\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private employeeService: EmployeeService,\r\n private companyService: CompanyService,\r\n public datepipe: DatePipe\r\n ) {\r\n\r\n // Defines all of the validation messages for the form.\r\n // These could instead be retrieved from a file or database.\r\n this.validationMessages = {\r\n firstName: {\r\n required: 'Employee first name is required.',\r\n minlength: 'Employee first name must be at least three characters.',\r\n maxlength: 'Employee first name cannot exceed 100 characters.'\r\n },\r\n surname: {\r\n required: 'Employee surname is required.',\r\n minlength: 'Employee surname must be at least three characters.',\r\n maxlength: 'Employee surname cannot exceed 100 characters.'\r\n },\r\n employeeNumber: {\r\n required: 'Employee number is required.'\r\n },\r\n companyId: {\r\n required: 'Company must be selected.'\r\n },\r\n gender: {\r\n required: 'At least one gender must be selected.'\r\n }\r\n \r\n };\r\n\r\n // Define an instance of the validator for use with this form,\r\n // passing in this form's set of validation messages.\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.employeeForm = this.fb.group({\r\n firstName: ['', [Validators.required,\r\n Validators.minLength(3),\r\n Validators.maxLength(100)]],\r\n surname: ['', [Validators.required,\r\n Validators.minLength(3),\r\n Validators.maxLength(100)]],\r\n employeeNumber: ['', Validators.required],\r\n companyId: ['', Validators.required],\r\n companyName: '',\r\n jobTitle: '',\r\n dateOfBirth: '',\r\n gender: new FormControl('', Validators.required),\r\n id: 0\r\n });\r\n this.genderId = this.employeeForm.controls.gender as FormControl;\r\n\r\n // Read the employee Id from the route parameter\r\n this.sub = this.route.paramMap.subscribe(\r\n params => {\r\n // Get a List of Companies\r\n this.companyService.getCompanies().subscribe(\r\n companies => {\r\n\r\n this.companies = companies;\r\n this.selectedCompany = this.companies[0];\r\n\r\n });\r\n\r\n const id = +params.get('id');\r\n this.getEmployee(id);\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Watch for the blur event from any input element on the form.\r\n // This is required because the valueChanges does not provide notification on blur\r\n const controlBlurs: Observable[] = this.formInputElements\r\n .map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n\r\n // Merge the blur event observable with the valueChanges observable\r\n // so we only need to subscribe once.\r\n merge(this.employeeForm.valueChanges, ...controlBlurs).pipe(\r\n debounceTime(800)\r\n ).subscribe(value => {\r\n this.displayMessage = this.genericValidator.processMessages(this.employeeForm);\r\n });\r\n }\r\n\r\n\r\n getEmployee(id: number): void {\r\n this.employeeService.getEmployee(id)\r\n .subscribe({\r\n next: (employee: Employee) => {\r\n this.displayEmployee(employee);\r\n if (employee.companyId > 0) {\r\n this.getCompanyService(employee.companyId);\r\n this.changeCompany(employee.companyId);\r\n\r\n }\r\n\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getCompanyService(id: number) {\r\n if (id > 0) {\r\n\r\n this.companyService.getCompany(id)\r\n .subscribe({\r\n next: (company: Company) => this.selectedCompany = company,\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n\r\n // Choose company using select dropdown\r\n changeCompany(companyId) {\r\n \r\n if (companyId > 0 && this.companies !== undefined) {\r\n this.selectedCompany = null;\r\n for (var i = 0; i < this.companies.length; i++) {\r\n if (this.companies[i].id == companyId) {\r\n this.selectedCompany = this.companies[i];\r\n }\r\n }\r\n\r\n if (this.employeeForm !== null) {\r\n this.employeeForm.get(\"companyId\").setValue(companyId, {\r\n onlySelf: true\r\n });\r\n //this.employeeForm.get(\"company\").setValue(this.selectedCompany.name, {\r\n // onlySelf: true\r\n //});\r\n }\r\n }\r\n\r\n }\r\n\r\n displayEmployee(employee: Employee): void {\r\n if (this.employeeForm) {\r\n this.employeeForm.reset();\r\n }\r\n this.employee = employee;\r\n\r\n if (this.employee.id === 0) {\r\n this.pageTitle = 'Add Employee';\r\n } else {\r\n this.pageTitle = `Edit Employee: ${this.employee.firstName} ${this.employee.surname}`;\r\n }\r\n // Update the data on the form\r\n this.employeeForm.patchValue({\r\n firstName: this.employee.firstName,\r\n employeeNumber: this.employee.employeeNumber,\r\n surname: this.employee.surname,\r\n companyId: this.employee.companyId,\r\n companyName: this.employee.companyName,\r\n jobTitle: this.employee.jobTitle,\r\n gender: this.employee.gender,\r\n dateOfBirth: this.datepipe.transform(this.employee.dateOfBirth, 'yyyy-MM-dd'),\r\n id: this.employee.id\r\n });\r\n \r\n }\r\n\r\n deleteEmployee(): void {\r\n if (this.employee.id === 0) {\r\n // Don't delete, it was never saved.\r\n this.onSaveComplete();\r\n } else {\r\n if (confirm(`Really delete the employee: ${this.employee.firstName} ${this.employee.surname}?`)) {\r\n this.employeeService.deleteEmployee(this.employee.id)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n }\r\n\r\n saveEmployee(): void {\r\n debugger;\r\n if (this.employeeForm.valid) {\r\n if (this.employeeForm.dirty) {\r\n const p = { ...this.employee, ...this.employeeForm.value };\r\n\r\n if (p.id === 0 || p.id === null) {\r\n if (p.companyId === null) { p.companyId = 1 }\r\n p.gender = p.genderId;\r\n this.employeeService.createEmployee(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n } else {\r\n if (p.companyId === undefined) {\r\n p.companyId = this.selectedCompany.id;\r\n p.companyName = this.selectedCompany.name;\r\n }\r\n this.employeeService.updateEmployee(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n } else {\r\n this.onSaveComplete();\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n\r\n onSaveComplete(): void {\r\n // Reset the form to clear the flags\r\n this.employeeForm.reset();\r\n this.router.navigate(['/dashboard/employee']);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { EmployeeEditComponent } from './employee-edit.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeEditGuard implements CanDeactivate {\r\n canDeactivate(component: EmployeeEditComponent): Observable | Promise | boolean {\r\n if (component.employeeForm.dirty) {\r\n const firstName = component.employeeForm.get('firstName').value || 'New employee';\r\n return confirm(`Navigate away and lose all changes to ${firstName}?`);\r\n }\r\n return true;\r\n }\r\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9lbXBsb3llZS9lbXBsb3llZS5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Employee } from '../../../data-models/employee';\r\nimport { EmployeeService } from '../../services/employee.service';\r\n\r\n@Component({\r\n selector: 'app-employee',\r\n templateUrl: './employee.component.html',\r\n styleUrls: ['./employee.component.css']\r\n})\r\nexport class EmployeeComponent implements OnInit {\r\n\r\n pageTitle = 'Employee List';\r\n imageWidth = 50;\r\n imageMargin = 2;\r\n showImage = false;\r\n errorMessage = '';\r\n\r\n _listFilter = '';\r\n get listFilter(): string {\r\n return this._listFilter;\r\n }\r\n set listFilter(value: string) {\r\n this._listFilter = value;\r\n this.filteredEmployees = this.listFilter ? this.performFilter(this.listFilter) : this.employees;\r\n }\r\n\r\n filteredEmployees: Employee[] = [];\r\n employees: Employee[] = [];\r\n //dtOptions: DataTables.Settings = {};\r\n dtOptions: any = {};\r\n constructor(private employeeService: EmployeeService) { }\r\n\r\n performFilter(filterBy: string): Employee[] {\r\n\r\n filterBy = filterBy.toLocaleLowerCase();\r\n return this.employees.filter((employee: Employee) => \r\n employee.firstName.toLocaleLowerCase().indexOf(filterBy) !== -1 \r\n ||\r\n employee.surname.toLocaleLowerCase().indexOf(filterBy) !== -1 ||\r\n employee.employeeNumber.toLocaleLowerCase().indexOf(filterBy) !== -1\r\n );\r\n }\r\n\r\n toggleImage(): void {\r\n this.showImage = !this.showImage;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10,\r\n processing: true ,\r\n dom: 'Bfrtip',\r\n buttons: [\r\n 'copy', 'csv', 'excel', 'print'\r\n ]\r\n };\r\n\r\n \r\n\r\n this.employeeService.getEmployees().subscribe({\r\n next: item => {\r\n \r\n this.employees = item;\r\n this.filteredEmployees = this.employees;\r\n \r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\n\r\n// Imports for loading & configuring the in-memory web api\r\nimport { InMemoryWebApiModule } from 'angular-in-memory-web-api';\r\nimport { SharedModule } from '../../../shared/modules/shared.module';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { DataTablesModule } from 'angular-datatables';\r\nimport { EmployeeDetailComponent } from './employee-detail.component';\r\nimport { EmployeeComponent } from './employee.component';\r\nimport { EmployeeEditComponent } from './employee-edit.component';\r\n\r\nimport { EmployeeEditGuard } from './employee-edit.guard';\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n SharedModule,\r\n ReactiveFormsModule,\r\n DataTablesModule,\r\n RouterModule.forChild([\r\n { path: 'employee', component: EmployeeComponent },\r\n { path: 'employee/:id', component: EmployeeDetailComponent },\r\n {\r\n path: 'employee/:id/edit',\r\n canDeactivate: [EmployeeEditGuard],\r\n component: EmployeeEditComponent\r\n }\r\n ])\r\n ],\r\n declarations: [\r\n EmployeeComponent,\r\n EmployeeDetailComponent,\r\n EmployeeEditComponent\r\n ]\r\n})\r\nexport class EmployeeModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\n\r\n// Imports for loading & configuring the in-memory web api\r\nimport { InMemoryWebApiModule } from 'angular-in-memory-web-api';\r\nimport { SharedModule } from '../../../shared/modules/shared.module';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { DataTablesModule } from 'angular-datatables';\r\nimport { EmployeetripEditComponent } from './employeetrip-edit.component';\r\nimport { EmployeetripDetailComponent } from './employeetrip-detail.component';\r\nimport { EmployeetripComponent } from './employeetrip.component';\r\nimport { EmployeetripGuard } from './employeetrip.guard';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n SharedModule,\r\n ReactiveFormsModule,\r\n DataTablesModule,\r\n RouterModule.forChild([\r\n { path: 'employeetrip', component: EmployeetripComponent },\r\n { path: 'employeetrip/:id', component: EmployeetripDetailComponent },\r\n {\r\n path: 'employeetrip/:id/edit',\r\n canDeactivate: [EmployeetripGuard],\r\n component: EmployeetripEditComponent\r\n }\r\n ])\r\n ],\r\n declarations: [\r\n EmployeetripComponent,\r\n EmployeetripDetailComponent,\r\n EmployeetripEditComponent\r\n ]\r\n})\r\nexport class EmployeeTripModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9lbXBsb3llZXRyaXAvZW1wbG95ZWV0cmlwLWRldGFpbC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Field } from '../../../data-models/field';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { EmployeeTrip } from '../../../data-models/employeetrip';\r\nimport { EmployeeTripService } from '../../services/employeetrip.service';\r\nimport { ConfigService } from '../../../shared/utils/config.service';\r\n\r\n@Component({\r\n selector: 'app-employeetrip-detail',\r\n templateUrl: './employeetrip-detail.component.html',\r\n styleUrls: ['./employeetrip-detail.component.css']\r\n})\r\nexport class EmployeetripDetailComponent implements OnInit {\r\n pageTitle = 'Employee Detail';\r\n errorMessage = '';\r\n employeeTrip: EmployeeTrip | undefined;\r\n url: string;\r\n constructor(private route: ActivatedRoute,\r\n private router: Router,\r\n private employeeTripService: EmployeeTripService ,\r\n private configService: ConfigService) {\r\n this.url = configService.getBaseURI();\r\n }\r\n\r\n ngOnInit() {\r\n const param = this.route.snapshot.paramMap.get('id');\r\n if (param) {\r\n const id = +param;\r\n this.getEmployeeTrip(id);\r\n\r\n }\r\n }\r\n\r\n getEmployeeTrip(id: number) {\r\n this.employeeTripService.getEmployeeTrip(id).subscribe({\r\n next: model => {\r\n \r\n this.employeeTrip = model;\r\n this.employeeTrip.value = (+model.price * +model.quantity).toString();\r\n \r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n onBack(): void {\r\n this.router.navigate(['/dashboard/employeetrip']);\r\n }\r\n openImage(link: any) {\r\n \r\n\r\n const myWindow = window.open(\r\n this.url +\"/\" + link,\r\n '_blank',\r\n 'width=900, height=240'\r\n );\r\n }\r\n\r\n}\r\n","export default \".upload {\\r\\n font-weight: bold;\\r\\n color: #28a745;\\r\\n margin-left: 15px;\\r\\n line-height: 36px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZGFzaGJvYXJkL3BhZ2VzL2VtcGxveWVldHJpcC9lbXBsb3llZXRyaXAtZWRpdC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsaUJBQWlCO0FBQ3JCIiwiZmlsZSI6InNyYy9hcHAvZGFzaGJvYXJkL3BhZ2VzL2VtcGxveWVldHJpcC9lbXBsb3llZXRyaXAtZWRpdC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnVwbG9hZCB7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIGNvbG9yOiAjMjhhNzQ1O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMzZweDtcclxufVxyXG4iXX0= */\"","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, ViewChildren, AfterViewInit, OnDestroy, ElementRef, EventEmitter } from '@angular/core';\r\nimport { FormControlName, FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { fromEvent, merge, Observable, Subscription } from 'rxjs';\r\nimport { Vehicle } from '../../../data-models/vehicle';\r\nimport { GenericValidator } from '../../../shared/generic-validator';\r\nimport { VehicleService } from '../../services/vehicle.service';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { Employee } from '../../../data-models/employee';\r\nimport { Product } from '../../../data-models/product';\r\nimport { EmployeeService } from '../../services/employee.service';\r\nimport { ProductService } from '../../services/product.service';\r\nimport { EmployeeTrip } from '../../../data-models/employeetrip';\r\nimport { EmployeeTripService } from '../../services/employeetrip.service';\r\nimport { FileUploadServiceService } from '../../services/file-upload-service.service';\r\nimport { Output } from '@angular/core';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { debug } from 'util';\r\nimport { ValidateOdometerReadingValidator } from '../../../shared/modules/validate-odometero-readingdirective';\r\n\r\n@Component({\r\n selector: 'app-employeetrip-edit',\r\n templateUrl: './employeetrip-edit.component.html',\r\n styleUrls: ['./employeetrip-edit.component.css']\r\n})\r\nexport class EmployeetripEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n pageTitle = 'Trip Edit';\r\n shortLink: string = \"\";\r\n loading: boolean = false; // Flag variable\r\n errorMessage: string;\r\n messageInvoice: string;\r\n messageOdometer: string;\r\n employeeTripForm: FormGroup;\r\n employees: Employee[];\r\n products: Product[];\r\n vehicles: Vehicle[];\r\n employeeTrip: EmployeeTrip;\r\n selectedVehicle: Vehicle;\r\n selectedEmployee: Employee;\r\n selectedProduct: Product;\r\n private sub: Subscription;\r\n productType: number = 1008; //Fuel\r\n public response: { dbPath: '' };\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n private validationMessages: { [key: string]: { [key: string]: string } };\r\n private genericValidator: GenericValidator;\r\n public progress: number;\r\n previousOdoReading: string;\r\n @Output() public onUploadFinished = new EventEmitter();\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private employeeTripService: EmployeeTripService,\r\n private vehicleService: VehicleService,\r\n private productService: ProductService,\r\n private employeeService: EmployeeService,\r\n public datepipe: DatePipe,\r\n private fileUploadService: FileUploadServiceService\r\n ) {\r\n\r\n // Defines all of the validation messages for the form.\r\n // These could instead be retrieved from a file or database.\r\n this.validationMessages = {\r\n\r\n employeeId: {\r\n required: 'Employee is required.'\r\n },\r\n\r\n vehicleId: {\r\n required: 'Vehicle is required.'\r\n },\r\n price: {\r\n required: 'Price/Litre is required.'\r\n },\r\n quantity: {\r\n required: 'Litre pumped is required.'\r\n },\r\n transactionDate: {\r\n required: 'Transaction Date is required.'\r\n },\r\n distanceTravelled: {\r\n required: 'distnace travelled is required.'\r\n },\r\n productId: {\r\n required: 'product purchased is required.'\r\n },\r\n odometerUrl: {\r\n required: 'Odometer reading picture is required.'\r\n }\r\n };\r\n\r\n // Define an instance of the validator for use with this form,\r\n // passing in this form's set of validation messages.\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.employeeTripForm = this.fb.group({\r\n employeeId: ['', Validators.required],\r\n vehicleId: ['', Validators.required],\r\n productId: ['', Validators.required],\r\n quantity: ['', Validators.required],\r\n price: ['', Validators.required],\r\n invoiceUrl: '',\r\n odometerUrl: '',\r\n previousReading: '',\r\n distanceTravelled: ['', Validators.required],\r\n transactionDate: ['', Validators.required],\r\n id: 0,\r\n employeeName: '',\r\n vehicleName: '',\r\n registrationNumber: '',\r\n productName: '',\r\n value: '',\r\n kmTravelled: ''\r\n }, { validators: ValidateOdometerReadingValidator });\r\n \r\n // Read the employee Id from the route parameter\r\n this.sub = this.route.paramMap.subscribe(\r\n params => {\r\n // Get a List of Companies\r\n \r\n this.vehicleService.getVehicles().subscribe(\r\n models => {\r\n\r\n this.vehicles = models;\r\n this.selectedVehicle = this.vehicles[0];\r\n\r\n });\r\n this.employeeService.getEmployees().subscribe(\r\n models => {\r\n\r\n this.employees = models;\r\n this.selectedEmployee = this.employees[0];\r\n\r\n });\r\n this.productService.getProductsByProductType(this.productType).subscribe(\r\n models => {\r\n\r\n this.products = models;\r\n this.selectedProduct = this.products[0];\r\n\r\n });\r\n\r\n const id = +params.get('id');\r\n \r\n this.getEmployeeTrip(id);\r\n }\r\n );\r\n \r\n\r\n }\r\n get distanceTravelled() { return this.employeeTripForm.get('distanceTravelled'); }\r\n \r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Watch for the blur event from any input element on the form.\r\n // This is required because the valueChanges does not provide notification on blur\r\n const controlBlurs: Observable[] = this.formInputElements\r\n .map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n\r\n // Merge the blur event observable with the valueChanges observable\r\n // so we only need to subscribe once.\r\n merge(this.employeeTripForm.valueChanges, ...controlBlurs).pipe(\r\n debounceTime(800)\r\n ).subscribe(value => {\r\n this.displayMessage = this.genericValidator.processMessages(this.employeeTripForm);\r\n });\r\n }\r\n\r\n\r\n getEmployeeTrip(id: number): void {\r\n this.employeeTripService.getEmployeeTrip(id)\r\n .subscribe({\r\n next: (employeeTrip: EmployeeTrip) => {\r\n\r\n this.displayEmployeeTrip(employeeTrip);\r\n debugger;\r\n if (+employeeTrip.employeeId > 0) {\r\n this.getEmployee(+employeeTrip.employeeId);\r\n this.getVehicle(+employeeTrip.vehicleId);\r\n this.getProduct(+employeeTrip.productId);\r\n\r\n\r\n }\r\n\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n\r\n getEmployee(id: number) {\r\n if (id > 0) {\r\n\r\n this.employeeService.getEmployee(id)\r\n .subscribe({\r\n next: (employee: Employee) => this.selectedEmployee = employee,\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n getVehicle(id: number) {\r\n if (id > 0) {\r\n\r\n this.vehicleService.getVehicle(id)\r\n .subscribe({\r\n next: (vehicle: Vehicle) => this.selectedVehicle = vehicle,\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n getProduct(id: number) {\r\n if (id > 0) {\r\n\r\n this.productService.getProduct(id)\r\n .subscribe({\r\n\r\n next: (product: Product) => { this.selectedProduct = product; },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n displayEmployeeTrip(employeeTrip: EmployeeTrip): void {\r\n if (this.employeeTripForm) {\r\n this.employeeTripForm.reset();\r\n }\r\n this.employeeTrip = employeeTrip;\r\n\r\n if (this.employeeTrip.id === 0) {\r\n this.pageTitle = 'Add Trip';\r\n } else {\r\n this.pageTitle = `Edit Trip: ${this.employeeTrip.employeeName} ${this.employeeTrip.vehicleName}`;\r\n }\r\n \r\n //this.previousOdoReading = this.selectedVehicle === undefined? \"0\" : this.selectedVehicle.ordometerReading;\r\n // Update the data on the form\r\n \r\n this.employeeTripForm.patchValue({\r\n id: this.employeeTrip.id,\r\n vehileName: this.employeeTrip.vehicleName,\r\n distanceTravelled: this.employeeTrip.distanceTravelled,\r\n employeeName: this.employeeTrip.employeeName,\r\n productName: this.employeeTrip.productName,\r\n productId: this.employeeTrip.productId,\r\n employeeId: this.employeeTrip.employeeId,\r\n vehicleId: this.employeeTrip.vehicleId,\r\n vehicleRegistrationNumber: this.employeeTrip.vehicleRegistrationNumber,\r\n price: this.employeeTrip.price,\r\n quantity: this.employeeTrip.quantity,\r\n transactionDate: this.datepipe.transform(this.employeeTrip.transactionDate, 'yyyy-MM-dd'),\r\n invoiceUrl: this.employeeTrip.invoiceUrl,\r\n odometerUrl: this.employeeTrip.odometerUrl,\r\n previousReading: this.previousOdoReading,\r\n companyName: this.employeeTrip.companyName\r\n \r\n \r\n });\r\n this.messageInvoice = this.employeeTrip.invoiceUrl;\r\n this.messageOdometer = this.employeeTrip.odometerUrl;\r\n }\r\n\r\n deleteEmployeeTrip(): void {\r\n if (this.employeeTrip.id === 0) {\r\n // Don't delete, it was never saved.\r\n this.onSaveComplete();\r\n } else {\r\n if (confirm(`Really delete the trip: ${this.employeeTrip.employeeName} ${this.employeeTrip.vehicleName}?`)) {\r\n this.employeeTripService.deleteEmployeeTrip(this.employeeTrip.id)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n }\r\n\r\n saveEmployeeTrip(): void {\r\n \r\n if (this.employeeTripForm.valid) {\r\n if (this.employeeTripForm.dirty) {\r\n const p = { ...this.employeeTrip, ...this.employeeTripForm.value };\r\n\r\n this.loading = !this.loading;\r\n console.log(p.invoiceUrl);\r\n if (p.id === 0 || p.id === null) {\r\n \r\n this.employeeTripService.createEmployeeTrip(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n } else {\r\n\r\n if (p.employeeId === undefined) {\r\n p.employeeId = this.selectedEmployee.id;\r\n p.employeeName = this.selectedEmployee.firstName + \" \" + this.selectedEmployee.surname;\r\n }\r\n if (p.invoiceUrl === undefined) { p.invoiceUrl = this.messageInvoice; }\r\n if (p.odometerUrl === undefined) { p.odometerUrl = this.messageOdometer; }\r\n this.employeeTripService.updateEmployeeTrip(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n } else {\r\n this.onSaveComplete();\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n\r\n onSaveComplete(): void {\r\n\r\n // Reset the form to clear the flags\r\n\r\n this.employeeTripForm.reset();\r\n this.router.navigate(['/dashboard/employeetrip']);\r\n }\r\n // On file Select\r\n onInvoiceChange(event) {\r\n \r\n if (this.employeeTripForm !== null) {\r\n \r\n \r\n //this.fileUploadService.uploadFile(this.employeeTripForm.get(\"invoiceUrl\").value);\r\n this.fileUploadService.upload(event.target.files[0]).subscribe(\r\n event => {\r\n\r\n if (event.type === HttpEventType.UploadProgress)\r\n console.log(Math.round(100 * event.loaded / event.total));\r\n else if (event.type === HttpEventType.Response) {\r\n console.log('Upload success.');\r\n this.onUploadFinished.emit(event.body);\r\n this.messageInvoice = \"File Uploaded\";\r\n this.displayMessage.invoiceUrl == \"File Uploaded\";\r\n this.employeeTripForm.get(\"invoiceUrl\").setValue(event.body.dbPath);\r\n }\r\n });\r\n this.employeeTripForm.get(\"invoiceUrl\").setValue(event.target.files[0], {\r\n onlySelf: true\r\n });\r\n }\r\n\r\n }\r\n onOdometerChange(event) {\r\n if (this.employeeTripForm !== null) {\r\n \r\n this.fileUploadService.upload(event.target.files[0]).subscribe(\r\n event => {\r\n\r\n if (event.type === HttpEventType.UploadProgress)\r\n console.log(Math.round(100 * event.loaded / event.total));\r\n else if (event.type === HttpEventType.Response) {\r\n console.log('Upload success.');\r\n this.onUploadFinished.emit(event.body);\r\n this.messageOdometer = \"File Uploaded\";\r\n this.displayMessage.odometerUrl == \"File Uploaded\";\r\n this.employeeTripForm.get(\"odometerUrl\").setValue(event.body.dbPath);\r\n }\r\n });\r\n\r\n this.employeeTripForm.get(\"odometerUrl\").setValue(event.target.files[0], {\r\n onlySelf: true\r\n });\r\n\r\n }\r\n\r\n }\r\n changeVehicle(id: number) {\r\n if (id > 0 && this.vehicles !== undefined) {\r\n this.selectedVehicle = null;\r\n for (var i = 0; i < this.vehicles.length; i++) {\r\n if (this.vehicles[i].id == id) {\r\n this.selectedVehicle = this.vehicles[i];\r\n }\r\n }\r\n\r\n if (this.employeeTripForm !== null) {\r\n this.employeeTripForm.get(\"vehicleId\").setValue(id, {\r\n onlySelf: true\r\n });\r\n }\r\n if (this.employeeTripForm !== null) {\r\n this.employeeTripForm.get(\"previousReading\").setValue(this.selectedVehicle.ordometerReading, {\r\n onlySelf: true\r\n });\r\n this.previousOdoReading = this.selectedVehicle.ordometerReading;\r\n }\r\n debugger;\r\n }\r\n\r\n }\r\n changeEmployee(id: number) {\r\n if (id > 0 && this.employees !== undefined) {\r\n this.selectedEmployee = null;\r\n for (var i = 0; i < this.employees.length; i++) {\r\n if (this.employees[i].id == id) {\r\n this.selectedEmployee = this.employees[i];\r\n }\r\n }\r\n\r\n if (this.employeeTripForm !== null) {\r\n this.employeeTripForm.get(\"employeeId\").setValue(id, {\r\n onlySelf: true\r\n });\r\n }\r\n }\r\n }\r\n changeProduct(id: number) {\r\n\r\n if (id > 0 && this.products !== undefined) {\r\n this.selectedProduct = null;\r\n for (var i = 0; i < this.products.length; i++) {\r\n if (this.products[i].id == id) {\r\n this.selectedProduct = this.products[i];\r\n }\r\n }\r\n\r\n if (this.employeeTripForm !== null) {\r\n this.employeeTripForm.get(\"productId\").setValue(id, {\r\n onlySelf: true\r\n });\r\n }\r\n }\r\n }\r\n public uploadFinished = (event) => {\r\n \r\n this.response = event;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9lbXBsb3llZXRyaXAvZW1wbG95ZWV0cmlwLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { EmployeeTrip } from '../../../data-models/employeetrip';\r\nimport { ConfigService } from '../../../shared/utils/config.service';\r\nimport { EmployeeTripService } from '../../services/employeetrip.service';\r\n\r\n@Component({\r\n selector: 'app-employeetrip',\r\n templateUrl: './employeetrip.component.html',\r\n styleUrls: ['./employeetrip.component.css']\r\n})\r\nexport class EmployeetripComponent implements OnInit {\r\n\r\n pageTitle = 'Trip List';\r\n imageWidth = 50;\r\n imageMargin = 2;\r\n showImage = false;\r\n errorMessage = '';\r\n url: string;\r\n\r\n _listFilter = '';\r\n get listFilter(): string {\r\n return this._listFilter;\r\n }\r\n set listFilter(value: string) {\r\n this._listFilter = value;\r\n this.filteredEmployeeTrips = this.listFilter ? this.performFilter(this.listFilter) : this.employeeTrips;\r\n }\r\n\r\n filteredEmployeeTrips: EmployeeTrip[] = [];\r\n employeeTrips: EmployeeTrip[] = [];\r\n //dtOptions: DataTables.Settings = {};\r\n dtOptions: any = {};\r\n\r\n constructor(private employeeTripService: EmployeeTripService,\r\n private configService: ConfigService ) {\r\n this.url = configService.getBaseURI();\r\n }\r\n\r\n performFilter(filterBy: string): EmployeeTrip[] {\r\n\r\n filterBy = filterBy.toLocaleLowerCase();\r\n return this.employeeTrips.filter((employeeTrip: EmployeeTrip) =>\r\n employeeTrip.employeeName.toLocaleLowerCase().indexOf(filterBy) !== -1\r\n ||\r\n employeeTrip.vehicleName.toLocaleLowerCase().indexOf(filterBy) !== -1 ||\r\n employeeTrip.productName.toLocaleLowerCase().indexOf(filterBy) !== -1\r\n );\r\n }\r\n\r\n toggleImage(): void {\r\n this.showImage = !this.showImage;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n pageLength: 20,\r\n processing: true,\r\n dom: 'Bfrtip',\r\n buttons: [\r\n 'copy', 'csv', 'excel', 'print'\r\n ]\r\n };\r\n this.employeeTripService.getEmployeeTrips().subscribe({\r\n next: item => {\r\n\r\n this.employeeTrips = item;\r\n this.filteredEmployeeTrips = this.employeeTrips;\r\n\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n\r\n openImage(link: any) {\r\n\r\n\r\n const myWindow = window.open(\r\n this.url + \"/\" + link,\r\n '_blank',\r\n 'width=900, height=240'\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { EmployeetripEditComponent } from './employeetrip-edit.component';\r\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EmployeetripGuard implements CanDeactivate {\n canDeactivate(component: EmployeetripEditComponent): Observable | Promise | boolean {\n if (component.employeeTripForm.dirty) {\n const employeeName = component.employeeTripForm.get('employeeName').value || 'New Trip';\n return confirm(`Navigate away and lose all changes to ${employeeName}?`);\n }\n return true;\n }\n}","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanDeactivate } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FarmEditComponent } from './farm.edit.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FarmEditGuard implements CanDeactivate {\n canDeactivate(component: FarmEditComponent): Observable | Promise | boolean {\n if (component.farmForm.dirty) {\n const farmName = component.farmForm.get('farmName').value || 'New Farm';\n return confirm(`Navigate away and lose all changes to ${farmName}?`);\n }\n return true;\n }\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9mYXJtL2Zhcm0uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Farm } from '../../../data-models/farm';\r\nimport { FarmService } from '../../services/farm.service';\r\n\r\n@Component({\r\n selector: 'app-farm',\r\n templateUrl: './farm.component.html',\r\n styleUrls: ['./farm.component.scss']\r\n})\r\nexport class FarmComponent implements OnInit {\r\n\r\n pageTitle = 'Farm List';\r\n imageWidth = 50;\r\n imageMargin = 2;\r\n showImage = false;\r\n errorMessage = '';\r\n\r\n _listFilter = '';\r\n get listFilter(): string {\r\n return this._listFilter;\r\n }\r\n set listFilter(value: string) {\r\n this._listFilter = value;\r\n this.filteredFarms = this.listFilter ? this.performFilter(this.listFilter) : this.farms;\r\n }\r\n\r\n filteredFarms: Farm[] = [];\r\n farms: Farm[] = [];\r\n dtOptions: DataTables.Settings = {};\r\n\r\n constructor(private farmService: FarmService) { }\r\n\r\n performFilter(filterBy: string): Farm[] {\r\n \r\n filterBy = filterBy.toLocaleLowerCase();\r\n return this.farms.filter((farm: Farm) =>\r\n farm.farmName.toLocaleLowerCase().indexOf(filterBy) !== -1);\r\n }\r\n\r\n toggleImage(): void {\r\n this.showImage = !this.showImage;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10,\r\n processing: true\r\n };\r\n this.farmService.getFarms().subscribe({\r\n next: farms => {\r\n this.farms = farms;\r\n this.filteredFarms = this.farms;\r\n debugger;\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9mYXJtL2Zhcm0uZGV0YWlsLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChildren, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';\nimport { FormControlName, FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { Farm } from '../../../data-models/farm';\nimport { Subscription, Observable, fromEvent, merge } from 'rxjs';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { FarmService } from '../../services/farm.service';\nimport { GenericValidator } from '../../../shared/generic-validator';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'app-farm.detail',\n templateUrl: './farm.detail.component.html',\n styleUrls: ['./farm.detail.component.scss']\n})\nexport class FarmDetailComponent implements OnInit {\n pageTitle = 'Farm Detail';\n errorMessage = '';\n farm: Farm | undefined;\n\n constructor(private route: ActivatedRoute,\n private router: Router,\n private farmService: FarmService) {\n }\n\n ngOnInit() {\n const param = this.route.snapshot.paramMap.get('id');\n if (param) {\n const id = +param;\n this.getFarm(id);\n }\n }\n\n getFarm(id: number) {\n this.farmService.getFarm(id).subscribe({\n next: farm => this.farm = farm,\n error: err => this.errorMessage = err\n });\n }\n\n onBack(): void {\n this.router.navigate(['/dashboard/farm']);\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9mYXJtL2Zhcm0uZWRpdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, ViewChildren, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';\r\nimport { FormControlName, FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { Farm } from '../../../data-models/farm';\r\nimport { Subscription, Observable, fromEvent, merge } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FarmService } from '../../services/farm.service';\r\nimport { GenericValidator } from '../../../shared/generic-validator';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { debug } from 'util';\r\n\r\n@Component({\r\n selector: 'app-farm.edit',\r\n templateUrl: './farm.edit.component.html',\r\n styleUrls: ['./farm.edit.component.scss']\r\n})\r\nexport class FarmEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n pageTitle = 'Farm Edit';\r\n errorMessage: string;\r\n farmForm: FormGroup;\r\n\r\n farm: Farm;\r\n private sub: Subscription;\r\n\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n private validationMessages: { [key: string]: { [key: string]: string } };\r\n private genericValidator: GenericValidator;\r\n\r\n get tags(): FormArray {\r\n return this.farmForm.get('tags') as FormArray;\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private farmService: FarmService) {\r\n\r\n // Defines all of the validation messages for the form.\r\n // These could instead be retrieved from a file or database.\r\n this.validationMessages = {\r\n farmName: {\r\n required: 'Farm name is required.',\r\n minlength: 'Farm name must be at least three characters.',\r\n maxlength: 'Farm name cannot exceed 100 characters.'\r\n },\r\n farmCode: {\r\n required: 'Farm code is required.'\r\n }\r\n };\r\n\r\n // Define an instance of the validator for use with this form,\r\n // passing in this form's set of validation messages.\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.farmForm = this.fb.group({\r\n farmName: ['', [Validators.required,\r\n Validators.minLength(3),\r\n Validators.maxLength(100)]],\r\n farmCode: ['', Validators.required],\r\n longitute: '',\r\n latitude: '',\r\n size: 0,\r\n \r\n });\r\n\r\n // Read the farm Id from the route parameter\r\n this.sub = this.route.paramMap.subscribe(\r\n params => {\r\n const id = +params.get('id');\r\n this.getFarm(id);\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Watch for the blur event from any input element on the form.\r\n // This is required because the valueChanges does not provide notification on blur\r\n const controlBlurs: Observable[] = this.formInputElements\r\n .map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n\r\n // Merge the blur event observable with the valueChanges observable\r\n // so we only need to subscribe once.\r\n merge(this.farmForm.valueChanges, ...controlBlurs).pipe(\r\n debounceTime(800)\r\n ).subscribe(value => {\r\n this.displayMessage = this.genericValidator.processMessages(this.farmForm);\r\n });\r\n }\r\n\r\n addTag(): void {\r\n this.tags.push(new FormControl());\r\n }\r\n\r\n deleteTag(index: number): void {\r\n this.tags.removeAt(index);\r\n this.tags.markAsDirty();\r\n }\r\n\r\n getFarm(id: number): void {\r\n this.farmService.getFarm(id)\r\n .subscribe({\r\n next: (farm: Farm) => this.displayFarm(farm),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n\r\n displayFarm(farm: Farm): void {\r\n if (this.farmForm) {\r\n this.farmForm.reset();\r\n }\r\n this.farm = farm;\r\n\r\n if (this.farm.id === 0) {\r\n this.pageTitle = 'Add Farm';\r\n } else {\r\n this.pageTitle = 'Edit Farm: ${this.farm.farmName}';\r\n }\r\n\r\n // Update the data on the form\r\n this.farmForm.patchValue({\r\n farmName: this.farm.farmName,\r\n farmCode: this.farm.farmCode,\r\n size: this.farm.size,\r\n latitude: this.farm.latitude,\r\n longitute: this.farm.longitute\r\n });\r\n //this.farmForm.setControl('tags', this.fb.array(this.farm.tags || []));\r\n }\r\n\r\n deleteFarm(): void {\r\n if (this.farm.id === 0) {\r\n // Don't delete, it was never saved.\r\n this.onSaveComplete();\r\n } else {\r\n if (confirm('Really delete the farm: ${this.farm.farmName}?')) {\r\n this.farmService.deleteFarm(this.farm.id)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n }\r\n\r\n saveFarm(): void {\r\n if (this.farmForm.valid) {\r\n if (this.farmForm.dirty) {\r\n const p = { ...this.farm, ...this.farmForm.value };\r\n\r\n if (p.id === 0) {\r\n this.farmService.createFarm(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n } else {\r\n this.farmService.updateFarm(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n } else {\r\n this.onSaveComplete();\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n\r\n onSaveComplete(): void {\r\n // Reset the form to clear the flags\r\n this.farmForm.reset();\r\n this.router.navigate(['/farms']);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ReactiveFormsModule} from '@angular/forms';\r\n\r\n\r\n// Imports for loading & configuring the in-memory web api\r\nimport { InMemoryWebApiModule } from 'angular-in-memory-web-api';\r\nimport { FarmEditComponent } from './farm.edit.component';\r\nimport { FarmDetailComponent } from './farm.detail.component';\r\nimport { FarmComponent } from './farm.component';\r\nimport { SharedModule } from '../../../shared/modules/shared.module';\r\nimport { FarmEditGuard } from './farm-edit.guard';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { DataTablesModule } from 'angular-datatables';\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n SharedModule,\r\n ReactiveFormsModule,\r\n DataTablesModule,\r\n RouterModule.forChild([\r\n { path: 'farms', component: FarmComponent },\r\n { path: 'farms/:id', component: FarmDetailComponent },\r\n {\r\n path: 'farms/:id/edit',\r\n canDeactivate: [FarmEditGuard],\r\n component: FarmEditComponent\r\n }\r\n ])\r\n ],\r\n declarations: [\r\n FarmComponent,\r\n FarmDetailComponent,\r\n FarmEditComponent\r\n ]\r\n})\r\nexport class FarmModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9maWVsZC9maWVsZC1kZXRhaWwuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Field } from '../../../data-models/field';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FieldService } from '../../services/field.service';\r\nimport { FarmService } from '../../services/farm.service';\r\nimport { Farm } from '../../../data-models/farm';\r\n\r\n@Component({\r\n selector: 'app-field-detail',\r\n templateUrl: './field-detail.component.html',\r\n styleUrls: ['./field-detail.component.css']\r\n})\r\nexport class FieldDetailComponent implements OnInit {\r\n pageTitle = 'Field Detail';\r\n errorMessage = '';\r\n field: Field | undefined;\r\n farm: Farm | undefined;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private router: Router,\r\n private farmService: FarmService,\r\n private fieldService: FieldService) {\r\n }\r\n\r\n ngOnInit() {\r\n const param = this.route.snapshot.paramMap.get('id');\r\n if (param) {\r\n const id = +param;\r\n this.getField(id);\r\n this.getFarm(this.field.farmId);\r\n }\r\n }\r\n\r\n getField(id: number) {\r\n this.fieldService.getField(id).subscribe({\r\n next: field => this.field = field,\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getFarm(id: number) {\r\n this.farmService.getFarm(id).subscribe({\r\n next: farm => this.farm = farm,\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n onBack(): void {\r\n this.router.navigate(['dashboard/field']);\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9maWVsZC9maWVsZC1lZGl0LmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit, ViewChildren, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';\r\nimport { FormControlName, FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { Field } from '../../../data-models/field';\r\nimport { Subscription, Observable, fromEvent, merge } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FieldService } from '../../services/field.service';\r\nimport { GenericValidator } from '../../../shared/generic-validator';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { debug } from 'util';\r\nimport { Farm } from '../../../data-models/farm';\r\nimport { FarmService } from '../../services/farm.service';\r\nimport { RentalAgreement } from '../../../data-models/rentalAgreement';\r\nimport { RentalAgreementService } from '../../../shared/services/rentalAgreement.service';\r\n\r\n@Component({\r\n selector: 'app-field-edit',\r\n templateUrl: './field-edit.component.html',\r\n styleUrls: ['./field-edit.component.css']\r\n})\r\nexport class FieldEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n pageTitle = 'Field Edit';\r\n errorMessage: string;\r\n fieldForm: FormGroup;\r\n\r\n field: Field;\r\n farms: Farm[] = [];\r\n rentalAgreements: RentalAgreement[];\r\n selectedFarm: Farm;\r\n selectedRentalAgreement: RentalAgreement;\r\n private sub: Subscription;\r\n\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n private validationMessages: { [key: string]: { [key: string]: string } };\r\n private genericValidator: GenericValidator;\r\n\r\n get tags(): FormArray {\r\n return this.fieldForm.get('tags') as FormArray;\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private fieldService: FieldService,\r\n private farmService: FarmService,\r\n private rentalAgreementService: RentalAgreementService) {\r\n\r\n // Defines all of the validation messages for the form.\r\n // These could instead be retrieved from a file or database.\r\n this.validationMessages = {\r\n fieldName: {\r\n required: 'Field name is required.',\r\n minlength: 'Field name must be at least three characters.',\r\n maxlength: 'Field name cannot exceed 100 characters.'\r\n },\r\n code: {\r\n required: 'Field code is required.'\r\n },\r\n farmId: {\r\n required: 'You must select a farm'\r\n }\r\n };\r\n // Define an instance of the validator for use with this form,\r\n // passing in this form's set of validation messages.\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fieldForm = this.fb.group({\r\n fieldName: ['', [Validators.required,\r\n Validators.minLength(3),\r\n Validators.maxLength(100)]],\r\n code: ['', Validators.required],\r\n farmId: ['', Validators.required],\r\n rentalAgreementId: '',\r\n size: 0,\r\n rowSpacing: '',\r\n farmName: '',\r\n rentalAgreementText: '',\r\n rentalAgreementName: '',\r\n id: 0\r\n });\r\n\r\n // Read the Field Id from the route parameter\r\n this.sub = this.route.paramMap.subscribe(\r\n params => {\r\n // Get a List of farms\r\n this.farmService.getFarms().subscribe(\r\n farms => {\r\n\r\n this.farms = farms;\r\n this.selectedFarm = this.farms[0];\r\n\r\n });\r\n // Get a List of Rental Agreements\r\n this.rentalAgreementService.getRentalAgreements().subscribe(\r\n rentalAgreements => {\r\n\r\n this.rentalAgreements = rentalAgreements;\r\n this.selectedRentalAgreement = this.rentalAgreements[0];\r\n\r\n });\r\n\r\n const id = +params.get('id');\r\n this.getField(id);\r\n\r\n }\r\n );\r\n\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Watch for the blur event from any input element on the form.\r\n // This is required because the valueChanges does not provide notification on blur\r\n const controlBlurs: Observable[] = this.formInputElements\r\n .map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n\r\n // Merge the blur event observable with the valueChanges observable\r\n // so we only need to subscribe once. \r\n merge(this.fieldForm.valueChanges, ...controlBlurs).pipe(\r\n debounceTime(800)\r\n ).subscribe(value => {\r\n this.displayMessage = this.genericValidator.processMessages(this.fieldForm);\r\n });\r\n }\r\n\r\n addTag(): void {\r\n this.tags.push(new FormControl());\r\n }\r\n\r\n deleteTag(index: number): void {\r\n this.tags.removeAt(index);\r\n this.tags.markAsDirty();\r\n }\r\n\r\n getField(id: number): void {\r\n if (id > 0) {\r\n this.fieldService.getField(id)\r\n .subscribe({\r\n next: (field: Field) => {\r\n this.displayField(field);\r\n\r\n this.getRentalAgreementService(field.rentalAgreementId);\r\n this.changeFarm(field.farmId);\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n getRentalAgreementService(rentalAgreementId: number) {\r\n this.rentalAgreementService.getRentalAgreement(rentalAgreementId)\r\n .subscribe({\r\n next: (rentalAgreement: RentalAgreement) => this.selectedRentalAgreement = rentalAgreement,\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n displayField(field: Field): void {\r\n if (this.fieldForm) {\r\n this.fieldForm.reset();\r\n }\r\n this.field = field;\r\n\r\n if (this.field.id === 0) {\r\n this.pageTitle = 'Add Field';\r\n } else {\r\n this.pageTitle = `Edit Field: ${this.field.fieldName}`;\r\n }\r\n\r\n // Update the data on the form\r\n this.fieldForm.patchValue({\r\n farmName: this.field.farmName,\r\n fieldName: this.field.fieldName,\r\n code: this.field.code,\r\n size: this.field.size,\r\n rentalAgreementId: this.field.rentalAgreementId,\r\n farmId: this.field.farmId,\r\n rowSpacing: this.field.rowSpacing,\r\n rentalAgreementText: field.rentalAgreementText,\r\n rentalAgreementName: field.rentalAgreementName,\r\n id: field.id\r\n });\r\n //this.farmForm.setControl('tags', this.fb.array(this.farm.tags || []));\r\n }\r\n\r\n deleteField(): void {\r\n if (this.field.id === 0) {\r\n // Don't delete, it was never saved.\r\n this.onSaveComplete();\r\n } else {\r\n if (confirm('Really delete the field: ${this.field.fieldName}?')) {\r\n this.fieldService.deleteField(this.field.id)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n }\r\n\r\n saveField(): void {\r\n if (this.fieldForm.valid) {\r\n if (this.fieldForm.dirty) {\r\n const p = { ...this.field, ...this.fieldForm.value };\r\n\r\n if (p.id === 0) {\r\n this.fieldService.createField(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n } else {\r\n this.fieldService.updateField(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n } else {\r\n this.onSaveComplete();\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n // Choose farm using select dropdown\r\n changeFarm(farmId) {\r\n this.selectedFarm = null;\r\n for (var i = 0; i < this.farms.length; i++) {\r\n if (this.farms[i].id == farmId) {\r\n this.selectedFarm = this.farms[i];\r\n }\r\n }\r\n //this.fieldForm.get(\"farm\").setValue(this.selectedFarm, {\r\n // onlySelf: true\r\n //});\r\n this.fieldForm.get(\"farmId\").setValue(farmId, {\r\n onlySelf: true\r\n });\r\n this.fieldForm.get(\"farmName\").setValue(this.selectedFarm.farmName, {\r\n onlySelf: true\r\n });\r\n\r\n }\r\n // Choose rental Agreement using select dropdown\r\n changeRentalAgreement(rentalAgreementId) {\r\n\r\n this.selectedRentalAgreement = null;\r\n for (var i = 0; i < this.rentalAgreements.length; i++) {\r\n if (this.rentalAgreements[i].id == rentalAgreementId) {\r\n this.selectedRentalAgreement = this.rentalAgreements[i];\r\n }\r\n }\r\n //this.fieldForm.get(\"farm\").setValue(this.selectedFarm, {\r\n // onlySelf: true\r\n //});\r\n this.fieldForm.get(\"rentalAgreementId\").setValue(rentalAgreementId, {\r\n onlySelf: true\r\n });\r\n\r\n }\r\n onSaveComplete(): void {\r\n // Reset the form to clear the flags\r\n this.fieldForm.reset();\r\n this.router.navigate(['/dashboard/field']);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FieldEditGuard implements CanActivate {\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return true;\n }\n \n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9maWVsZC9maWVsZC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { Field } from '../../../data-models/field';\r\nimport { FieldService } from '../../services/field.service';\r\nimport { debug } from 'util';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-field',\r\n templateUrl: './field.component.html',\r\n styleUrls: ['./field.component.scss']\r\n})\r\nexport class FieldComponent implements OnInit {\r\n pageTitle = 'Field List';\r\n imageWidth = 50;\r\n imageMargin = 2;\r\n showImage = false;\r\n errorMessage = '';\r\n \r\n _listFilter = '';\r\n get listFilter(): string {\r\n return this._listFilter;\r\n }\r\n set listFilter(value: string) {\r\n this._listFilter = value;\r\n this.filteredFields = this.listFilter ? this.performFilter(this.listFilter) : this.fields;\r\n }\r\n\r\n filteredFields: Field[] = [];\r\n fields: Field[] = [];\r\n dtOptions: DataTables.Settings = {};\r\n \r\n\r\n constructor(private fieldService: FieldService) {\r\n\r\n }\r\n\r\n performFilter(filterBy: string): Field[] {\r\n\r\n filterBy = filterBy.toLocaleLowerCase();\r\n return this.fields.filter((field: Field) =>\r\n field.fieldName.toLocaleLowerCase().indexOf(filterBy) !== -1);\r\n }\r\n\r\n toggleImage(): void {\r\n this.showImage = !this.showImage;\r\n }\r\n\r\n ngOnInit(): void {\r\n //this.dataTable = $(this.table.nativeElement);\r\n\r\n //this.dataTable.DataTable();\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10,\r\n processing: true\r\n };\r\n\r\n this.fieldService.getFields().subscribe({\r\n next: fields => {\r\n\r\n this.fields = fields;\r\n this.filteredFields = this.fields;\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FieldEditComponent } from './field-edit.component';\r\nimport { FieldDetailComponent } from './field-detail.component';\r\nimport { FieldComponent } from './field.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { SharedModule } from '../../../shared/modules/shared.module';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { FieldEditGuard } from './field-edit.guard';\r\nimport { DataTablesModule } from 'angular-datatables';\r\n\r\n\r\n@NgModule({\r\n declarations: [FieldEditComponent, FieldDetailComponent, FieldComponent],\r\n imports: [\r\n FormsModule,\r\n SharedModule,\r\n ReactiveFormsModule,\r\n DataTablesModule,\r\n RouterModule.forChild([\r\n { path: 'fields', component: FieldComponent },\r\n { path: 'fields/:id', component: FieldDetailComponent },\r\n {\r\n path: 'fields/:id/edit',\r\n canDeactivate: [FieldEditGuard],\r\n component: FieldEditComponent\r\n }\r\n ])\r\n ]\r\n})\r\nexport class FieldModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9wcm9kdWN0L3BsYW50LXZhcmlldHktZWRpdC9wbGFudC12YXJpZXR5LWVkaXQuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit, Inject, ViewChildren, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { PlantVariety } from 'src/app/data-models/plant-variety';\r\nimport { FormBuilder, FormControlName, Validators, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { PlantVarietyService } from 'src/app/dashboard/services/plant-variety.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Subscription, Observable, fromEvent, merge } from 'rxjs';\r\nimport { GenericValidator } from 'src/app/shared/generic-validator';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { debug } from 'util';\r\nimport { ProductService } from 'src/app/dashboard/services/product.service';\r\nimport { Product } from 'src/app/data-models/product';\r\n\r\n@Component({\r\n selector: 'app-plant-variety-edit',\r\n templateUrl: './plant-variety-edit.component.html',\r\n styleUrls: ['./plant-variety-edit.component.css']\r\n})\r\nexport class PlantVarietyEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n plantVariety: PlantVariety;\r\n product: Product;\r\n errorMessage: string;\r\n pageTitle: string = \"Add Plantvariety\";\r\n plantVarietyForm: FormGroup;\r\n private sub: Subscription;\r\n private productTypeId: number = 0;\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n private validationMessages: { [key: string]: { [key: string]: string } };\r\n private genericValidator: GenericValidator;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: PlantVariety,\r\n private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private plantVarietyService: PlantVarietyService,\r\n private productService: ProductService,\r\n private _snackBar: MatSnackBar) {\r\n this.plantVariety = data;\r\n this.productTypeId = data.productTypeId;\r\n // Defines all of the validation messages for the form.\r\n // These could instead be retrieved from a file or database.\r\n this.validationMessages = {\r\n name: {\r\n required: 'Plant Variety name is required.',\r\n minlength: 'Plant Variety name must be at least three characters.',\r\n maxlength: 'Plant Variety name cannot exceed 100 characters.'\r\n },\r\n code: {\r\n required: 'Plant Variety code is required.',\r\n minlength:'Plant Variety code must be at least three characters.'\r\n }\r\n };\r\n\r\n // Define an instance of the validator for use with this form,\r\n // passing in this form's set of validation messages.\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n\r\n }\r\n\r\n onNoClick(): void {\r\n debugger;\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.plantVarietyForm = this.fb.group({\r\n name: ['', [Validators.required,\r\n Validators.minLength(3),\r\n Validators.maxLength(100)]],\r\n code: ['', [Validators.required,\r\n Validators.minLength(3)]],\r\n timeToGerminate: [''],\r\n timeToFirstHarvest: [''],\r\n totalDaysToEndOfCrop: [''],\r\n id: 0,\r\n productTypeId: this.productTypeId,\r\n price: '',\r\n zimPrice: '',\r\n description:''\r\n });\r\n\r\n // Read the farm Id from the route parameter\r\n this.sub = this.route.paramMap.subscribe(\r\n params => {\r\n const id = +params.get('id');\r\n if (id && id > 0) {\r\n this.getPlantVariety(id);\r\n }\r\n if (this.plantVariety.id > 0) {\r\n this.getPlantVariety(this.plantVariety.id);\r\n this.getProduct(this.plantVariety.productTypeId, this.plantVariety.id);\r\n }\r\n \r\n }\r\n );\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Watch for the blur event from any input element on the form.\r\n // This is required because the valueChanges does not provide notification on blur\r\n const controlBlurs: Observable[] = this.formInputElements\r\n .map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n\r\n // Merge the blur event observable with the valueChanges observable\r\n // so we only need to subscribe once.\r\n merge(this.plantVarietyForm.valueChanges, ...controlBlurs).pipe(\r\n debounceTime(800)\r\n ).subscribe(value => {\r\n this.displayMessage = this.genericValidator.processMessages(this.plantVarietyForm);\r\n });\r\n }\r\n getPlantVariety(id: number): void {\r\n this.plantVarietyService.getPlantVariety(id)\r\n .subscribe({\r\n next: (plantVariety: PlantVariety) => {\r\n debugger;\r\n if (plantVariety.productTypeId === 0) {\r\n plantVariety.productTypeId = this.productTypeId;\r\n }\r\n this.displayplantVariety(plantVariety);\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getProduct(productTypeId: number, id: number): void{\r\n this.productService.getProductByProductTypeAndReference(productTypeId, id).subscribe(\r\n product => {\r\n this.product = product;\r\n this.plantVarietyForm.get(\"code\").setValue(this.product.code, {\r\n onlySelf: true\r\n });\r\n this.plantVarietyForm.get(\"description\").setValue(this.product.description, {\r\n onlySelf: true\r\n });\r\n this.plantVarietyForm.get(\"price\").setValue(this.product.price, {\r\n onlySelf: true\r\n });\r\n this.plantVarietyForm.get(\"zimPrice\").setValue(this.product.zimPrice, {\r\n onlySelf: true\r\n });\r\n }\r\n );\r\n }\r\n displayplantVariety(plantVariety: PlantVariety): void {\r\n if (this.plantVarietyForm) {\r\n this.plantVarietyForm.reset();\r\n }\r\n this.plantVariety = plantVariety;\r\n\r\n if (this.plantVariety.id === 0) {\r\n this.pageTitle = 'Add Plant Variety';\r\n } else {\r\n this.pageTitle = 'Edit Plant Variety: ' + this.plantVariety.name;\r\n }\r\n \r\n // Update the data on the form\r\n this.plantVarietyForm.patchValue({\r\n name: this.plantVariety.name,\r\n code: this.plantVariety.code,\r\n productTypeId:this.plantVariety.productTypeId,\r\n timeToFirstHarvest: this.plantVariety.timeToFirstHarvest,\r\n timeToGerminate: this.plantVariety.timeToGerminate,\r\n totalDaysToEndOfCrop: this.plantVariety.totalDaysToEndOfCrop,\r\n id: this.plantVariety.id,\r\n price: this.plantVariety.price,\r\n description: this.plantVariety.description,\r\n zimPrice: this.plantVariety.zimPrice\r\n \r\n });\r\n //this.farmForm.setControl('tags', this.fb.array(this.farm.tags || []));\r\n }\r\n\r\n deletePlantVariety(): void {\r\n if (this.plantVariety.id === 0) {\r\n // Don't delete, it was never saved.\r\n this.onSaveComplete();\r\n } else {\r\n if (confirm('Really delete the plant Variety: ${this.plantVariety.name}?')) {\r\n this.plantVarietyService.deletePlantVariety(this.plantVariety.id)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n }\r\n\r\n savePlantVariety(): void {\r\n if (this.plantVarietyForm.valid) {\r\n if (this.plantVarietyForm.dirty) {\r\n const p = { ...this.plantVariety, ...this.plantVarietyForm.value };\r\n\r\n if (p.id === 0) {\r\n this.plantVarietyService.createPlantVariety(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n } else {\r\n this.plantVarietyService.updatePlantVariety(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n } else {\r\n this.onSaveComplete();\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n\r\n onSaveComplete(): void {\r\n // Reset the form to clear the flags\r\n this.plantVarietyForm.reset();\r\n this._snackBar.open(this.plantVariety.name, \" was successfully saved \", {\r\n duration: 3000,\r\n });\r\n this.dialogRef.close();\r\n \r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy9wcm9kdWN0L3Byb2R1Y3QtZGV0YWlsLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-product-detail',\n templateUrl: './product-detail.component.html',\n styleUrls: ['./product-detail.component.css']\n})\nexport class ProductDetailComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export default \"mat-card {\\r\\n width: 100%;\\r\\n margin-top: 10px;\\r\\n margin-right:10px;\\r\\n display: inline-block;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.farmApp-card {\\r\\n max-width: 400px;\\r\\n}\\r\\n\\r\\n.farmApp-header-image {\\r\\n background-image: url('https://material.angular.io/assets/img/examples/shiba1.jpg');\\r\\n background-size: cover;\\r\\n}\\r\\n\\r\\nmat-grid-list{\\r\\n background-color:lavenderblush;\\r\\n}\\r\\n\\r\\nmat-vertical-stepper {\\r\\n width: 100%;\\r\\n height:100%;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZGFzaGJvYXJkL3BhZ2VzL3Byb2R1Y3QvcHJvZHVjdC1lZGl0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLG1GQUFtRjtJQUNuRixzQkFBc0I7QUFDMUI7O0FBQ0E7SUFDSSw4QkFBOEI7QUFDbEM7O0FBQ0E7SUFDSSxXQUFXO0lBQ1gsV0FBVztBQUNmIiwiZmlsZSI6InNyYy9hcHAvZGFzaGJvYXJkL3BhZ2VzL3Byb2R1Y3QvcHJvZHVjdC1lZGl0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJtYXQtY2FyZCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6MTBweDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLmZhcm1BcHAtY2FyZCB7XHJcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xyXG59XHJcblxyXG4uZmFybUFwcC1oZWFkZXItaW1hZ2Uge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vYXNzZXRzL2ltZy9leGFtcGxlcy9zaGliYTEuanBnJyk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG59XHJcbm1hdC1ncmlkLWxpc3R7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOmxhdmVuZGVyYmx1c2g7XHJcbn1cclxubWF0LXZlcnRpY2FsLXN0ZXBwZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6MTAwJTtcclxufSJdfQ== */\"","import { Component, OnInit, ViewChildren, ElementRef, AfterViewInit, OnDestroy, Inject } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder, FormControlName, FormControl } from '@angular/forms';\r\nimport { PlantService } from '../../services/plant.service';\r\nimport { PlantVarietyService } from '../../services/plant-variety.service';\r\nimport { TraceProductService } from '../../services/trace-product.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { GenericValidator } from 'src/app/shared/generic-validator';\r\nimport { Subscription, Observable, fromEvent, merge } from 'rxjs';\r\nimport { Plant } from 'src/app/data-models/plant';\r\nimport { Trace } from 'src/app/data-models/trace';\r\nimport { PlantVariety } from 'src/app/data-models/plant-variety';\r\nimport { ProductType } from 'src/app/data-models/productType';\r\nimport { Product } from 'src/app/data-models/product';\r\nimport { ProductService } from '../../services/product.service';\r\nimport { ProductTypeService } from '../../services/product-type.service';\r\nimport { TraceService } from '../../services/trace.service';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Farm } from 'src/app/data-models/farm';\r\nimport { Field } from 'src/app/data-models/field';\r\nimport { FarmService } from '../../services/farm.service';\r\nimport { FieldService } from '../../services/field.service';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { PlantVarietyEditComponent } from './plant-variety-edit/plant-variety-edit.component';\r\nimport { debug } from 'util';\r\nimport { TraceProduct } from 'src/app/data-models/trace-product';\r\n\r\n@Component({\r\n selector: 'app-product-edit',\r\n templateUrl: './product-edit.component.html',\r\n styleUrls: ['./product-edit.component.css']\r\n})\r\nexport class ProductEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n\r\n errorMessage: string;\r\n isLinear = false;\r\n plantFormGroup: FormGroup;\r\n plantVarietyFormGroup: FormGroup;\r\n traceProductFormGroup: FormGroup;\r\n productTypeForm: FormGroup;\r\n\r\n plants: Plant[] = [];\r\n selectedPlant: PlantVariety = null;\r\n selectedFarm: Farm;\r\n selectedField: Field;\r\n selectedTrace: Trace;\r\n plantVariety: PlantVariety = {} as PlantVariety;\r\n productTypes: ProductType[] = [];\r\n subProductTypes: ProductType[] = [];\r\n nextSubProductTypes: ProductType[] = [];\r\n products: Product[] = [];\r\n farms: Farm[] = [];\r\n fields: Field[] = [];\r\n filteredFields: Field[] = [];\r\n traces: Trace[] = [];\r\n filteredTraces: Trace[] = [];\r\n plantVarieties: PlantVariety[] = [];\r\n product: Product;\r\n selectedProductType: ProductType;\r\n productType: ProductType;\r\n traceProduct: TraceProduct;\r\n\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n private validationMessages: { [key: string]: { [key: string]: string } };\r\n private genericValidator: GenericValidator;\r\n\r\n private sub: Subscription;\r\n\r\n\r\n constructor(private _formBuilder: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n public dialog: MatDialog,\r\n private plantService: PlantService,\r\n private plantVarietyService: PlantVarietyService,\r\n private traceProductService: TraceProductService,\r\n private productService: ProductService,\r\n private productTypeService: ProductTypeService,\r\n private farmService: FarmService,\r\n private fieldService: FieldService,\r\n private traceService: TraceService,\r\n private _snackBar: MatSnackBar) {\r\n // Defines all of the validation messages for the form.\r\n // These could instead be retrieved from a file or database.\r\n this.validationMessages = {\r\n plantName: {\r\n required: 'Plant name is required.',\r\n minlength: 'Plant name must be at least three characters.',\r\n maxlength: 'Plant name cannot exceed 100 characters.'\r\n },\r\n plantParentId: {\r\n required: 'Parent Id is required.'\r\n }\r\n };\r\n // Define an instance of the validator for use with this form,\r\n // passing in this form's set of validation messages.\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.plantFormGroup = this._formBuilder.group({\r\n firstCtrl: ['', Validators.required]\r\n });\r\n this.traceProductFormGroup = this._formBuilder.group({\r\n productId:[ '', Validators.required],\r\n traceId: ['', Validators.required],\r\n quantity: ['', Validators.required],\r\n addedDate: ['', Validators.required],\r\n allocationPrice: ['', Validators.required],\r\n allocationZimPrice: ['', Validators.required],\r\n farmId: [''],\r\n fieldId: [''],\r\n productName: new FormControl({ value: '', disabled: true }, Validators.required),\r\n\r\n });\r\n this.productTypeForm = this._formBuilder.group({\r\n id: 0,\r\n name: ['', [Validators.required,\r\n Validators.minLength(3),\r\n Validators.maxLength(100)]],\r\n parentId: '',\r\n description: '',\r\n productTypeId: 0\r\n });\r\n // Read the Field Id from the route parameter\r\n this.sub = this.route.paramMap.subscribe(\r\n params => {\r\n // Get a List of farms\r\n //this.plantService.getPlants().subscribe(\r\n // plants => {\r\n\r\n // this.plants = plants;\r\n\r\n // });\r\n // Get a List of Rental Agreements\r\n this.productTypeService.getProductTypeByParentId(1).subscribe(\r\n items => {\r\n this.productTypes = items;\r\n // this.selectedProductType = this.productTypes[0];\r\n\r\n });\r\n this.farmService.getFarms().subscribe(\r\n farms => {\r\n this.farms = farms;\r\n\r\n });\r\n this.fieldService.getFields().subscribe(\r\n results => {\r\n this.fields = results;\r\n }\r\n );\r\n this.traceService.getTraces().subscribe(\r\n results => {\r\n this.traces = results;\r\n }\r\n );\r\n const id = +params.get('id');\r\n\r\n\r\n }\r\n );\r\n\r\n\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Watch for the blur event from any input element on the form.\r\n // This is required because the valueChanges does not provide notification on blur\r\n const controlBlurs: Observable[] = this.formInputElements\r\n .map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n\r\n // Merge the blur event observable with the valueChanges observable\r\n // so we only need to subscribe once. \r\n merge(this.productTypeForm.valueChanges, ...controlBlurs).pipe(\r\n debounceTime(800)\r\n ).subscribe(value => {\r\n this.displayMessage = this.genericValidator.processMessages(this.productTypeForm);\r\n });\r\n }\r\n\r\n displayProductType(productType: ProductType): void {\r\n if (this.productTypeForm) {\r\n this.productTypeForm.reset();\r\n }\r\n productType = this.selectedProductType;\r\n\r\n //if (this.field.id === 0) {\r\n // this.pageTitle = 'Add Field';\r\n //} else {\r\n // this.pageTitle = `Edit Field: ${this.field.fieldName}`;\r\n //}\r\n\r\n // Update the data on the form\r\n this.productTypeForm.patchValue({\r\n name: this.productType.name,\r\n description: this.productType.description,\r\n parentId: this.productType.parentId,\r\n id: productType.id\r\n });\r\n //this.farmForm.setControl('tags', this.fb.array(this.farm.tags || []));\r\n }\r\n\r\n saveProductType(): void {\r\n if (this.productTypeForm.valid) {\r\n if (this.productTypeForm.dirty) {\r\n this.productTypeForm.get(\"id\").setValue(0, {\r\n onlySelf: true\r\n });\r\n\r\n const p = { ...this.productType, ...this.productTypeForm.value };\r\n\r\n //p.name = this.productTypeForm.get(\"productTypeName\");\r\n //p.description = this.productTypeForm.get(\"productTypeDescription\");\r\n this.productTypeService.createProductType(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(p.name),\r\n error: err => this.errorMessage = err\r\n });\r\n\r\n } else {\r\n this.onSaveComplete(\"nothing to save\");\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n saveTraceProduct(): void{\r\n\r\n if (this.traceProductFormGroup.valid) {\r\n if (this.traceProductFormGroup.dirty) {\r\n debugger;\r\n const p = { ...this.traceProduct, ...this.traceProductFormGroup.value };\r\n this.traceProductService.createTraceProduct(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(p.name),\r\n error: err => this.errorMessage = err\r\n });\r\n\r\n } else {\r\n this.onSaveComplete(\"nothing to save\");\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n // Choose farm using select dropdown\r\n changeProductType(id) {\r\n this.selectedProductType = null;\r\n this.subProductTypes = [];\r\n for (var i = 0; i < this.productTypes.length; i++) {\r\n if (this.productTypes[i].id == id) {\r\n this.selectedProductType = this.productTypes[i];\r\n console.log(this.productTypes[i].name);\r\n }\r\n }\r\n\r\n this.getProductTypes(id);\r\n this.productTypeForm.get(\"parentId\").setValue(id, {\r\n onlySelf: true\r\n });\r\n \r\n }\r\n // Choose farm using select dropdown\r\n changeSubProductType(id) {\r\n\r\n if (this.subProductTypes) {\r\n this.productTypes = this.subProductTypes;\r\n\r\n this.subProductTypes = [];\r\n\r\n for (var i = 0; i < this.productTypes.length; i++) {\r\n if (this.productTypes[i].id == id) {\r\n this.selectedProductType = this.productTypes[i];\r\n console.log(this.productTypes[i].name);\r\n }\r\n }\r\n\r\n this.getProductTypes(id);\r\n\r\n this.productTypeForm.get(\"id\").setValue(id, {\r\n onlySelf: true\r\n });\r\n\r\n this.productTypeForm.get(\"parentId\").setValue(id, {\r\n onlySelf: true\r\n });\r\n this.getPlantVarieties(id);\r\n }\r\n }\r\n // Choose farm using select dropdown\r\n changeFarm(id) {\r\n this.filteredFields = [];\r\n for (var i = 0; i < this.farms.length; i++) {\r\n if (this.farms[i].id == id) {\r\n this.selectedFarm= this.farms[i];\r\n console.log(this.farms[i].farmName);\r\n }\r\n }\r\n \r\n this.filteredFields = this.fields.filter((field: Field) => field.farmId == id);\r\n \r\n }\r\n // Choose farm using select dropdown\r\n changeField(id) {\r\n \r\n this.filteredTraces= [];\r\n for (var i = 0; i < this.fields.length; i++) {\r\n if (this.fields[i].id == id) {\r\n this.selectedField = this.fields[i];\r\n console.log(this.fields[i].fieldName);\r\n }\r\n }\r\n this.filteredTraces = this.traces.filter((trace: Trace) => trace.fieldId== id);\r\n \r\n }\r\n changeTrace(id) {\r\n this.selectedTrace = null;\r\n for (var i = 0; i < this.traces.length; i++) {\r\n if (this.traces[i].id == id) {\r\n this.selectedTrace = this.traces[i];\r\n console.log(this.traces[i].code);\r\n }\r\n }\r\n this.traceProductFormGroup.get(\"traceId\").setValue(id, {\r\n onlySelf: true\r\n });\r\n\r\n }\r\n\r\n refreshProduct() {\r\n // Get a List of Crops\r\n this.productTypeService.getProductTypeByParentId(1).subscribe(\r\n items => {\r\n this.productTypes = items;\r\n \r\n });\r\n this.subProductTypes = [];\r\n this.selectedProductType = null;\r\n\r\n }\r\n\r\n onSaveComplete(message: string): void {\r\n\r\n // Reset the form to clear the flags\r\n this.productTypeForm.reset();\r\n this.traceProductFormGroup.reset();\r\n\r\n this._snackBar.open(message, \" was successfully saved \", {\r\n duration: 3000,\r\n });\r\n }\r\n\r\n getProductTypes(id: number): void {\r\n var results: ProductType[] = [];\r\n if (id > 0) {\r\n this.productTypeService.getProductTypeByParentId(id).subscribe(\r\n items => {\r\n if (items) {\r\n\r\n this.subProductTypes = items;\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n openPlantVarietyDialog(): void {\r\n\r\n this.plantVariety.productTypeId = this.selectedProductType.id;\r\n const dialogRef = this.dialog.open(PlantVarietyEditComponent, {\r\n width: '800px',\r\n data: this.plantVariety\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log('The dialog was closed');\r\n this.getPlantVarieties(this.plantVariety.productTypeId);\r\n this.plantVariety = result;\r\n\r\n });\r\n }\r\n editPlantVarietyDialog(item): void {\r\n\r\n \r\n const dialogRef = this.dialog.open(PlantVarietyEditComponent, {\r\n width: '800px',\r\n data: item\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getPlantVarieties(this.plantVariety.productTypeId);\r\n console.log('The dialog was closed');\r\n this.selectedPlant = this.plantVariety = result;\r\n });\r\n }\r\n getPlantVarieties(id: number): void {\r\n this.plantVarieties= [];\r\n if (id > 0) {\r\n this.plantVarietyService.getPlantVarietiesByProductTypeId(id).subscribe(\r\n items => {\r\n if (items) {\r\n\r\n this.plantVarieties= items;\r\n }\r\n });\r\n\r\n\r\n }\r\n \r\n }\r\n AddPlantVarietyToTrace(item) {\r\n \r\n this.selectedPlant = item;\r\n this.productService.getProductByProductTypeAndReference(this.selectedPlant.productTypeId, this.selectedPlant.id).subscribe(\r\n product => {\r\n this.product = product;\r\n this.traceProductFormGroup.get(\"productId\").setValue(this.product.id, {\r\n onlySelf: true\r\n });\r\n this.traceProductFormGroup.get(\"productName\").setValue(this.product.name, {\r\n onlySelf: true\r\n });\r\n\r\n }\r\n );\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductEditGuard implements CanActivate {\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return true;\n }\n \n}\n","export default \".mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-badge-small .mat-badge-content{font-size:9px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 16px}.mat-h5,.mat-typography h5{font:400 calc(14px * .83)/20px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 12px}.mat-h6,.mat-typography h6{font:400 calc(14px * .67)/20px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 12px}.mat-body-2,.mat-body-strong{font:500 14px/24px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-body p,.mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-caption,.mat-small{font:400 12px/20px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,\\\"Helvetica Neue\\\",sans-serif;letter-spacing:-.05em;margin:0 0 56px}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,\\\"Helvetica Neue\\\",sans-serif;letter-spacing:-.02em;margin:0 0 64px}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,\\\"Helvetica Neue\\\",sans-serif;letter-spacing:-.005em;margin:0 0 64px}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-button,.mat-fab,.mat-flat-button,.mat-icon-button,.mat-mini-fab,.mat-raised-button,.mat-stroked-button{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:14px;font-weight:500}.mat-button-toggle{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-card{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-content,.mat-card-subtitle{font-size:14px}.mat-checkbox{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-remove.mat-icon,.mat-chip .mat-chip-trailing-icon.mat-icon{font-size:18px}.mat-table{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell,.mat-footer-cell{font-size:14px}.mat-calendar{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-expansion-panel-header{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-form-field-wrapper{padding-bottom:1.34375em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.5em 0;border-top:.84375em solid transparent}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.33333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.33334%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.66667em;top:calc(100% - 1.79167em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);-ms-transform:translateY(-1.28124em) scale(.75);width:133.33334%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);-ms-transform:translateY(-1.28123em) scale(.75);width:133.33335%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.54167em;top:calc(100% - 1.66667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em 0}.mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-.5em}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.33333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.33334%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0 1em 0}.mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-.25em}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.33333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.33334%}.mat-grid-tile-footer,.mat-grid-tile-header{font-size:14px}.mat-grid-tile-footer .mat-line,.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2),.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:14px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:12px}.mat-radio-button{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-select{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-slider-thumb-label-text{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:12px;font-weight:500}.mat-stepper-horizontal,.mat-stepper-vertical{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:400}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,\\\"Helvetica Neue\\\",sans-serif;margin:0}.mat-tooltip{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-list-option{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-subheader{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-simple-snackbar{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-tree{font-family:Roboto,\\\"Helvetica Neue\\\",sans-serif}.mat-nested-tree-node,.mat-tree-node{font-weight:400;font-size:14px}.mat-ripple{overflow:hidden;position:relative}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0s cubic-bezier(0,0,.2,1);transform:scale(0)}@media (-ms-high-contrast:active){.mat-ripple-element{display:none}}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-global-overlay-wrapper,.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.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 .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}@media screen and (-ms-high-contrast:active){.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}@-webkit-keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-start{/*!*/}@-webkit-keyframes cdk-text-field-autofill-end{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{-webkit-animation-name:cdk-text-field-autofill-start;animation-name:cdk-text-field-autofill-start}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){-webkit-animation-name:cdk-text-field-autofill-end;animation-name:cdk-text-field-autofill-end}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{height:auto!important;overflow:hidden!important;padding:2px 0!important;box-sizing:content-box!important}.mat-ripple-element{background-color:rgba(0,0,0,.1)}.mat-option{color:rgba(0,0,0,.87)}.mat-option:focus:not(.mat-option-disabled),.mat-option:hover:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-active{background:rgba(0,0,0,.04);color:rgba(0,0,0,.87)}.mat-option.mat-option-disabled{color:rgba(0,0,0,.38)}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#3f51b5}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#ff4081}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#f44336}.mat-optgroup-label{color:rgba(0,0,0,.54)}.mat-optgroup-disabled .mat-optgroup-label{color:rgba(0,0,0,.38)}.mat-pseudo-checkbox{color:rgba(0,0,0,.54)}.mat-pseudo-checkbox::after{color:#fafafa}.mat-pseudo-checkbox-disabled{color:#b0b0b0}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#3f51b5}.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate,.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate{background:#ff4081}.mat-warn .mat-pseudo-checkbox-checked,.mat-warn .mat-pseudo-checkbox-indeterminate{background:#f44336}.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.mat-elevation-z0{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-elevation-z1{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mat-elevation-z2{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-elevation-z3{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.mat-elevation-z4{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-elevation-z5{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.mat-elevation-z6{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-elevation-z7{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.mat-elevation-z8{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-elevation-z9{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.mat-elevation-z10{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.mat-elevation-z11{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.mat-elevation-z12{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-elevation-z13{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.mat-elevation-z14{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.mat-elevation-z15{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.mat-elevation-z16{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mat-elevation-z17{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.mat-elevation-z18{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.mat-elevation-z19{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.mat-elevation-z20{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.mat-elevation-z21{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.mat-elevation-z22{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.mat-elevation-z23{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.mat-elevation-z24{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.mat-app-background{background-color:#fafafa;color:rgba(0,0,0,.87)}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#fff;color:rgba(0,0,0,.87)}.mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:rgba(0,0,0,.87)}.mat-badge-content{color:#fff;background:#3f51b5}@media (-ms-high-contrast:active){.mat-badge-content{outline:solid 1px;border-radius:0}}.mat-badge-accent .mat-badge-content{background:#ff4081;color:#fff}.mat-badge-warn .mat-badge-content{color:#fff;background:#f44336}.mat-badge{position:relative}.mat-badge-hidden .mat-badge-content{display:none}.mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:rgba(0,0,0,.38)}.mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.mat-badge-content._mat-animation-noopable,.ng-animate-disabled .mat-badge-content{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.mat-bottom-sheet-container{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);background:#fff;color:rgba(0,0,0,.87)}.mat-button,.mat-icon-button,.mat-stroked-button{color:inherit;background:0 0}.mat-button.mat-primary,.mat-icon-button.mat-primary,.mat-stroked-button.mat-primary{color:#3f51b5}.mat-button.mat-accent,.mat-icon-button.mat-accent,.mat-stroked-button.mat-accent{color:#ff4081}.mat-button.mat-warn,.mat-icon-button.mat-warn,.mat-stroked-button.mat-warn{color:#f44336}.mat-button.mat-accent[disabled],.mat-button.mat-primary[disabled],.mat-button.mat-warn[disabled],.mat-button[disabled][disabled],.mat-icon-button.mat-accent[disabled],.mat-icon-button.mat-primary[disabled],.mat-icon-button.mat-warn[disabled],.mat-icon-button[disabled][disabled],.mat-stroked-button.mat-accent[disabled],.mat-stroked-button.mat-primary[disabled],.mat-stroked-button.mat-warn[disabled],.mat-stroked-button[disabled][disabled]{color:rgba(0,0,0,.26)}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay,.mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#3f51b5}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay,.mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#ff4081}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay,.mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#f44336}.mat-button[disabled] .mat-button-focus-overlay,.mat-icon-button[disabled] .mat-button-focus-overlay,.mat-stroked-button[disabled] .mat-button-focus-overlay{background-color:transparent}.mat-button .mat-ripple-element,.mat-icon-button .mat-ripple-element,.mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.mat-button-focus-overlay{background:#000}.mat-stroked-button:not([disabled]){border-color:rgba(0,0,0,.12)}.mat-fab,.mat-flat-button,.mat-mini-fab,.mat-raised-button{color:rgba(0,0,0,.87);background-color:#fff}.mat-fab.mat-primary,.mat-flat-button.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{color:#fff}.mat-fab.mat-accent,.mat-flat-button.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{color:#fff}.mat-fab.mat-warn,.mat-flat-button.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{color:#fff}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-flat-button.mat-accent[disabled],.mat-flat-button.mat-primary[disabled],.mat-flat-button.mat-warn[disabled],.mat-flat-button[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{color:rgba(0,0,0,.26)}.mat-fab.mat-primary,.mat-flat-button.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{background-color:#3f51b5}.mat-fab.mat-accent,.mat-flat-button.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{background-color:#ff4081}.mat-fab.mat-warn,.mat-flat-button.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{background-color:#f44336}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-flat-button.mat-accent[disabled],.mat-flat-button.mat-primary[disabled],.mat-flat-button.mat-warn[disabled],.mat-flat-button[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{background-color:rgba(0,0,0,.12)}.mat-fab.mat-primary .mat-ripple-element,.mat-flat-button.mat-primary .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element{background-color:rgba(255,255,255,.1)}.mat-fab.mat-accent .mat-ripple-element,.mat-flat-button.mat-accent .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element{background-color:rgba(255,255,255,.1)}.mat-fab.mat-warn .mat-ripple-element,.mat-flat-button.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element{background-color:rgba(255,255,255,.1)}.mat-flat-button:not([class*=mat-elevation-z]),.mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-raised-button[disabled]:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-fab:not([class*=mat-elevation-z]),.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]),.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-fab[disabled]:not([class*=mat-elevation-z]),.mat-mini-fab[disabled]:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-button-toggle-group,.mat-button-toggle-standalone{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none}.mat-button-toggle{color:rgba(0,0,0,.38)}.mat-button-toggle .mat-button-toggle-focus-overlay{background-color:rgba(0,0,0,.12)}.mat-button-toggle-appearance-standard{color:rgba(0,0,0,.87);background:#fff}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px rgba(0,0,0,.12)}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px rgba(0,0,0,.12)}.mat-button-toggle-checked{background-color:#e0e0e0;color:rgba(0,0,0,.54)}.mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:rgba(0,0,0,.87)}.mat-button-toggle-disabled{color:rgba(0,0,0,.26);background-color:#eee}.mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border:solid 1px rgba(0,0,0,.12)}.mat-card{background:#fff;color:rgba(0,0,0,.87)}.mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-card-subtitle{color:rgba(0,0,0,.54)}.mat-checkbox-frame{border-color:rgba(0,0,0,.54)}.mat-checkbox-checkmark{fill:#fafafa}.mat-checkbox-checkmark-path{stroke:#fafafa!important}@media (-ms-high-contrast:black-on-white){.mat-checkbox-checkmark-path{stroke:#000!important}}.mat-checkbox-mixedmark{background-color:#fafafa}.mat-checkbox-checked.mat-primary .mat-checkbox-background,.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#3f51b5}.mat-checkbox-checked.mat-accent .mat-checkbox-background,.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#ff4081}.mat-checkbox-checked.mat-warn .mat-checkbox-background,.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#f44336}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.mat-checkbox-disabled .mat-checkbox-label{color:rgba(0,0,0,.54)}@media (-ms-high-contrast:active){.mat-checkbox-disabled{opacity:.5}}@media (-ms-high-contrast:active){.mat-checkbox-background{background:0 0}}.mat-checkbox .mat-ripple-element{background-color:#000}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#3f51b5}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#ff4081}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#f44336}.mat-chip.mat-standard-chip{background-color:#e0e0e0;color:rgba(0,0,0,.87)}.mat-chip.mat-standard-chip .mat-chip-remove{color:rgba(0,0,0,.87);opacity:.4}.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.mat-chip.mat-standard-chip::after{background:#000}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#3f51b5;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background:rgba(255,255,255,.1)}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#f44336;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background:rgba(255,255,255,.1)}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#ff4081;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background:rgba(255,255,255,.1)}.mat-table{background:#fff}.mat-table tbody,.mat-table tfoot,.mat-table thead,.mat-table-sticky,[mat-footer-row],[mat-header-row],[mat-row],mat-footer-row,mat-header-row,mat-row{background:inherit}mat-footer-row,mat-header-row,mat-row,td.mat-cell,td.mat-footer-cell,th.mat-header-cell{border-bottom-color:rgba(0,0,0,.12)}.mat-header-cell{color:rgba(0,0,0,.54)}.mat-cell,.mat-footer-cell{color:rgba(0,0,0,.87)}.mat-calendar-arrow{border-top-color:rgba(0,0,0,.54)}.mat-datepicker-content .mat-calendar-next-button,.mat-datepicker-content .mat-calendar-previous-button,.mat-datepicker-toggle{color:rgba(0,0,0,.54)}.mat-calendar-table-header{color:rgba(0,0,0,.38)}.mat-calendar-table-header-divider::after{background:rgba(0,0,0,.12)}.mat-calendar-body-label{color:rgba(0,0,0,.54)}.mat-calendar-body-cell-content{color:rgba(0,0,0,.87);border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){color:rgba(0,0,0,.38)}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){background-color:rgba(0,0,0,.04)}.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,.38)}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,.18)}.mat-calendar-body-selected{background-color:#3f51b5;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(63,81,181,.4)}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);background-color:#fff;color:rgba(0,0,0,.87)}.mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#ff4081;color:#fff}.mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(255,64,129,.4)}.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#f44336;color:#fff}.mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(244,67,54,.4)}.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content-touch{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-datepicker-toggle-active{color:#3f51b5}.mat-datepicker-toggle-active.mat-accent{color:#ff4081}.mat-datepicker-toggle-active.mat-warn{color:#f44336}.mat-dialog-container{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);background:#fff;color:rgba(0,0,0,.87)}.mat-divider{border-top-color:rgba(0,0,0,.12)}.mat-divider-vertical{border-right-color:rgba(0,0,0,.12)}.mat-expansion-panel{background:#fff;color:rgba(0,0,0,.87)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-action-row{border-top-color:rgba(0,0,0,.12)}.mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover:none){.mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.mat-expansion-panel-header-title{color:rgba(0,0,0,.87)}.mat-expansion-indicator::after,.mat-expansion-panel-header-description{color:rgba(0,0,0,.54)}.mat-expansion-panel-header[aria-disabled=true]{color:rgba(0,0,0,.26)}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.mat-form-field-label{color:rgba(0,0,0,.6)}.mat-hint{color:rgba(0,0,0,.6)}.mat-form-field.mat-focused .mat-form-field-label{color:#3f51b5}.mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#ff4081}.mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#ff4081}.mat-form-field-ripple{background-color:rgba(0,0,0,.87)}.mat-form-field.mat-focused .mat-form-field-ripple{background-color:#3f51b5}.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#ff4081}.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#f44336}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after{color:#3f51b5}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after{color:#ff4081}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-label{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker,.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#f44336}.mat-error{color:#f44336}.mat-form-field-appearance-legacy .mat-form-field-label{color:rgba(0,0,0,.54)}.mat-form-field-appearance-legacy .mat-hint{color:rgba(0,0,0,.54)}.mat-form-field-appearance-legacy .mat-form-field-underline{background-color:rgba(0,0,0,.42)}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-standard .mat-form-field-underline{background-color:rgba(0,0,0,.42)}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-fill .mat-form-field-flex{background-color:rgba(0,0,0,.04)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:rgba(0,0,0,.02)}.mat-form-field-appearance-fill .mat-form-field-underline::before{background-color:rgba(0,0,0,.42)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:rgba(0,0,0,.38)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before{background-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline{color:rgba(0,0,0,.12)}.mat-form-field-appearance-outline .mat-form-field-outline-thick{color:rgba(0,0,0,.87)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#3f51b5}.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#ff4081}.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick{color:#f44336}.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#f44336}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:rgba(0,0,0,.38)}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:rgba(0,0,0,.06)}.mat-icon.mat-primary{color:#3f51b5}.mat-icon.mat-accent{color:#ff4081}.mat-icon.mat-warn{color:#f44336}.mat-form-field-type-mat-native-select .mat-form-field-infix::after{color:rgba(0,0,0,.54)}.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after,.mat-input-element:disabled{color:rgba(0,0,0,.38)}.mat-input-element{caret-color:#3f51b5}.mat-input-element::-webkit-input-placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-moz-placeholder{color:rgba(0,0,0,.42)}.mat-input-element:-ms-input-placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-ms-input-placeholder{color:rgba(0,0,0,.42)}.mat-input-element::placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-moz-placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-webkit-input-placeholder{color:rgba(0,0,0,.42)}.mat-input-element:-ms-input-placeholder{color:rgba(0,0,0,.42)}.mat-accent .mat-input-element{caret-color:#ff4081}.mat-form-field-invalid .mat-input-element,.mat-warn .mat-input-element{caret-color:#f44336}.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after{color:#f44336}.mat-list-base .mat-list-item{color:rgba(0,0,0,.87)}.mat-list-base .mat-list-option{color:rgba(0,0,0,.87)}.mat-list-base .mat-subheader{color:rgba(0,0,0,.54)}.mat-list-item-disabled{background-color:#eee}.mat-action-list .mat-list-item:focus,.mat-action-list .mat-list-item:hover,.mat-list-option:focus,.mat-list-option:hover,.mat-nav-list .mat-list-item:focus,.mat-nav-list .mat-list-item:hover{background:rgba(0,0,0,.04)}.mat-menu-panel{background:#fff}.mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-menu-item{background:0 0;color:rgba(0,0,0,.87)}.mat-menu-item[disabled],.mat-menu-item[disabled]::after{color:rgba(0,0,0,.38)}.mat-menu-item .mat-icon-no-color,.mat-menu-item-submenu-trigger::after{color:rgba(0,0,0,.54)}.mat-menu-item-highlighted:not([disabled]),.mat-menu-item.cdk-keyboard-focused:not([disabled]),.mat-menu-item.cdk-program-focused:not([disabled]),.mat-menu-item:hover:not([disabled]){background:rgba(0,0,0,.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:rgba(0,0,0,.54)}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.mat-paginator-first,.mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-last{border-color:rgba(0,0,0,.38)}.mat-progress-bar-background{fill:#c5cae9}.mat-progress-bar-buffer{background-color:#c5cae9}.mat-progress-bar-fill::after{background-color:#3f51b5}.mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#ff80ab}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ff80ab}.mat-progress-bar.mat-accent .mat-progress-bar-fill::after{background-color:#ff4081}.mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-fill::after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#3f51b5}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#ff4081}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:rgba(0,0,0,.54)}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#3f51b5}.mat-radio-button.mat-primary .mat-radio-inner-circle,.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#3f51b5}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#ff4081}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#ff4081}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#f44336}.mat-radio-button.mat-warn .mat-radio-inner-circle,.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#f44336}.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle,.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle{border-color:rgba(0,0,0,.38)}.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle,.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:rgba(0,0,0,.38)}.mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:rgba(0,0,0,.38)}.mat-radio-button .mat-ripple-element{background-color:#000}.mat-select-value{color:rgba(0,0,0,.87)}.mat-select-placeholder{color:rgba(0,0,0,.42)}.mat-select-disabled .mat-select-value{color:rgba(0,0,0,.38)}.mat-select-arrow{color:rgba(0,0,0,.54)}.mat-select-panel{background:#fff}.mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#3f51b5}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#ff4081}.mat-form-field.mat-focused.mat-warn .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:rgba(0,0,0,.38)}.mat-drawer-container{background-color:#fafafa;color:rgba(0,0,0,.87)}.mat-drawer{background-color:#fff;color:rgba(0,0,0,.87)}.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.mat-drawer-side.mat-drawer-end{border-left:solid 1px rgba(0,0,0,.12);border-right:none}[dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.mat-drawer-backdrop.mat-drawer-shown{background-color:rgba(0,0,0,.6)}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#ff4081}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:rgba(255,64,129,.54)}.mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#ff4081}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#3f51b5}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:rgba(63,81,181,.54)}.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#3f51b5}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#f44336}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:rgba(244,67,54,.54)}.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#f44336}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);background-color:#fafafa}.mat-slide-toggle-bar{background-color:rgba(0,0,0,.38)}.mat-slider-track-background{background-color:rgba(0,0,0,.26)}.mat-primary .mat-slider-thumb,.mat-primary .mat-slider-thumb-label,.mat-primary .mat-slider-track-fill{background-color:#3f51b5}.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-accent .mat-slider-thumb,.mat-accent .mat-slider-thumb-label,.mat-accent .mat-slider-track-fill{background-color:#ff4081}.mat-accent .mat-slider-thumb-label-text{color:#fff}.mat-warn .mat-slider-thumb,.mat-warn .mat-slider-thumb-label,.mat-warn .mat-slider-track-fill{background-color:#f44336}.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider-focus-ring{background-color:rgba(255,64,129,.2)}.cdk-focused .mat-slider-track-background,.mat-slider:hover .mat-slider-track-background{background-color:rgba(0,0,0,.38)}.mat-slider-disabled .mat-slider-thumb,.mat-slider-disabled .mat-slider-track-background,.mat-slider-disabled .mat-slider-track-fill{background-color:rgba(0,0,0,.26)}.mat-slider-disabled:hover .mat-slider-track-background{background-color:rgba(0,0,0,.26)}.mat-slider-min-value .mat-slider-focus-ring{background-color:rgba(0,0,0,.12)}.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:rgba(0,0,0,.87)}.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:rgba(0,0,0,.26)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:rgba(0,0,0,.26);background-color:transparent}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:rgba(0,0,0,.38)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:rgba(0,0,0,.26)}.mat-slider-has-ticks .mat-slider-wrapper::after{border-color:rgba(0,0,0,.7)}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover{background-color:rgba(0,0,0,.04)}@media (hover:none){.mat-step-header:hover{background:0 0}}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:rgba(0,0,0,.54)}.mat-step-header .mat-step-icon{background-color:rgba(0,0,0,.54);color:#fff}.mat-step-header .mat-step-icon-selected,.mat-step-header .mat-step-icon-state-done,.mat-step-header .mat-step-icon-state-edit{background-color:#3f51b5;color:#fff}.mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#f44336}.mat-step-header .mat-step-label.mat-step-label-active{color:rgba(0,0,0,.87)}.mat-step-header .mat-step-label.mat-step-label-error{color:#f44336}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#fff}.mat-stepper-vertical-line::before{border-left-color:rgba(0,0,0,.12)}.mat-horizontal-stepper-header::after,.mat-horizontal-stepper-header::before,.mat-stepper-horizontal-line{border-top-color:rgba(0,0,0,.12)}.mat-sort-header-arrow{color:#757575}.mat-tab-header,.mat-tab-nav-bar{border-bottom:1px solid rgba(0,0,0,.12)}.mat-tab-group-inverted-header .mat-tab-header,.mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:rgba(0,0,0,.87)}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.38)}.mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.87)}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.38)}.mat-tab-group[class*=mat-background-] .mat-tab-header,.mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(197,202,233,.3)}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#3f51b5}.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(255,128,171,.3)}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#ff4081}.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#f44336}.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(197,202,233,.3)}.mat-tab-group.mat-background-primary .mat-tab-header,.mat-tab-group.mat-background-primary .mat-tab-header-pagination,.mat-tab-group.mat-background-primary .mat-tab-links,.mat-tab-nav-bar.mat-background-primary .mat-tab-header,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-primary .mat-tab-links{background-color:#3f51b5}.mat-tab-group.mat-background-primary .mat-tab-label,.mat-tab-group.mat-background-primary .mat-tab-link,.mat-tab-nav-bar.mat-background-primary .mat-tab-label,.mat-tab-nav-bar.mat-background-primary .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-primary .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(255,128,171,.3)}.mat-tab-group.mat-background-accent .mat-tab-header,.mat-tab-group.mat-background-accent .mat-tab-header-pagination,.mat-tab-group.mat-background-accent .mat-tab-links,.mat-tab-nav-bar.mat-background-accent .mat-tab-header,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-accent .mat-tab-links{background-color:#ff4081}.mat-tab-group.mat-background-accent .mat-tab-label,.mat-tab-group.mat-background-accent .mat-tab-link,.mat-tab-nav-bar.mat-background-accent .mat-tab-label,.mat-tab-nav-bar.mat-background-accent .mat-tab-link{color:#fff}.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-accent .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-background-warn .mat-tab-header,.mat-tab-group.mat-background-warn .mat-tab-header-pagination,.mat-tab-group.mat-background-warn .mat-tab-links,.mat-tab-nav-bar.mat-background-warn .mat-tab-header,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-warn .mat-tab-links{background-color:#f44336}.mat-tab-group.mat-background-warn .mat-tab-label,.mat-tab-group.mat-background-warn .mat-tab-link,.mat-tab-nav-bar.mat-background-warn .mat-tab-label,.mat-tab-nav-bar.mat-background-warn .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-warn .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-toolbar{background:#f5f5f5;color:rgba(0,0,0,.87)}.mat-toolbar.mat-primary{background:#3f51b5;color:#fff}.mat-toolbar.mat-accent{background:#ff4081;color:#fff}.mat-toolbar.mat-warn{background:#f44336;color:#fff}.mat-toolbar .mat-focused .mat-form-field-ripple,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-form-field-underline{background-color:currentColor}.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-select-value{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-tooltip{background:rgba(97,97,97,.9)}.mat-tree{background:#fff}.mat-nested-tree-node,.mat-tree-node{color:rgba(0,0,0,.87)}.mat-snack-bar-container{color:rgba(255,255,255,.7);background:#323232;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-simple-snackbar-action{color:#ff4081}html, body {\\n height: 100%;\\n}body {\\n margin: 0;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}form {\\n width: 420px;\\n margin: 35px auto 100px;\\n display: block;\\n float: none;\\n}.mat-form-field {\\n width: 100%;\\n}.misc-bottom-padding {\\n margin: 8px 0 20px;\\n}.misc-bottom-padding mat-label {\\n margin-right: 15px;\\n}.mat-radio-label {\\n margin: 0 15px 0 0;\\n}.title-center {\\n margin: 0 auto;\\n}.button-wrapper {\\n margin-top: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9wcmVidWlsdC10aGVtZXMvaW5kaWdvLXBpbmsuY3NzIiwic3JjL2FwcC9kYXNoYm9hcmQvcGFnZXMvcHJvZHVjdC9DOlxcRGV2ZWxvcG1lbnRzXFxDdXN0b21lcnNcXEZhcm1BcHBcXEZhcm1BcHAuV2ViL3NyY1xcYXBwXFxkYXNoYm9hcmRcXHBhZ2VzXFxwcm9kdWN0XFxwcm9kdWN0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9kYXNoYm9hcmQvcGFnZXMvcHJvZHVjdC9wcm9kdWN0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1CQUFtQixlQUFlLENBQUMsY0FBYyxDQUFDLDhDQUE4QyxDQUFDLG9DQUFvQyxhQUFhLENBQUMsb0NBQW9DLGNBQWMsQ0FBQyx5Q0FBeUMscURBQXFELENBQUMsZUFBZSxDQUFDLHNDQUFzQyxxREFBcUQsQ0FBQyxlQUFlLENBQUMsNkNBQTZDLHFEQUFxRCxDQUFDLGVBQWUsQ0FBQyw2Q0FBNkMscURBQXFELENBQUMsZUFBZSxDQUFDLDJCQUEyQixpRUFBaUUsQ0FBQyxlQUFlLENBQUMsMkJBQTJCLGlFQUFpRSxDQUFDLGVBQWUsQ0FBQyw2QkFBNkIscURBQXFELENBQUMsc0NBQXNDLHFEQUFxRCxDQUFDLDRDQUE0QyxlQUFlLENBQUMsd0JBQXdCLHFEQUFxRCxDQUFDLDhDQUE4Qyx1REFBdUQsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsOENBQThDLHFEQUFxRCxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyw4Q0FBOEMscURBQXFELENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLDhDQUE4QyxxREFBcUQsQ0FBQyxlQUFlLENBQUMsNEJBQTRCLHFEQUFxRCxDQUFDLDRHQUE0Ryw4Q0FBOEMsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLG1CQUFtQiw4Q0FBOEMsQ0FBQyxVQUFVLDhDQUE4QyxDQUFDLGdCQUFnQixjQUFjLENB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ZHVjdC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXQtYmFkZ2UtY29udGVudHtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEycHg7Zm9udC1mYW1pbHk6Um9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmfS5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50e2ZvbnQtc2l6ZTo5cHh9Lm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnR7Zm9udC1zaXplOjI0cHh9Lm1hdC1oMSwubWF0LWhlYWRsaW5lLC5tYXQtdHlwb2dyYXBoeSBoMXtmb250OjQwMCAyNHB4LzMycHggUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO21hcmdpbjowIDAgMTZweH0ubWF0LWgyLC5tYXQtdGl0bGUsLm1hdC10eXBvZ3JhcGh5IGgye2ZvbnQ6NTAwIDIwcHgvMzJweCBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDMsLm1hdC1zdWJoZWFkaW5nLTIsLm1hdC10eXBvZ3JhcGh5IGgze2ZvbnQ6NDAwIDE2cHgvMjhweCBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDQsLm1hdC1zdWJoZWFkaW5nLTEsLm1hdC10eXBvZ3JhcGh5IGg0e2ZvbnQ6NDAwIDE1cHgvMjRweCBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxNnB4fS5tYXQtaDUsLm1hdC10eXBvZ3JhcGh5IGg1e2ZvbnQ6NDAwIGNhbGMoMTRweCAqIC44MykvMjBweCBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtaDYsLm1hdC10eXBvZ3JhcGh5IGg2e2ZvbnQ6NDAwIGNhbGMoMTRweCAqIC42NykvMjBweCBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7bWFyZ2luOjAgMCAxMnB4fS5tYXQtYm9keS0yLC5tYXQtYm9keS1zdHJvbmd7Zm9udDo1MDAgMTRweC8yNHB4IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZn0ubWF0LWJvZHksLm1hdC1ib2R5LTEsLm1hdC10eXBvZ3JhcGh5e2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1ib2R5IHAsLm1hdC1ib2R5LTEgcCwubWF0LXR5cG9ncmFwaHkgcHttYXJnaW46MCAwIDEycHh9Lm1hdC1jYXB0aW9uLC5tYXQtc21hbGx7Zm9udDo0MDAgMTJweC8yMHB4IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZn0ubWF0LWRpc3BsYXktNCwubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTR7Zm9udDozMDAgMTEycHgvMTEycHggUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOi0uMDVlbTttYXJnaW46MCAwIDU2cHh9Lm1hdC1kaXNwbGF5LTMsLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0ze2ZvbnQ6NDAwIDU2cHgvNTZweCBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LS4wMmVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMiwubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTJ7Zm9udDo0MDAgNDVweC80OHB4IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzotLjAwNWVtO21hcmdpbjowIDAgNjRweH0ubWF0LWRpc3BsYXktMSwubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTF7Zm9udDo0MDAgMzRweC80MHB4IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjttYXJnaW46MCAwIDY0cHh9Lm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVye2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1idXR0b24sLm1hdC1mYWIsLm1hdC1mbGF0LWJ1dHRvbiwubWF0LWljb24tYnV0dG9uLC5tYXQtbWluaS1mYWIsLm1hdC1yYWlzZWQtYnV0dG9uLC5tYXQtc3Ryb2tlZC1idXR0b257Zm9udC1mYW1pbHk6Um9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWJ1dHRvbi10b2dnbGV7Zm9udC1mYW1pbHk6Um9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmfS5tYXQtY2FyZHtmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1jYXJkLXRpdGxle2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZXtmb250LXNpemU6MjBweH0ubWF0LWNhcmQtY29udGVudCwubWF0LWNhcmQtc3VidGl0bGV7Zm9udC1zaXplOjE0cHh9Lm1hdC1jaGVja2JveHtmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbHtsaW5lLWhlaWdodDoyNHB4fS5tYXQtY2hpcHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDB9Lm1hdC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24sLm1hdC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29ue2ZvbnQtc2l6ZToxOHB4fS5tYXQtdGFibGV7Zm9udC1mYW1pbHk6Um9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmfS5tYXQtaGVhZGVyLWNlbGx7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtY2VsbCwubWF0LWZvb3Rlci1jZWxse2ZvbnQtc2l6ZToxNHB4fS5tYXQtY2FsZW5kYXJ7Zm9udC1mYW1pbHk6Um9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmfS5tYXQtY2FsZW5kYXItYm9keXtmb250LXNpemU6MTNweH0ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9ue2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aHtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm1hdC1kaWFsb2ctdGl0bGV7Zm9udDo1MDAgMjBweC8zMnB4IFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZn0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJ7Zm9udC1mYW1pbHk6Um9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50e2ZvbnQ6NDAwIDE0cHgvMjBweCBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1mb3JtLWZpZWxke2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjEyNTtmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJ7cGFkZGluZy1ib3R0b206MS4zNDM3NWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29ue2ZvbnQtc2l6ZToxNTAlO2xpbmUtaGVpZ2h0OjEuMTI1fS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiwubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b257aGVpZ2h0OjEuNWVtO3dpZHRoOjEuNWVtfS5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbntoZWlnaHQ6MS4xMjVlbTtsaW5lLWhlaWdodDoxLjEyNX0ubWF0LWZvcm0tZmllbGQtaW5maXh7cGFkZGluZzouNWVtIDA7Ym9yZGVyLXRvcDouODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudH0ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoLjc1KTt3aWR0aDoxMzMuMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSguNzUpO3dpZHRoOjEzMy4zMzMzNCV9Lm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJ7dG9wOi0uODQzNzVlbTtwYWRkaW5nLXRvcDouODQzNzVlbX0ubWF0LWZvcm0tZmllbGQtbGFiZWx7dG9wOjEuMzQzNzVlbX0ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JvdHRvbToxLjM0Mzc1ZW19Lm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye2ZvbnQtc2l6ZTo3NSU7bWFyZ2luLXRvcDouNjY2NjdlbTt0b3A6Y2FsYygxMDAlIC0gMS43OTE2N2VtKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJ7cGFkZGluZy1ib3R0b206MS4yNWVtfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtaW5maXh7cGFkZGluZzouNDM3NWVtIDB9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cysubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooLjAwMXB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoLjc1KTt3aWR0aDoxMzMuMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWiguMDAxMDFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKC43NSk7d2lkdGg6MTMzLjMzMzM0JX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWiguMDAxMDJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKC43NSk7d2lkdGg6MTMzLjMzMzM1JX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjI4MTI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7Ym90dG9tOjEuMjVlbX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVye21hcmdpbi10b3A6LjU0MTY3ZW07dG9wOmNhbGMoMTAwJSAtIDEuNjY2NjdlbSl9QG1lZGlhIHByaW50ey5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSguNzUpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoLjc1KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSguNzUpfX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOi4yNWVtIDAgLjc1ZW0gMH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0b3A6MS4wOTM3NWVtO21hcmdpbi10b3A6LS41ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLS41OTM3NWVtKSBzY2FsZSguNzUpO3dpZHRoOjEzMy4zMzMzMyV9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pKy5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbHt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtLjU5Mzc0ZW0pIHNjYWxlKC43NSk7d2lkdGg6MTMzLjMzMzM0JX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeHtwYWRkaW5nOjFlbSAwIDFlbSAwfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWxhYmVse3RvcDoxLjg0Mzc1ZW07bWFyZ2luLXRvcDotLjI1ZW19Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMrLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoLjc1KTt3aWR0aDoxMzMuMzMzMzMlfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSsubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWx7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoLjc1KTt3aWR0aDoxMzMuMzMzMzQlfS5tYXQtZ3JpZC10aWxlLWZvb3RlciwubWF0LWdyaWQtdGlsZS1oZWFkZXJ7Zm9udC1zaXplOjE0cHh9Lm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZSwubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLC5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMil7Zm9udC1zaXplOjEycHh9aW5wdXQubWF0LWlucHV0LWVsZW1lbnR7bWFyZ2luLXRvcDotLjA2MjVlbX0ubWF0LW1lbnUtaXRlbXtmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwfS5tYXQtcGFnaW5hdG9yLC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2Vye2ZvbnQtZmFtaWx5OlJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MTJweH0ubWF0LXJhZGlvLWJ1dHRvbntmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1zZWxlY3R7Zm9udC1mYW1pbHk6Um9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmfS5tYXQtc2VsZWN0LXRyaWdnZXJ7aGVpZ2h0OjEuMTI1ZW19Lm1hdC1zbGlkZS10b2dnbGUtY29udGVudHtmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtc3RlcHBlci1ob3Jpem9udGFsLC5tYXQtc3RlcHBlci12ZXJ0aWNhbHtmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1zdGVwLWxhYmVse2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9ye2ZvbnQtd2VpZ2h0OjQwMH0ubWF0LXN0ZXAtbGFiZWwtZXJyb3J7Zm9udC1zaXplOjE0cHh9Lm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVke2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMH0ubWF0LXRhYi1ncm91cHtmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC10YWItbGFiZWwsLm1hdC10YWItbGlua3tmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdG9vbGJhciwubWF0LXRvb2xiYXIgaDEsLm1hdC10b29sYmFyIGgyLC5tYXQtdG9vbGJhciBoMywubWF0LXRvb2xiYXIgaDQsLm1hdC10b29sYmFyIGg1LC5tYXQtdG9vbGJhciBoNntmb250OjUwMCAyMHB4LzMycHggUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO21hcmdpbjowfS5tYXQtdG9vbHRpcHtmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjZweH0ubWF0LXRvb2x0aXAtaGFuZHNldHtmb250LXNpemU6MTRweDtwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4fS5tYXQtbGlzdC1pdGVte2ZvbnQtZmFtaWx5OlJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZn0ubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtZmFtaWx5OlJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZn0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbXtmb250LXNpemU6MTZweH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmV7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtc2l6ZToxNnB4fS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKXtmb250LXNpemU6MTRweH0ubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlcntmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbXtmb250LXNpemU6MTJweH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5le3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9ue2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZXt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpe2ZvbnQtc2l6ZToxMnB4fS5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlcntmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtb3B0aW9ue2ZvbnQtZmFtaWx5OlJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsc2Fucy1zZXJpZjtmb250LXNpemU6MTZweH0ubWF0LW9wdGdyb3VwLWxhYmVse2ZvbnQ6NTAwIDE0cHgvMjRweCBSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1zaW1wbGUtc25hY2tiYXJ7Zm9udC1mYW1pbHk6Um9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4fS5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbntsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwfS5tYXQtdHJlZXtmb250LWZhbWlseTpSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLHNhbnMtc2VyaWZ9Lm1hdC1uZXN0ZWQtdHJlZS1ub2RlLC5tYXQtdHJlZS1ub2Rle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTRweH0ubWF0LXJpcHBsZXtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWR7b3ZlcmZsb3c6dmlzaWJsZX0ubWF0LXJpcHBsZS1lbGVtZW50e3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5LHRyYW5zZm9ybSAwcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zZm9ybTpzY2FsZSgwKX1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSl7Lm1hdC1yaXBwbGUtZWxlbWVudHtkaXNwbGF5Om5vbmV9fS5jZGstdmlzdWFsbHktaGlkZGVue2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O291dGxpbmU6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZX0uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIsLmNkay1vdmVybGF5LWNvbnRhaW5lcntwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5jZGstb3ZlcmxheS1jb250YWluZXJ7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1jb250YWluZXI6ZW1wdHl7ZGlzcGxheTpub25lfS5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlcntkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwfS5jZGstb3ZlcmxheS1wYW5le3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOmF1dG87Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6MTAwMDtkaXNwbGF5OmZsZXg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jZGstb3ZlcmxheS1iYWNrZHJvcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjEwMDA7cG9pbnRlci1ldmVudHM6YXV0bzstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpvcGFjaXR5IC40cyBjdWJpYy1iZXppZXIoLjI1LC44LC4yNSwxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eToxfUBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpey5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5ne29wYWNpdHk6LjZ9fS5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9we2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMzIpfS5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCwuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5OjB9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3h7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja3twb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfUBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnR7LyohKi99QGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR7LyohKi99LmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxse2FuaW1hdGlvbi1uYW1lOmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0fS5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKXthbmltYXRpb24tbmFtZTpjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmR9dGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXple3Jlc2l6ZTpub25lfXRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmd7aGVpZ2h0OmF1dG8haW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7cGFkZGluZzoycHggMCFpbXBvcnRhbnQ7Ym94LXNpemluZzpjb250ZW50LWJveCFpbXBvcnRhbnR9Lm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tYXQtb3B0aW9ue2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpLC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA0KX0ubWF0LW9wdGlvbi5tYXQtYWN0aXZle2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDQpO2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LW9wdGlvbi5tYXQtb3B0aW9uLWRpc2FibGVke2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCl7Y29sb3I6IzNmNTFiNX0ubWF0LWFjY2VudCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojZmY0MDgxfS5tYXQtd2FybiAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKXtjb2xvcjojZjQ0MzM2fS5tYXQtb3B0Z3JvdXAtbGFiZWx7Y29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1wc2V1ZG8tY2hlY2tib3h7Y29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtcHNldWRvLWNoZWNrYm94OjphZnRlcntjb2xvcjojZmFmYWZhfS5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVke2NvbG9yOiNiMGIwYjB9Lm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGV7YmFja2dyb3VuZDojM2Y1MWI1fS5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSwubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGV7YmFja2dyb3VuZDojZmY0MDgxfS5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRle2JhY2tncm91bmQ6I2Y0NDMzNn0ubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQsLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVke2JhY2tncm91bmQ6I2IwYjBiMH0ubWF0LWVsZXZhdGlvbi16MHtib3gtc2hhZG93OjAgMCAwIDAgcmdiYSgwLDAsMCwuMiksMCAwIDAgMCByZ2JhKDAsMCwwLC4xNCksMCAwIDAgMCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1lbGV2YXRpb24tejF7Ym94LXNoYWRvdzowIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLC4yKSwwIDFweCAxcHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggM3B4IDAgcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoye2JveC1zaGFkb3c6MCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKX0ubWF0LWVsZXZhdGlvbi16M3tib3gtc2hhZG93OjAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgM3B4IDRweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCA4cHggMCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1lbGV2YXRpb24tejR7Ym94LXNoYWRvdzowIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLC4yKSwwIDRweCA1cHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKX0ubWF0LWVsZXZhdGlvbi16NXtib3gtc2hhZG93OjAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsLjIpLDAgNXB4IDhweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxNHB4IDAgcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXo2e2JveC1zaGFkb3c6MCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwuMiksMCA2cHggMTBweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxOHB4IDAgcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXo3e2JveC1zaGFkb3c6MCA0cHggNXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCA3cHggMTBweCAxcHggcmdiYSgwLDAsMCwuMTQpLDAgMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWVsZXZhdGlvbi16OHtib3gtc2hhZG93OjAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsLjIpLDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1lbGV2YXRpb24tejl7Ym94LXNoYWRvdzowIDVweCA2cHggLTNweCByZ2JhKDAsMCwwLC4yKSwwIDlweCAxMnB4IDFweCByZ2JhKDAsMCwwLC4xNCksMCAzcHggMTZweCAycHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoxMHtib3gtc2hhZG93OjAgNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsLjIpLDAgMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLC4xNCksMCA0cHggMThweCAzcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoxMXtib3gtc2hhZG93OjAgNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsLjIpLDAgMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLC4xNCksMCA0cHggMjBweCAzcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoxMntib3gtc2hhZG93OjAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsLjIpLDAgMTJweCAxN3B4IDJweCByZ2JhKDAsMCwwLC4xNCksMCA1cHggMjJweCA0cHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoxM3tib3gtc2hhZG93OjAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsLjIpLDAgMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLC4xNCksMCA1cHggMjRweCA0cHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoxNHtib3gtc2hhZG93OjAgN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsLjIpLDAgMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLC4xNCksMCA1cHggMjZweCA0cHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoxNXtib3gtc2hhZG93OjAgOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsLjIpLDAgMTVweCAyMnB4IDJweCByZ2JhKDAsMCwwLC4xNCksMCA2cHggMjhweCA1cHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoxNntib3gtc2hhZG93OjAgOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLC4yKSwwIDE2cHggMjRweCAycHggcmdiYSgwLDAsMCwuMTQpLDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWVsZXZhdGlvbi16MTd7Ym94LXNoYWRvdzowIDhweCAxMXB4IC01cHggcmdiYSgwLDAsMCwuMiksMCAxN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsLjE0KSwwIDZweCAzMnB4IDVweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1lbGV2YXRpb24tejE4e2JveC1zaGFkb3c6MCA5cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsLjIpLDAgMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLC4xNCksMCA3cHggMzRweCA2cHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoxOXtib3gtc2hhZG93OjAgOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLC4yKSwwIDE5cHggMjlweCAycHggcmdiYSgwLDAsMCwuMTQpLDAgN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWVsZXZhdGlvbi16MjB7Ym94LXNoYWRvdzowIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsLjIpLDAgMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLC4xNCksMCA4cHggMzhweCA3cHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoyMXtib3gtc2hhZG93OjAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwuMiksMCAyMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsLjE0KSwwIDhweCA0MHB4IDdweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1lbGV2YXRpb24tejIye2JveC1zaGFkb3c6MCAxMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLC4yKSwwIDIycHggMzVweCAzcHggcmdiYSgwLDAsMCwuMTQpLDAgOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWVsZXZhdGlvbi16MjN7Ym94LXNoYWRvdzowIDExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsLjIpLDAgMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLC4xNCksMCA5cHggNDRweCA4cHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZWxldmF0aW9uLXoyNHtib3gtc2hhZG93OjAgMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwuMiksMCAyNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsLjE0KSwwIDlweCA0NnB4IDhweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1hcHAtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlcntkaXNwbGF5Om5vbmV9Lm1hdC1hdXRvY29tcGxldGUtcGFuZWx7YmFja2dyb3VuZDojZmZmO2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsLjIpLDAgNHB4IDVweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpfS5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpe2JhY2tncm91bmQ6I2ZmZn0ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpe2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWJhZGdlLWNvbnRlbnR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMzZjUxYjV9QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpey5tYXQtYmFkZ2UtY29udGVudHtvdXRsaW5lOnNvbGlkIDFweDtib3JkZXItcmFkaXVzOjB9fS5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiNmZjQwODE7Y29sb3I6I2ZmZn0ubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZjQ0MzM2fS5tYXQtYmFkZ2V7cG9zaXRpb246cmVsYXRpdmV9Lm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50e2Rpc3BsYXk6bm9uZX0ubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudHtiYWNrZ3JvdW5kOiNiOWI5Yjk7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtYmFkZ2UtY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXItcmFkaXVzOjUwJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZS1pbi1vdXQ7dHJhbnNmb3JtOnNjYWxlKC42KTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7cG9pbnRlci1ldmVudHM6bm9uZX0ubWF0LWJhZGdlLWNvbnRlbnQuX21hdC1hbmltYXRpb24tbm9vcGFibGUsLm5nLWFuaW1hdGUtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50e3RyYW5zaXRpb246bm9uZX0ubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZXt0cmFuc2Zvcm06bm9uZX0ubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudHt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2xpbmUtaGVpZ2h0OjE2cHh9Lm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50e3RvcDotOHB4fS5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudHtib3R0b206LThweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTE2cHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi0xNnB4fS5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudHtyaWdodDotMTZweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMTZweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LThweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0OmF1dG87cmlnaHQ6LThweH0ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6LThweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotOHB4fS5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudHt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O2xpbmUtaGVpZ2h0OjIycHh9Lm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudHt0b3A6LTExcHh9Lm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudHtib3R0b206LTExcHh9Lm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDotMjJweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDphdXRvO3JpZ2h0Oi0yMnB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6LTIycHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6YXV0bztsZWZ0Oi0yMnB4fS5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6LTExcHh9W2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50e2xlZnQ6YXV0bztyaWdodDotMTFweH0ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi0xMXB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0OmF1dG87bGVmdDotMTFweH0ubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudHt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O2xpbmUtaGVpZ2h0OjI4cHh9Lm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50e3RvcDotMTRweH0ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnR7Ym90dG9tOi0xNHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDotMjhweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0OmF1dG87cmlnaHQ6LTI4cHh9Lm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi0yOHB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6YXV0bztsZWZ0Oi0yOHB4fS5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnR7bGVmdDotMTRweH1bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudHtsZWZ0OmF1dG87cmlnaHQ6LTE0cHh9Lm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50e3JpZ2h0Oi0xNHB4fVtkaXI9cnRsXSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnR7cmlnaHQ6YXV0bztsZWZ0Oi0xNHB4fS5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lcntib3gtc2hhZG93OjAgOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLC4yKSwwIDE2cHggMjRweCAycHggcmdiYSgwLDAsMCwuMTQpLDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsLjEyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtYnV0dG9uLC5tYXQtaWNvbi1idXR0b24sLm1hdC1zdHJva2VkLWJ1dHRvbntjb2xvcjppbmhlcml0O2JhY2tncm91bmQ6MCAwfS5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5LC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXtjb2xvcjojM2Y1MWI1fS5tYXQtYnV0dG9uLm1hdC1hY2NlbnQsLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudHtjb2xvcjojZmY0MDgxfS5tYXQtYnV0dG9uLm1hdC13YXJuLC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4sLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2Fybntjb2xvcjojZjQ0MzM2fS5tYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLC5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwubWF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sLm1hdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLC5tYXQtc3Ryb2tlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXtjb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6IzNmNTFiNX0ubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXl7YmFja2dyb3VuZC1jb2xvcjojZmY0MDgxfS5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50e29wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3J9Lm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kOiMwMDB9Lm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSl7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZhYiwubWF0LWZsYXQtYnV0dG9uLC5tYXQtbWluaS1mYWIsLm1hdC1yYWlzZWQtYnV0dG9ue2NvbG9yOnJnYmEoMCwwLDAsLjg3KTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lm1hdC1mYWIubWF0LXByaW1hcnksLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXtjb2xvcjojZmZmfS5tYXQtZmFiLm1hdC1hY2NlbnQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudHtjb2xvcjojZmZmfS5tYXQtZmFiLm1hdC13YXJuLC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4sLm1hdC1taW5pLWZhYi5tYXQtd2FybiwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm57Y29sb3I6I2ZmZn0ubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXtjb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1mYWIubWF0LXByaW1hcnksLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjV9Lm1hdC1mYWIubWF0LWFjY2VudCwubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50LC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50e2JhY2tncm91bmQtY29sb3I6I2ZmNDA4MX0ubWF0LWZhYi5tYXQtd2FybiwubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLC5tYXQtbWluaS1mYWIubWF0LXdhcm4sLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjAgMCAwIDAgcmdiYSgwLDAsMCwuMiksMCAwIDAgMCByZ2JhKDAsMCwwLC4xNCksMCAwIDAgMCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKX0ubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsLjIpLDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjAgMCAwIDAgcmdiYSgwLDAsMCwuMiksMCAwIDAgMCByZ2JhKDAsMCwwLC4xNCksMCAwIDAgMCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsLjIpLDAgNnB4IDEwcHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMThweCAwIHJnYmEoMCwwLDAsLjEyKX0ubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLC5tYXQtbWluaS1mYWI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsLjIpLDAgMTJweCAxN3B4IDJweCByZ2JhKDAsMCwwLC4xNCksMCA1cHggMjJweCA0cHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjAgMCAwIDAgcmdiYSgwLDAsMCwuMiksMCAwIDAgMCByZ2JhKDAsMCwwLC4xNCksMCAwIDAgMCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25le2JveC1zaGFkb3c6MCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCwubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2JveC1zaGFkb3c6bm9uZX0ubWF0LWJ1dHRvbi10b2dnbGV7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZHtjb2xvcjpyZ2JhKDAsMCwwLC44Nyk7YmFja2dyb3VuZDojZmZmfS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5e2JhY2tncm91bmQtY29sb3I6IzAwMH0ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUrLm1hdC1idXR0b24tdG9nZ2xle2JvcmRlci1sZWZ0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMil9W2Rpcj1ydGxdIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSsubWF0LWJ1dHRvbi10b2dnbGV7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCAubWF0LWJ1dHRvbi10b2dnbGUrLm1hdC1idXR0b24tdG9nZ2xle2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0Om5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6I2UwZTBlMDtjb2xvcjpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZHtjb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVke2NvbG9yOnJnYmEoMCwwLDAsLjI2KTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9Lm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmR7YmFja2dyb3VuZDojZmZmfS5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2Vke2JhY2tncm91bmQtY29sb3I6I2JkYmRiZH0ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCwubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJke2JvcmRlcjpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtY2FyZHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKXtib3gtc2hhZG93OjAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDFweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAzcHggMCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowIDAgMCAwIHJnYmEoMCwwLDAsLjIpLDAgMCAwIDAgcmdiYSgwLDAsMCwuMTQpLDAgMCAwIDAgcmdiYSgwLDAsMCwuMTIpfS5tYXQtY2FyZC1zdWJ0aXRsZXtjb2xvcjpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1jaGVja2JveC1mcmFtZXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtY2hlY2tib3gtY2hlY2ttYXJre2ZpbGw6I2ZhZmFmYX0ubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZTojZmFmYWZhIWltcG9ydGFudH1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OmJsYWNrLW9uLXdoaXRlKXsubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoe3N0cm9rZTojMDAwIWltcG9ydGFudH19Lm1hdC1jaGVja2JveC1taXhlZG1hcmt7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhfS5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjV9Lm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjQwODF9Lm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOiNiMGIwYjB9Lm1hdC1jaGVja2JveC1kaXNhYmxlZDpub3QoLm1hdC1jaGVja2JveC1jaGVja2VkKSAubWF0LWNoZWNrYm94LWZyYW1le2JvcmRlci1jb2xvcjojYjBiMGIwfS5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLC41NCl9QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpey5tYXQtY2hlY2tib3gtZGlzYWJsZWR7b3BhY2l0eTouNX19QG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDphY3RpdmUpey5tYXQtY2hlY2tib3gtYmFja2dyb3VuZHtiYWNrZ3JvdW5kOjAgMH19Lm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6IzAwMH0ubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojM2Y1MWI1fS5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDojZmY0MDgxfS5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kOiNmNDQzMzZ9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwe2JhY2tncm91bmQtY29sb3I6I2UwZTBlMDtjb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmV7Y29sb3I6cmdiYSgwLDAsMCwuODcpO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpOmFjdGl2ZXtib3gtc2hhZG93OjAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgM3B4IDRweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCA4cHggMCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXJ7b3BhY2l0eTouNTR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVke29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlcntiYWNrZ3JvdW5kOiMwMDB9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6IzNmNTFiNTtjb2xvcjojZmZmfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjEpfS5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzY7Y29sb3I6I2ZmZn0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZXtjb2xvcjojZmZmO29wYWNpdHk6LjR9Lm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjQwODE7Y29sb3I6I2ZmZn0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LWNoaXAtcmVtb3Zle2NvbG9yOiNmZmY7b3BhY2l0eTouNH0ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lm1hdC10YWJsZXtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC10YWJsZSB0Ym9keSwubWF0LXRhYmxlIHRmb290LC5tYXQtdGFibGUgdGhlYWQsLm1hdC10YWJsZS1zdGlja3ksW21hdC1mb290ZXItcm93XSxbbWF0LWhlYWRlci1yb3ddLFttYXQtcm93XSxtYXQtZm9vdGVyLXJvdyxtYXQtaGVhZGVyLXJvdyxtYXQtcm93e2JhY2tncm91bmQ6aW5oZXJpdH1tYXQtZm9vdGVyLXJvdyxtYXQtaGVhZGVyLXJvdyxtYXQtcm93LHRkLm1hdC1jZWxsLHRkLm1hdC1mb290ZXItY2VsbCx0aC5tYXQtaGVhZGVyLWNlbGx7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1oZWFkZXItY2VsbHtjb2xvcjpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1jZWxsLC5tYXQtZm9vdGVyLWNlbGx7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtY2FsZW5kYXItYXJyb3d7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC41NCl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbiwubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiwubWF0LWRhdGVwaWNrZXItdG9nZ2xle2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlcntjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1jYWxlbmRhci1ib2R5LWxhYmVse2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50e2NvbG9yOnJnYmEoMCwwLDAsLjg3KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9Lm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCl7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCksLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZT4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyPi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpe2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkPi5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMTgpfS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjU7Y29sb3I6I2ZmZn0ubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQ+Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6cmdiYSg2Myw4MSwxODEsLjQpfS5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjZmZmfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50e2JveC1zaGFkb3c6MCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwuMiksMCA0cHggNXB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDEwcHggMCByZ2JhKDAsMCwwLC4xMik7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjQwODE7Y29sb3I6I2ZmZn0ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSw2NCwxMjksLjQpfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNjtjb2xvcjojZmZmfS5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZD4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCw2Nyw1NCwuNCl9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVke2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNmZmZ9Lm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2h7Ym94LXNoYWRvdzowIDAgMCAwIHJnYmEoMCwwLDAsLjIpLDAgMCAwIDAgcmdiYSgwLDAsMCwuMTQpLDAgMCAwIDAgcmdiYSgwLDAsMCwuMTIpfS5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZle2NvbG9yOiMzZjUxYjV9Lm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LWFjY2VudHtjb2xvcjojZmY0MDgxfS5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC13YXJue2NvbG9yOiNmNDQzMzZ9Lm1hdC1kaWFsb2ctY29udGFpbmVye2JveC1zaGFkb3c6MCAxMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLC4yKSwwIDI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwuMTQpLDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsLjEyKTtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtZGl2aWRlcntib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWRpdmlkZXItdmVydGljYWx7Ym9yZGVyLXJpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWV4cGFuc2lvbi1wYW5lbHtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pe2JveC1zaGFkb3c6MCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKX0ubWF0LWFjdGlvbi1yb3d7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSksLm1hdC1leHBhbnNpb24tcGFuZWwgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSwubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSl7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9QG1lZGlhIChob3Zlcjpub25lKXsubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojZmZmfX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGV7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIsLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9ue2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXXtjb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZXtjb2xvcjppbmhlcml0fS5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLC42KX0ubWF0LWhpbnR7Y29sb3I6cmdiYSgwLDAsMCwuNil9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjojM2Y1MWI1fS5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudHtjb2xvcjojZmY0MDgxfS5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn0ubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlcntjb2xvcjojZmY0MDgxfS5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1fS5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZmY0MDgxfS5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJue2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXJ7Y29sb3I6IzNmNTFiNX0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZmY0MDgxfS5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlcntjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyLC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50e2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSwubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtZXJyb3J7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50e2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjQyKX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2JhKDAsMCwwLC40MikgMCxyZ2JhKDAsMCwwLC40MikgMzMlLHRyYW5zcGFyZW50IDApO2JhY2tncm91bmQtc2l6ZTo0cHggMTAwJTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmV7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQscmdiYSgwLDAsMCwuNDIpIDAscmdiYSgwLDAsMCwuNDIpIDMzJSx0cmFuc3BhcmVudCAwKTtiYWNrZ3JvdW5kLXNpemU6NHB4IDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA0KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNDIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVse2NvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmV7Y29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6IzNmNTFiNX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2ZmNDA4MX0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNre2NvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2t7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZXtjb2xvcjpyZ2JhKDAsMCwwLC4wNil9Lm1hdC1pY29uLm1hdC1wcmltYXJ5e2NvbG9yOiMzZjUxYjV9Lm1hdC1pY29uLm1hdC1hY2NlbnR7Y29sb3I6I2ZmNDA4MX0ubWF0LWljb24ubWF0LXdhcm57Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyLC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOiMzZjUxYjV9Lm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDAsMCwwLC40Mil9Lm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVye2NvbG9yOnJnYmEoMCwwLDAsLjQyKX0ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNDIpfS5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNDIpfS5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjojZmY0MDgxfS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudCwubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50e2NhcmV0LWNvbG9yOiNmNDQzMzZ9Lm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVye2NvbG9yOiNmNDQzMzZ9Lm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW17Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb257Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVye2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LWxpc3QtaXRlbS1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9Lm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cywubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLC5tYXQtbGlzdC1vcHRpb246Zm9jdXMsLm1hdC1saXN0LW9wdGlvbjpob3ZlciwubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzLC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wNCl9Lm1hdC1tZW51LXBhbmVse2JhY2tncm91bmQ6I2ZmZn0ubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLC4yKSwwIDRweCA1cHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKX0ubWF0LW1lbnUtaXRlbXtiYWNrZ3JvdW5kOjAgMDtjb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Lm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdLC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXTo6YWZ0ZXJ7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvciwubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVye2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZDpub3QoW2Rpc2FibGVkXSksLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLC5tYXQtbWVudS1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA0KX0ubWF0LXBhZ2luYXRvcntiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1wYWdpbmF0b3IsLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCwubWF0LXBhZ2luYXRvci1pbmNyZW1lbnR7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpO2JvcmRlci1yaWdodDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpfS5tYXQtcGFnaW5hdG9yLWZpcnN0LC5tYXQtcGFnaW5hdG9yLWxhc3R7Ym9yZGVyLXRvcDoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpfS5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCwubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCwubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdHtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmR7ZmlsbDojYzVjYWU5fS5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjNWNhZTl9Lm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1fS5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZHtmaWxsOiNmZjgwYWJ9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXJ7YmFja2dyb3VuZC1jb2xvcjojZmY4MGFifS5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmY0MDgxfS5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmR7ZmlsbDojZmZjZGQyfS5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmNkZDJ9Lm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsLm1hdC1zcGlubmVyIGNpcmNsZXtzdHJva2U6IzNmNTFiNX0ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGUsLm1hdC1zcGlubmVyLm1hdC1hY2NlbnQgY2lyY2xle3N0cm9rZTojZmY0MDgxfS5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUsLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZXtzdHJva2U6I2Y0NDMzNn0ubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuNTQpfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjojM2Y1MWI1fS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnk6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1fS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGV7Ym9yZGVyLWNvbG9yOiNmZjQwODF9Lm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2ZmNDA4MX0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZXtib3JkZXItY29sb3I6I2Y0NDMzNn0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxle2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xle2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnR7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnR7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LXNlbGVjdC1wbGFjZWhvbGRlcntjb2xvcjpyZ2JhKDAsMCwwLC40Mil9Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWV7Y29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtc2VsZWN0LWFycm93e2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LXNlbGVjdC1wYW5lbHtiYWNrZ3JvdW5kOiNmZmZ9Lm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSl7Ym94LXNoYWRvdzowIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLC4yKSwwIDRweCA1cHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKX0ubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEyKX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6IzNmNTFiNX0ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZmY0MDgxfS5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjojZjQ0MzM2fS5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3d7Y29sb3I6I2Y0NDMzNn0ubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvd3tjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC1kcmF3ZXItY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtjb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Lm1hdC1kcmF3ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2h7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKXtib3gtc2hhZG93OjAgOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLC4yKSwwIDE2cHggMjRweCAycHggcmdiYSgwLDAsMCwuMTQpLDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsLjEyKX0ubWF0LWRyYXdlci1zaWRle2JvcmRlci1yaWdodDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpfS5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmR7Ym9yZGVyLWxlZnQ6c29saWQgMXB4IHJnYmEoMCwwLDAsLjEyKTtib3JkZXItcmlnaHQ6bm9uZX1bZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZXtib3JkZXItbGVmdDpzb2xpZCAxcHggcmdiYSgwLDAsMCwuMTIpO2JvcmRlci1yaWdodDpub25lfVtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5ke2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIDFweCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93bntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjYpfS5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1ie2JhY2tncm91bmQtY29sb3I6I2ZmNDA4MX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSw2NCwxMjksLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2ZmNDA4MX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjV9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSg2Myw4MSwxODEsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6IzNmNTFiNX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsNjcsNTQsLjU0KX0ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6IzAwMH0ubWF0LXNsaWRlLXRvZ2dsZS10aHVtYntib3gtc2hhZG93OjAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDFweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAzcHggMCByZ2JhKDAsMCwwLC4xMik7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhfS5tYXQtc2xpZGUtdG9nZ2xlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5ke2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYiwubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwsLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1fS5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2NvbG9yOiNmZmZ9Lm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwsLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdHJhY2stZmlsbHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjQwODF9Lm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dHtjb2xvcjojZmZmfS5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYiwubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwsLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2fS5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0e2NvbG9yOiNmZmZ9Lm1hdC1zbGlkZXItZm9jdXMtcmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDY0LDEyOSwuMil9LmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsLm1hdC1zbGlkZXI6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4yNil9Lm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LXNsaWRlci1taW4tdmFsdWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZ3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWItbGFiZWx7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Lm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVse2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykgLm1hdC1zbGlkZXItdGh1bWJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjI2KTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3ZlciAubWF0LXNsaWRlci10aHVtYntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuMzgpfS5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiwubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjcpfS5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3N7YmFja2dyb3VuZC1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHJnYmEoMCwwLDAsLjcpLHJnYmEoMCwwLDAsLjcpIDJweCx0cmFuc3BhcmVudCAwLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1tb3otcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCguMDAwMWRlZyxyZ2JhKDAsMCwwLC43KSxyZ2JhKDAsMCwwLC43KSAycHgsdHJhbnNwYXJlbnQgMCx0cmFuc3BhcmVudCl9Lm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3N7YmFja2dyb3VuZC1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSxyZ2JhKDAsMCwwLC43KSxyZ2JhKDAsMCwwLC43KSAycHgsdHJhbnNwYXJlbnQgMCx0cmFuc3BhcmVudCl9Lm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwubWF0LXN0ZXAtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsLm1hdC1zdGVwLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA0KX1AbWVkaWEgKGhvdmVyOm5vbmUpey5tYXQtc3RlcC1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDowIDB9fS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLW9wdGlvbmFse2NvbG9yOnJnYmEoMCwwLDAsLjU0KX0ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29ue2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNTQpO2NvbG9yOiNmZmZ9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCwubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0e2JhY2tncm91bmQtY29sb3I6IzNmNTFiNTtjb2xvcjojZmZmfS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojZjQ0MzM2fS5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZXtjb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Lm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3J7Y29sb3I6I2Y0NDMzNn0ubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCwubWF0LXN0ZXBwZXItdmVydGljYWx7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmV7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZXtib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX0ubWF0LXNvcnQtaGVhZGVyLWFycm93e2NvbG9yOiM3NTc1NzV9Lm1hdC10YWItaGVhZGVyLC5tYXQtdGFiLW5hdi1iYXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpfS5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLW5hdi1iYXJ7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2JvcmRlci1ib3R0b206bm9uZX0ubWF0LXRhYi1sYWJlbCwubWF0LXRhYi1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjg3KX0ubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4zOCl9Lm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjM4KX0ubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXXtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyLXRvcDpub25lfS5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTk3LDIwMiwyMzMsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjV9Lm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIsLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDEyOCwxNzEsLjMpfS5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmY0MDgxfS5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjA1LDIxMCwuMyl9Lm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNn0ubWF0LXRhYi1ncm91cC5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciwubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZn0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgxOTcsMjAyLDIzMywuMyl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rc3tiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjV9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5re2NvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMTI4LDE3MSwuMyl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlciwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmtzLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlciwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rc3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjQwODF9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmt7Y29sb3I6I2ZmZn0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb257Ym9yZGVyLWNvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEyKX0ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpe2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjA1LDIxMCwuMyl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rc3tiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmssLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5re2NvbG9yOiNmZmZ9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWR7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9ue2JvcmRlci1jb2xvcjojZmZmfS5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbntib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNCl9Lm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTIpfS5tYXQtdG9vbGJhcntiYWNrZ3JvdW5kOiNmNWY1ZjU7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtdG9vbGJhci5tYXQtcHJpbWFyeXtiYWNrZ3JvdW5kOiMzZjUxYjU7Y29sb3I6I2ZmZn0ubWF0LXRvb2xiYXIubWF0LWFjY2VudHtiYWNrZ3JvdW5kOiNmZjQwODE7Y29sb3I6I2ZmZn0ubWF0LXRvb2xiYXIubWF0LXdhcm57YmFja2dyb3VuZDojZjQ0MzM2O2NvbG9yOiNmZmZ9Lm1hdC10b29sYmFyIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtcmlwcGxlLC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5le2JhY2tncm91bmQtY29sb3I6Y3VycmVudENvbG9yfS5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtbGFiZWwsLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvdywubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtYXJyb3csLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LXZhbHVle2NvbG9yOmluaGVyaXR9Lm1hdC10b29sYmFyIC5tYXQtaW5wdXQtZWxlbWVudHtjYXJldC1jb2xvcjpjdXJyZW50Q29sb3J9Lm1hdC10b29sdGlwe2JhY2tncm91bmQ6cmdiYSg5Nyw5Nyw5NywuOSl9Lm1hdC10cmVle2JhY2tncm91bmQ6I2ZmZn0ubWF0LW5lc3RlZC10cmVlLW5vZGUsLm1hdC10cmVlLW5vZGV7Y29sb3I6cmdiYSgwLDAsMCwuODcpfS5tYXQtc25hY2stYmFyLWNvbnRhaW5lcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43KTtiYWNrZ3JvdW5kOiMzMjMyMzI7Ym94LXNoYWRvdzowIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLC4yKSwwIDZweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDE4cHggMCByZ2JhKDAsMCwwLC4xMil9Lm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9ue2NvbG9yOiNmZjQwODF9IiwiQGltcG9ydCBcIn5AYW5ndWxhci9tYXRlcmlhbC9wcmVidWlsdC10aGVtZXMvaW5kaWdvLXBpbmsuY3NzXCI7XHJcblxyXG5odG1sLCBib2R5IHtcclxuICAgIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbmZvcm0ge1xyXG4gICAgd2lkdGg6IDQyMHB4O1xyXG4gICAgbWFyZ2luOiAzNXB4IGF1dG8gMTAwcHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGZsb2F0OiBub25lO1xyXG59XHJcblxyXG4ubWF0LWZvcm0tZmllbGQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5taXNjLWJvdHRvbS1wYWRkaW5nIHtcclxuICAgIG1hcmdpbjogOHB4IDAgMjBweDtcclxufVxyXG5cclxuLm1pc2MtYm90dG9tLXBhZGRpbmcgbWF0LWxhYmVsIHtcclxuICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxufVxyXG5cclxuLm1hdC1yYWRpby1sYWJlbCB7XHJcbiAgICBtYXJnaW46IDAgMTVweCAwIDA7XHJcbn1cclxuXHJcbi50aXRsZS1jZW50ZXIge1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuXHJcbi5idXR0b24td3JhcHBlciB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcbiIsIkBpbXBvcnQgXCJ+QGFuZ3VsYXIvbWF0ZXJpYWwvcHJlYnVpbHQtdGhlbWVzL2luZGlnby1waW5rLmNzc1wiO1xuaHRtbCwgYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG5mb3JtIHtcbiAgd2lkdGg6IDQyMHB4O1xuICBtYXJnaW46IDM1cHggYXV0byAxMDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xufVxuXG4ubWF0LWZvcm0tZmllbGQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1pc2MtYm90dG9tLXBhZGRpbmcge1xuICBtYXJnaW46IDhweCAwIDIwcHg7XG59XG5cbi5taXNjLWJvdHRvbS1wYWRkaW5nIG1hdC1sYWJlbCB7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbn1cblxuLm1hdC1yYWRpby1sYWJlbCB7XG4gIG1hcmdpbjogMCAxNXB4IDAgMDtcbn1cblxuLnRpdGxlLWNlbnRlciB7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uYnV0dG9uLXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufSJdfQ== */\"","import { Component, OnInit, Injectable, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\n\r\nexport interface Subject {\r\n name: string;\r\n}\n\n@Component({\n selector: 'app-product',\n templateUrl: './product.component.html',\n styleUrls: ['./product.component.scss'],\r\n})\nexport class ProductComponent {\n visible = true;\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n myForm: FormGroup;\r\n @ViewChild('chipList', { static: true }) chipList;\r\n GradeArray: any = ['8th Grade', '9th Grade', '10th Grade', '11th Grade', '12th Grade'];\r\n SubjectsArray: Subject[] = [];\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n constructor(public fb: FormBuilder) { }\r\n\r\n ngOnInit(): void {\r\n this.reactiveForm()\r\n }\r\n\r\n /* Reactive form */\r\n reactiveForm() {\r\n this.myForm = this.fb.group({\r\n name: ['', [Validators.required]],\r\n email: ['', [Validators.required]],\r\n gender: ['Male'],\r\n dob: ['', [Validators.required]],\r\n grade: [''],\r\n subjects: [this.SubjectsArray]\r\n })\r\n }\r\n /* Date */\r\n date(e) {\r\n var convertDate = new Date(e.target.value).toISOString().substring(0, 10);\r\n this.myForm.get('dob').setValue(convertDate, {\r\n onlyself: true\r\n })\r\n }\r\n\r\n /* Add dynamic languages */\r\n add(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n // Add language\r\n if ((value || '').trim() && this.SubjectsArray.length < 5) {\r\n this.SubjectsArray.push({ name: value.trim() })\r\n }\r\n // Reset the input value\r\n if (input) {\r\n input.value = '';\r\n }\r\n }\r\n\r\n /* Remove dynamic languages */\r\n remove(subject: Subject): void {\r\n const index = this.SubjectsArray.indexOf(subject);\r\n if (index >= 0) {\r\n this.SubjectsArray.splice(index, 1);\r\n }\r\n } submitForm() {\r\n console.log(this.myForm.value)\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ProductDetailComponent } from './product-detail.component';\nimport { ProductEditComponent } from './product-edit.component';\nimport { ProductComponent } from './product.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'src/app/shared/modules/shared.module';\r\nimport { DataTablesModule } from 'angular-datatables';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ProductEditGuard } from './product-edit.guard';\r\nimport { MaterialModule } from 'src/app/material.module';\nimport { PlantVarietyEditComponent } from './plant-variety-edit/plant-variety-edit.component';\r\n\r\n\n\n\n@NgModule({\n imports: [\n FormsModule,\r\n SharedModule,\r\n ReactiveFormsModule,\r\n DataTablesModule,\r\n MaterialModule,\r\n RouterModule.forChild([\r\n { path: 'products', component: ProductComponent },\r\n { path: 'products/:id', component: ProductDetailComponent },\r\n {\r\n path: 'products/:id/edit',\r\n canDeactivate: [ProductEditGuard],\r\n component: ProductEditComponent\r\n }\r\n ])\r\n ],\r\n declarations: [\r\n ProductDetailComponent, ProductEditComponent, ProductComponent, PlantVarietyEditComponent\r\n ],\r\n entryComponents: [PlantVarietyEditComponent]\r\n})\r\n\nexport class ProductModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy90cmFjZS90cmFjZS1kZXRhaWwuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Trace } from 'src/app/data-models/trace';\r\nimport { Field } from 'src/app/data-models/field';\r\nimport { TraceService } from '../../services/trace.service';\r\nimport { FieldService } from '../../services/field.service';\r\n\r\n@Component({\r\n selector: 'app-trace-detail',\r\n templateUrl: './trace-detail.component.html',\r\n styleUrls: ['./trace-detail.component.css']\r\n})\r\nexport class TraceDetailComponent implements OnInit {\r\n pageTitle = 'Trace Detail';\r\n errorMessage = '';\r\n trace: Trace ;\r\n field: Field ;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private router: Router,\r\n private traceService: TraceService,\r\n private fieldService: FieldService) {\r\n }\r\n\r\n ngOnInit() {\r\n const param = this.route.snapshot.paramMap.get('id');\r\n if (param) {\r\n const id = +param;\r\n this.getTrace(id);\r\n //debugger;\r\n //this.getField(parseInt(this.trace.fieldId));\r\n }\r\n }\r\n\r\n getField(id: number) {\r\n this.fieldService.getField(id).subscribe({\r\n next: field => this.field = field,\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getTrace(id: number) {\r\n this.traceService.getTrace(id).subscribe({\r\n \r\n next: trace => this.trace = trace,\r\n error: err => this.errorMessage = err\r\n });\r\n \r\n }\r\n onBack(): void {\r\n this.router.navigate(['dashboard/trace']);\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy90cmFjZS90cmFjZS1lZGl0LmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit, ViewChildren, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';\r\nimport { FormControlName, FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { Subscription, Observable, fromEvent, merge } from 'rxjs';\r\n\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { debug } from 'util';\r\nimport { Field } from 'src/app/data-models/field';\r\nimport { Trace } from 'src/app/data-models/trace';\r\nimport { FieldService } from '../../services/field.service';\r\nimport { TraceService } from '../../services/trace.service';\r\nimport { GenericValidator } from 'src/app/shared/generic-validator';\r\n\r\n@Component({\r\n selector: 'app-trace-edit',\r\n templateUrl: './trace-edit.component.html',\r\n styleUrls: ['./trace-edit.component.css']\r\n})\r\nexport class TraceEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n pageTitle = 'Trace Edit';\r\n errorMessage: string;\r\n traceForm: FormGroup;\r\n\r\n trace: Trace;\r\n fields: Field[];\r\n selectedField: Field;\r\n private sub: Subscription;\r\n\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n private validationMessages: { [key: string]: { [key: string]: string } };\r\n private genericValidator: GenericValidator;\r\n\r\n get tags(): FormArray {\r\n return this.traceForm.get('tags') as FormArray;\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private fieldService: FieldService,\r\n private traceService: TraceService\r\n ) {\r\n\r\n // Defines all of the validation messages for the form.\r\n // These could instead be retrieved from a file or database.\r\n this.validationMessages = {\r\n code: {\r\n required: 'Field code is required.'\r\n },\r\n fieldId: {\r\n required: 'You must select a field'\r\n },\r\n irrigationTypeId: {\r\n required: 'You must select an Irrigation Type'\r\n }\r\n };\r\n\r\n // Define an instance of the validator for use with this form,\r\n // passing in this form's set of validation messages.\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.traceForm = this.fb.group({\r\n code: ['', Validators.required],\r\n fieldId: ['', Validators.required],\r\n irrigationTypeId: [''],\r\n plantSpacing: '',\r\n fieldName: '',\r\n fieldCode: '',\r\n irrigation: '',\r\n size: '',\r\n bedQuantity:'',\r\n bedSpacing:'',\r\n bedLength: ''\r\n\r\n });\r\n\r\n // Read the Field Id from the route parameter\r\n this.sub = this.route.paramMap.subscribe(\r\n params => {\r\n\r\n const id = +params.get('id');\r\n this.getTrace(id);\r\n if (this.trace !== null) {\r\n this.getField(parseInt(this.trace.fieldId));\r\n }\r\n\r\n this.changeField(this.trace.fieldId);\r\n }\r\n );\r\n // Get a List of fields\r\n this.fieldService.getFields().subscribe(\r\n fields => {\r\n\r\n this.fields = fields;\r\n this.selectedField = this.fields[0];\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Watch for the blur event from any input element on the form.\r\n // This is required because the valueChanges does not provide notification on blur\r\n const controlBlurs: Observable[] = this.formInputElements\r\n .map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n\r\n // Merge the blur event observable with the valueChanges observable\r\n // so we only need to subscribe once.\r\n merge(this.traceForm.valueChanges, ...controlBlurs).pipe(\r\n debounceTime(800)\r\n ).subscribe(value => {\r\n this.displayMessage = this.genericValidator.processMessages(this.traceForm);\r\n });\r\n }\r\n\r\n addTag(): void {\r\n this.tags.push(new FormControl());\r\n }\r\n\r\n deleteTag(index: number): void {\r\n this.tags.removeAt(index);\r\n this.tags.markAsDirty();\r\n }\r\n\r\n getTrace(id: number): void {\r\n this.traceService.getTrace(id)\r\n .subscribe({\r\n next: (trace: Trace) => this.displayTrace(trace),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getField(id: number): void {\r\n if (id > 0) {\r\n this.fieldService.getField(id)\r\n .subscribe({\r\n next: (field: Field) => this.selectedField = field,\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n\r\n }\r\n\r\n displayTrace(trace: Trace): void {\r\n if (this.traceForm) {\r\n this.traceForm.reset();\r\n }\r\n this.trace = trace;\r\n\r\n if (this.trace.id === 0) {\r\n this.pageTitle = 'Add Trace';\r\n } else {\r\n this.pageTitle = `Edit Trace: ${this.trace.code}`;\r\n }\r\n\r\n // Update the data on the form\r\n this.traceForm.patchValue({\r\n fieldName: this.trace.fieldName,\r\n fieldCode: this.trace.fieldCode,\r\n code: this.trace.code,\r\n plantSpacing: this.trace.plantSpacing,\r\n fieldId: this.trace.fieldId,\r\n irrigationTypeId: this.trace.irrigationTypeId,\r\n irrigation: this.trace.irrigation,\r\n size: this.trace.size,\r\n bedQuantity: this.trace.bedQuantity,\r\n bedSpacing: this.trace.bedSpacing,\r\n bedLength: this.trace.bedLength\r\n\r\n });\r\n //this.farmForm.setControl('tags', this.fb.array(this.farm.tags || []));\r\n }\r\n\r\n deleteTrace(): void {\r\n if (this.trace.id === 0) {\r\n // Don't delete, it was never saved.\r\n this.onSaveComplete();\r\n } else {\r\n if (confirm('Really delete the trace: ${this.trace.code}?')) {\r\n this.traceService.deleteTrace(this.trace.id)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n }\r\n\r\n saveTrace(): void {\r\n if (this.traceForm.valid) {\r\n if (this.traceForm.dirty) {\r\n const p = { ...this.trace, ...this.traceForm.value };\r\n\r\n if (p.id === 0) {\r\n this.traceService.createTrace(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n } else {\r\n this.traceService.updateTrace(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n } else {\r\n this.onSaveComplete();\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n // Choose farm using select dropdown\r\n changeField(fieldId) {\r\n\r\n this.selectedField = null;\r\n debugger;\r\n\r\n for (var i = 0; i < this.fields.length; i++) {\r\n if (this.fields[i].id == fieldId) {\r\n this.selectedField = this.fields[i];\r\n }\r\n }\r\n //this.fieldForm.get(\"farm\").setValue(this.selectedFarm, {\r\n // onlySelf: true\r\n //});\r\n this.traceForm.get(\"fieldId\").setValue(fieldId, {\r\n onlySelf: true\r\n });\r\n this.traceForm.get(\"fieldName\").setValue(this.selectedField.fieldName, {\r\n onlySelf: true\r\n });\r\n this.traceForm.get(\"fieldCode\").setValue(this.selectedField.code, {\r\n onlySelf: true\r\n });\r\n }\r\n // Choose rental Agreement using select dropdown\r\n changeIrrigationType(irrigationTypeId) {\r\n\r\n this.traceForm.get(\"irrigationTypeId\").setValue(irrigationTypeId, {\r\n onlySelf: true\r\n });\r\n\r\n }\r\n onSaveComplete(): void {\r\n // Reset the form to clear the flags\r\n this.traceForm.reset();\r\n this.router.navigate(['/dashboard/trace']);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy90cmFjZS90cmFjZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Trace } from 'src/app/data-models/trace';\r\nimport { TraceService } from '../../services/trace.service';\r\n\r\n@Component({\r\n selector: 'app-trace',\r\n templateUrl: './trace.component.html',\r\n styleUrls: ['./trace.component.scss']\r\n})\r\nexport class TraceComponent implements OnInit {\r\n pageTitle = 'Trace List';\r\n errorMessage = '';\r\n\r\n \r\n filteredTraces: Trace[] = [];\r\n traces: Trace[] = [];\r\n dtOptions: DataTables.Settings = {};\r\n\r\n\r\n constructor(private traceService: TraceService) {\r\n\r\n }\r\n\r\n \r\n \r\n ngOnInit(): void {\r\n //this.dataTable = $(this.table.nativeElement);\r\n\r\n //this.dataTable.DataTable();\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10,\r\n processing: true\r\n };\r\n\r\n this.traceService.getTraces().subscribe({\r\n next: traces => {\r\n\r\n this.traces = traces;\r\n this.filteredTraces = this.traces;\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TraceGuard implements CanActivate {\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return true;\n }\n\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DataTablesModule } from 'angular-datatables';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TraceComponent } from './trace.component';\r\nimport { TraceDetailComponent } from './trace-detail.component';\r\nimport { TraceGuard } from './trace.guard';\r\nimport { TraceEditComponent } from './trace-edit.component';\r\nimport { SharedModule } from 'src/app/shared/modules/shared.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [TraceComponent, TraceDetailComponent, TraceEditComponent],\r\n imports: [\r\n FormsModule,\r\n SharedModule,\r\n ReactiveFormsModule,\r\n DataTablesModule,\r\n RouterModule.forChild([\r\n { path: 'traces', component: TraceComponent },\r\n { path: 'traces/:id', component: TraceDetailComponent },\r\n {\r\n path: 'traces/:id/edit',\r\n canDeactivate: [TraceGuard],\r\n component: TraceEditComponent\r\n }\r\n ])\r\n ]\r\n})\r\nexport class TraceModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy92ZWhpY2xlLW1ha2UvdmVoaWNsZS1tYWtlLWRldGFpbC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { VehicleMake } from '../../../data-models/vehiclemake';\r\nimport { VehicleMakeService } from '../../services/vehicle-make.service';\r\n\r\n@Component({\r\n selector: 'app-vehicle-make-detail',\r\n templateUrl: './vehicle-make-detail.component.html',\r\n styleUrls: ['./vehicle-make-detail.component.css']\r\n})\r\nexport class VehicleMakeDetailComponent implements OnInit {\r\n pageTitle = 'Employee Detail';\r\n errorMessage = '';\r\n vehicleMake: VehicleMake | undefined;\r\n constructor(private route: ActivatedRoute,\r\n private router: Router,\r\n private vehicleMakeService: VehicleMakeService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n const param = this.route.snapshot.paramMap.get('id');\r\n if (param) {\r\n const id = +param;\r\n this.getVehicleMake(id);\r\n\r\n }\r\n }\r\n\r\n getVehicleMake(id: number) {\r\n this.vehicleMakeService.getVehicleMake(id).subscribe({\r\n next: model => {\r\n this.vehicleMake = model;\r\n \r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n onBack(): void {\r\n this.router.navigate(['/dashboard/vehicleMake']);\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy92ZWhpY2xlLW1ha2UvdmVoaWNsZS1tYWtlLWVkaXQuY29tcG9uZW50LmNzcyJ9 */\"","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, ViewChildren, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';\r\nimport { FormControlName, FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { fromEvent, merge, Observable, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { VehicleMake } from '../../../data-models/vehiclemake';\r\nimport { GenericValidator } from '../../../shared/generic-validator';\r\nimport { VehicleMakeService } from '../../services/vehicle-make.service';\r\n\r\n@Component({\r\n selector: 'app-vehicle-make-edit',\r\n templateUrl: './vehicle-make-edit.component.html',\r\n styleUrls: ['./vehicle-make-edit.component.css']\r\n})\r\nexport class VehicleMakeEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n pageTitle = 'Vehicle Make Edit';\r\n errorMessage: string;\r\n vehicleMakeForm: FormGroup;\r\n vehicleMakes: VehicleMake[];\r\n vehicleMake: VehicleMake;\r\n private sub: Subscription;\r\n\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n private validationMessages: { [key: string]: { [key: string]: string } };\r\n private genericValidator: GenericValidator;\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private vehicleMakeService: VehicleMakeService,\r\n public datepipe: DatePipe\r\n ) {\r\n\r\n // Defines all of the validation messages for the form.\r\n // These could instead be retrieved from a file or database.\r\n this.validationMessages = {\r\n\r\n \r\n name: {\r\n required: 'Vehicle Make is required.'\r\n }\r\n };\r\n\r\n // Define an instance of the validator for use with this form,\r\n // passing in this form's set of validation messages.\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.vehicleMakeForm = this.fb.group({\r\n name: ['', Validators.required],\r\n id: 0\r\n });\r\n\r\n // Read the employee Id from the route parameter\r\n this.sub = this.route.paramMap.subscribe(\r\n params => {\r\n \r\n const id = +params.get('id');\r\n this.getVehicleMake(id);\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Watch for the blur event from any input element on the form.\r\n // This is required because the valueChanges does not provide notification on blur\r\n const controlBlurs: Observable[] = this.formInputElements\r\n .map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n\r\n // Merge the blur event observable with the valueChanges observable\r\n // so we only need to subscribe once.\r\n merge(this.vehicleMakeForm.valueChanges, ...controlBlurs).pipe(\r\n debounceTime(800)\r\n ).subscribe(value => {\r\n this.displayMessage = this.genericValidator.processMessages(this.vehicleMakeForm);\r\n });\r\n }\r\n\r\n\r\n getVehicleMake(id: number): void {\r\n this.vehicleMakeService.getVehicleMake(id)\r\n .subscribe({\r\n next: (vehicleMake: VehicleMake) => {\r\n this.displayVehicleMake(vehicleMake);\r\n \r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n \r\n displayVehicleMake(vehicleMake: VehicleMake): void {\r\n if (this.vehicleMakeForm) {\r\n this.vehicleMakeForm.reset();\r\n }\r\n this.vehicleMake = vehicleMake;\r\n\r\n if (this.vehicleMake.id === 0) {\r\n this.pageTitle = 'Add Vehicle Make';\r\n } else {\r\n this.pageTitle = `Edit Vehicle Make: ${this.vehicleMake.name} `;\r\n }\r\n \r\n // Update the data on the form\r\n this.vehicleMakeForm.patchValue({\r\n name: this.vehicleMake.name,\r\n id: this.vehicleMake.id\r\n });\r\n\r\n }\r\n\r\n deleteVehicleMake(): void {\r\n if (this.vehicleMake.id === 0) {\r\n // Don't delete, it was never saved.\r\n this.onSaveComplete();\r\n } else {\r\n if (confirm(`Really delete the Vehicle Make: ${this.vehicleMake.name}?`)) {\r\n this.vehicleMakeService.deleteVehicleMake(this.vehicleMake.id)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n }\r\n\r\n saveVehicleMake(): void {\r\n \r\n if (this.vehicleMakeForm.valid) {\r\n if (this.vehicleMakeForm.dirty) {\r\n const p = { ...this.vehicleMake, ...this.vehicleMakeForm.value };\r\n\r\n if (p.id === 0 || p.id === null) {\r\n this.vehicleMakeService.createVehicleMake(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n } else {\r\n \r\n this.vehicleMakeService.updateVehicleMake(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n } else {\r\n this.onSaveComplete();\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n\r\n onSaveComplete(): void {\r\n // Reset the form to clear the flags\r\n this.vehicleMakeForm.reset();\r\n this.router.navigate(['/dashboard/vehicleMake']);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { VehicleMakeEditComponent } from './vehicle-make-edit.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VehicleMakeEditGuard implements CanDeactivate {\r\n canDeactivate(component: VehicleMakeEditComponent): Observable | Promise | boolean {\r\n if (component.vehicleMakeForm.dirty) {\r\n const vehicleMake = component.vehicleMakeForm.get('make').value || 'New Vehicle Make';\r\n return confirm(`Navigate away and lose all changes to ${vehicleMake}?`);\r\n }\r\n return true;\r\n }\r\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy92ZWhpY2xlLW1ha2UvdmVoaWNsZS1tYWtlLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { VehicleMake} from '../../../data-models/vehiclemake';\r\nimport { VehicleMakeService } from '../../services/vehicle-make.service';\r\n\r\n@Component({\r\n selector: 'app-vehicle-make',\r\n templateUrl: './vehicle-make.component.html',\r\n styleUrls: ['./vehicle-make.component.css']\r\n})\r\nexport class VehicleMakeComponent implements OnInit {\r\n\r\n pageTitle = 'Vehicle List';\r\n imageWidth = 50;\r\n imageMargin = 2;\r\n showImage = false;\r\n errorMessage = '';\r\n\r\n _listFilter = '';\r\n get listFilter(): string {\r\n return this._listFilter;\r\n }\r\n set listFilter(value: string) {\r\n this._listFilter = value;\r\n this.filteredVehicleMakes = this.listFilter ? this.performFilter(this.listFilter) : this.vehicleMakes;\r\n }\r\n\r\n filteredVehicleMakes: VehicleMake[] = [];\r\n vehicleMakes: VehicleMake[] = [];\r\n //dtOptions: DataTables.Settings = {};\r\n dtOptions: any = {};\r\n constructor(private vehicleMakeService: VehicleMakeService) { }\r\n\r\n performFilter(filterBy: string): VehicleMake[] {\r\n\r\n filterBy = filterBy.toLocaleLowerCase();\r\n return this.vehicleMakes.filter((vehicleMake: VehicleMake) =>\r\n vehicleMake.name.toLocaleLowerCase().indexOf(filterBy) !== -1\r\n\r\n );\r\n }\r\n\r\n toggleImage(): void {\r\n this.showImage = !this.showImage;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10,\r\n processing: true,\r\n dom: 'Bfrtip',\r\n buttons: [\r\n 'copy', 'csv', 'excel', 'print'\r\n ]\r\n };\r\n this.vehicleMakeService.getVehicleMakes().subscribe({\r\n next: item => {\r\n\r\n this.vehicleMakes = item;\r\n this.filteredVehicleMakes = this.vehicleMakes;\r\n\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../../../shared/modules/shared.module';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { DataTablesModule } from 'angular-datatables';\r\nimport { VehicleMakeComponent } from './vehicle-make.component';\r\nimport { VehicleMakeEditGuard } from './vehicle-make-edit.guard';\r\nimport { VehicleMakeEditComponent } from './vehicle-make-edit.component';\r\nimport { VehicleMakeDetailComponent } from './vehicle-make-detail.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n SharedModule,\r\n ReactiveFormsModule,\r\n DataTablesModule,\r\n RouterModule.forChild([\r\n { path: 'vehicleMake', component: VehicleMakeComponent },\r\n { path: 'vehicleMake/:id', component: VehicleMakeDetailComponent },\r\n {\r\n path: 'vehicleMake/:id/edit',\r\n canDeactivate: [VehicleMakeEditGuard],\r\n component: VehicleMakeEditComponent\r\n }\r\n ])\r\n ],\r\n declarations: [\r\n VehicleMakeComponent,\r\n VehicleMakeDetailComponent,\r\n VehicleMakeEditComponent\r\n ]\r\n})\r\n\r\nexport class VehicleMakeModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy92ZWhpY2xlLW1vZGVsL3ZlaGljbGUtbW9kZWwtZGV0YWlsLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { VehicleMake } from '../../../data-models/vehiclemake';\r\nimport { VehicleModel } from '../../../data-models/vehiclemodel';\r\nimport { VehicleMakeService } from '../../services/vehicle-make.service';\r\nimport { VehicleModelService } from '../../services/vehicle-model.service';\r\n\r\n@Component({\r\n selector: 'app-vehicle-model-detail',\r\n templateUrl: './vehicle-model-detail.component.html',\r\n styleUrls: ['./vehicle-model-detail.component.css']\r\n})\r\nexport class VehicleModelDetailComponent implements OnInit {\r\n pageTitle = 'Employee Detail';\r\n errorMessage = '';\r\n vehicleMake: VehicleMake | undefined;\r\n vehicleModel: VehicleModel | undefined;\r\n constructor(private route: ActivatedRoute,\r\n private router: Router,\r\n private vehicleMakeService: VehicleMakeService,\r\n private vehicleModelService: VehicleModelService) {\r\n }\r\n\r\n ngOnInit() {\r\n const param = this.route.snapshot.paramMap.get('id');\r\n if (param) {\r\n const id = +param;\r\n this.getVehicleModel(id);\r\n\r\n }\r\n }\r\n\r\n getVehicleModel(id: number) {\r\n this.vehicleModelService.getVehicleModel(id).subscribe({\r\n next: vehicleModel => {\r\n this.vehicleModel = this.vehicleModel;\r\n this.getVehicleMake(+vehicleModel.makeId);\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getVehicleMake(id: number) {\r\n this.vehicleMakeService.getVehicleMake(id).subscribe({\r\n next: vehicleMake => {\r\n this.vehicleMake = vehicleMake;\r\n this.vehicleModel.vehicleMake = vehicleMake.name;\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n onBack(): void {\r\n this.router.navigate(['/dashboard/vehicleModel']);\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy92ZWhpY2xlLW1vZGVsL3ZlaGljbGUtbW9kZWwtZWRpdC5jb21wb25lbnQuY3NzIn0= */\"","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, ViewChildren, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';\r\nimport { FormControlName, FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { fromEvent, merge, Observable, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { VehicleMake } from '../../../data-models/vehiclemake';\r\nimport { VehicleModel } from '../../../data-models/vehiclemodel';\r\nimport { GenericValidator } from '../../../shared/generic-validator';\r\nimport { VehicleMakeService } from '../../services/vehicle-make.service';\r\nimport { VehicleModelService } from '../../services/vehicle-model.service';\r\n\r\n@Component({\r\n selector: 'app-vehicle-model-edit',\r\n templateUrl: './vehicle-model-edit.component.html',\r\n styleUrls: ['./vehicle-model-edit.component.css']\r\n})\r\nexport class VehicleModelEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n pageTitle = 'Vehicle Model Edit';\r\n errorMessage: string;\r\n vehicleModelForm: FormGroup;\r\n vehicleMakes: VehicleMake[];\r\n vehicleModels: VehicleModel[];\r\n selectedVehicleMake: VehicleMake;\r\n vehicleModel: VehicleModel;\r\n private sub: Subscription;\r\n\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n private validationMessages: { [key: string]: { [key: string]: string } };\r\n private genericValidator: GenericValidator;\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private vehicleModelService: VehicleModelService,\r\n private vehicleMakeService: VehicleMakeService,\r\n public datepipe: DatePipe\r\n ) {\r\n\r\n // Defines all of the validation messages for the form.\r\n // These could instead be retrieved from a file or database.\r\n this.validationMessages = {\r\n\r\n VehicleMake: {\r\n required: 'Vehicle Make is required.'\r\n },\r\n\r\n VehicleModel: {\r\n required: 'Vehicle model is required.'\r\n }\r\n };\r\n\r\n // Define an instance of the validator for use with this form,\r\n // passing in this form's set of validation messages.\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.vehicleModelForm = this.fb.group({\r\n makeId: ['', Validators.required],\r\n name: ['', Validators.required],\r\n id: 0\r\n });\r\n\r\n // Read the employee Id from the route parameter\r\n this.sub = this.route.paramMap.subscribe(\r\n params => {\r\n // Get a List of Companies\r\n this.vehicleMakeService.getVehicleMakes().subscribe(\r\n models => {\r\n\r\n this.vehicleMakes = models;\r\n this.selectedVehicleMake = this.vehicleMakes[0];\r\n\r\n });\r\n \r\n const id = +params.get('id');\r\n this.getVehicleModel(id);\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Watch for the blur event from any input element on the form.\r\n // This is required because the valueChanges does not provide notification on blur\r\n const controlBlurs: Observable[] = this.formInputElements\r\n .map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n\r\n // Merge the blur event observable with the valueChanges observable\r\n // so we only need to subscribe once.\r\n merge(this.vehicleModelForm.valueChanges, ...controlBlurs).pipe(\r\n debounceTime(800)\r\n ).subscribe(value => {\r\n this.displayMessage = this.genericValidator.processMessages(this.vehicleModelForm);\r\n });\r\n }\r\n\r\n\r\n getVehicleModel(id: number): void {\r\n this.vehicleModelService.getVehicleModel(id)\r\n .subscribe({\r\n next: (vehicleModel: VehicleModel) => {\r\n this.displayVehicleModel(vehicleModel);\r\n if (+vehicleModel.makeId > 0) {\r\n this.getVehicleMakeService(+vehicleModel.makeId);\r\n this.changeVehicleMake(+vehicleModel.makeId);\r\n\r\n }\r\n\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getVehicleModels(makeid: number) {\r\n\r\n this.vehicleMakeService.getVehicleModelsByMake(makeid).subscribe(\r\n models => {\r\n\r\n this.vehicleModels = models;\r\n \r\n });\r\n\r\n }\r\n getVehicleMakeService(id: number) {\r\n if (id > 0) {\r\n\r\n this.vehicleMakeService.getVehicleMake(id)\r\n .subscribe({\r\n next: (vehicleMake: VehicleMake) => this.selectedVehicleMake = vehicleMake,\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n\r\n \r\n changeVehicleMake(id: number) {\r\n if (id > 0 && this.vehicleMakes !== undefined) {\r\n this.selectedVehicleMake = null;\r\n for (var i = 0; i < this.vehicleMakes.length; i++) {\r\n if (this.vehicleMakes[i].id == id) {\r\n this.selectedVehicleMake = this.vehicleMakes[i];\r\n }\r\n }\r\n\r\n if (this.vehicleModelForm !== null) {\r\n this.vehicleModelForm.get(\"makeId\").setValue(id, {\r\n onlySelf: true\r\n });\r\n \r\n }\r\n }\r\n }\r\n displayVehicleModel(vehicleModel: VehicleModel): void {\r\n if (this.vehicleModelForm) {\r\n this.vehicleModelForm.reset();\r\n }\r\n this.vehicleModel = vehicleModel;\r\n\r\n if (this.vehicleModel.id === 0) {\r\n this.pageTitle = 'Add Vehicle Model';\r\n } else {\r\n this.pageTitle = `Edit Vehicle Model: ${this.vehicleModel.vehicleMake} ${this.vehicleModel.name}`;\r\n }\r\n \r\n // Update the data on the form\r\n this.vehicleModelForm.patchValue({\r\n vehileMake: this.vehicleModel.vehicleMake,\r\n name: this.vehicleModel.name,\r\n makeId: this.vehicleModel.makeId,\r\n id: this.vehicleModel.id\r\n });\r\n\r\n }\r\n\r\n deleteVehicleModel(): void {\r\n if (this.vehicleModel.id === 0) {\r\n // Don't delete, it was never saved.\r\n this.onSaveComplete();\r\n } else {\r\n if (confirm(`Really delete the Vehicle Model: ${this.vehicleModel.vehicleMake} ${this.vehicleModel.name}?`)) {\r\n this.vehicleModelService.deleteVehicleModel(this.vehicleModel.id)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n }\r\n\r\n saveVehicleModel(): void {\r\n debugger;\r\n if (this.vehicleModelForm.valid) {\r\n if (this.vehicleModelForm.dirty) {\r\n const p = { ...this.vehicleModel, ...this.vehicleModelForm.value };\r\n\r\n if (p.id === 0 || p.id === null) {\r\n this.vehicleModelService.createVehicleModel(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n } else {\r\n if (p.makeId === undefined) {\r\n p.makeId = this.selectedVehicleMake.id;\r\n p.vehicleMake = this.selectedVehicleMake.name;\r\n }\r\n this.vehicleModelService.updateVehicleModel(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n } else {\r\n this.onSaveComplete();\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n\r\n onSaveComplete(): void {\r\n // Reset the form to clear the flags\r\n this.vehicleModelForm.reset();\r\n this.router.navigate(['/dashboard/vehicleModel']);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, CanActivateChild, CanLoad, Route, UrlSegment, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { VehicleModelEditComponent } from './vehicle-model-edit.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VehicleModelEditGuard implements CanDeactivate {\r\n canDeactivate(component: VehicleModelEditComponent): Observable | Promise | boolean {\r\n if (component.vehicleModelForm.dirty) {\r\n const vehicleModel = component.vehicleModelForm.get('name').value || 'New Vehicle Model';\r\n return confirm(`Navigate away and lose all changes to ${vehicleModel}?`);\r\n }\r\n return true;\r\n }\r\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy92ZWhpY2xlLW1vZGVsL3ZlaGljbGUtbW9kZWwuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { VehicleModel } from '../../../data-models/vehiclemodel';\r\nimport { VehicleModelService } from '../../services/vehicle-model.service';\r\n\r\n@Component({\r\n selector: 'app-vehicle-model',\r\n templateUrl: './vehicle-model.component.html',\r\n styleUrls: ['./vehicle-model.component.css']\r\n})\r\nexport class VehicleModelComponent implements OnInit {\r\n\r\n pageTitle = 'Vehicle Model List';\r\n imageWidth = 50;\r\n imageMargin = 2;\r\n showImage = false;\r\n errorMessage = '';\r\n\r\n _listFilter = '';\r\n get listFilter(): string {\r\n return this._listFilter;\r\n }\r\n set listFilter(value: string) {\r\n this._listFilter = value;\r\n this.filteredVehicleModels = this.listFilter ? this.performFilter(this.listFilter) : this.vehicleModels;\r\n }\r\n\r\n filteredVehicleModels: VehicleModel[] = [];\r\n vehicleModels: VehicleModel[] = [];\r\n //dtOptions: DataTables.Settings = {};\r\n dtOptions: any = {};\r\n constructor(private vehicleModelService: VehicleModelService) { }\r\n\r\n performFilter(filterBy: string): VehicleModel[] {\r\n\r\n filterBy = filterBy.toLocaleLowerCase();\r\n return this.vehicleModels.filter((vehicleModel: VehicleModel) =>\r\n vehicleModel.name.toLocaleLowerCase().indexOf(filterBy) !== -1\r\n\r\n );\r\n }\r\n\r\n toggleImage(): void {\r\n this.showImage = !this.showImage;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10,\r\n processing: true,\r\n dom: 'Bfrtip',\r\n buttons: [\r\n 'copy', 'csv', 'excel', 'print'\r\n ]\r\n };\r\n this.vehicleModelService.getVehicleModels().subscribe({\r\n next: item => {\r\n\r\n this.vehicleModels = item;\r\n this.filteredVehicleModels = this.vehicleModels;\r\n\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../../../shared/modules/shared.module';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { DataTablesModule } from 'angular-datatables';\r\nimport { VehicleModelEditComponent } from './vehicle-model-edit.component';\r\nimport { VehicleModelDetailComponent } from './vehicle-model-detail.component';\r\nimport { VehicleModelComponent } from './vehicle-model.component';\r\nimport { VehicleModelEditGuard } from './vehicle-model-edit.guard';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n SharedModule,\r\n ReactiveFormsModule,\r\n DataTablesModule,\r\n RouterModule.forChild([\r\n { path: 'vehicleModel', component: VehicleModelComponent },\r\n { path: 'vehicleModel/:id', component: VehicleModelDetailComponent },\r\n {\r\n path: 'vehicleModel/:id/edit',\r\n canDeactivate: [VehicleModelEditGuard],\r\n component: VehicleModelEditComponent\r\n }\r\n ])\r\n ],\r\n declarations: [\r\n VehicleModelComponent,\r\n VehicleModelDetailComponent,\r\n VehicleModelEditComponent\r\n ]\r\n})\r\nexport class VehicleModelModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy92ZWhpY2xlL3ZlaGljbGUtZGV0YWlsLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Vehicle } from '../../../data-models/vehicle';\r\nimport { VehicleMake } from '../../../data-models/vehiclemake';\r\nimport { VehicleModel } from '../../../data-models/vehiclemodel';\r\nimport { EmployeeService } from '../../services/employee.service';\r\nimport { VehicleMakeService } from '../../services/vehicle-make.service';\r\nimport { VehicleModelService } from '../../services/vehicle-model.service';\r\nimport { VehicleService } from '../../services/vehicle.service';\r\n\r\n@Component({\r\n selector: 'app-vehicle-detail',\r\n templateUrl: './vehicle-detail.component.html',\r\n styleUrls: ['./vehicle-detail.component.css']\r\n})\r\nexport class VehicleDetailComponent implements OnInit {\r\n pageTitle = 'Employee Detail';\r\n errorMessage = '';\r\n vehicle: Vehicle | undefined;\r\n vehicleMake: VehicleMake | undefined;\r\n vehicleModel: VehicleModel | undefined;\r\n constructor(private route: ActivatedRoute,\r\n private router: Router,\r\n private vehicleService: VehicleService,\r\n private vehicleMakeService: VehicleMakeService,\r\n private vehicleModelService: VehicleModelService ) {\r\n }\r\n\r\n ngOnInit() {\r\n const param = this.route.snapshot.paramMap.get('id');\r\n if (param) {\r\n const id = +param;\r\n this.getVehicle(id);\r\n\r\n }\r\n }\r\n\r\n getVehicle(id: number) {\r\n this.vehicleService.getVehicle(id).subscribe({\r\n next: model => {\r\n debugger;\r\n this.vehicle = model;\r\n this.getVehicleModel(model.modelId);\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getVehicleModel(id: number) {\r\n this.vehicleModelService.getVehicleModel(id).subscribe({\r\n next: vehicleModel => {\r\n this.vehicleModel = this.vehicleModel;\r\n this.vehicle.vehicleModel = vehicleModel.name;\r\n this.getVehicleMake(+vehicleModel.makeId);\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getVehicleMake(id: number) {\r\n this.vehicleMakeService.getVehicleMake(id).subscribe({\r\n next: vehicleMake => {\r\n this.vehicleMake = this.vehicleMake;\r\n this.vehicle.vehicleMake = vehicleMake.name;\r\n \r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n onBack(): void {\r\n this.router.navigate(['/dashboard/vehicle']);\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy92ZWhpY2xlL3ZlaGljbGUtZWRpdC5jb21wb25lbnQuY3NzIn0= */\"","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, ViewChildren, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';\r\nimport { FormControlName, FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { fromEvent, merge, Observable, Subscription } from 'rxjs';\r\nimport { Vehicle } from '../../../data-models/vehicle';\r\nimport { VehicleMake } from '../../../data-models/vehiclemake';\r\nimport { VehicleModel } from '../../../data-models/vehiclemodel';\r\nimport { GenericValidator } from '../../../shared/generic-validator';\r\nimport { VehicleService } from '../../services/vehicle.service';\r\nimport { VehicleMakeService } from '../../services/vehicle-make.service';\r\nimport { VehicleModelService } from '../../services/vehicle-model.service';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-vehicle-edit',\r\n templateUrl: './vehicle-edit.component.html',\r\n styleUrls: ['./vehicle-edit.component.css']\r\n})\r\nexport class VehicleEditComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n pageTitle = 'Vehicle Edit';\r\n errorMessage: string;\r\n vehicleForm: FormGroup;\r\n vehicleMakes: VehicleMake[];\r\n vehicleModels: VehicleModel[];\r\n vehicle: Vehicle;\r\n selectedVehicleMake: VehicleMake;\r\n selectedVehicleModel: VehicleModel;\r\n private sub: Subscription;\r\n\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n private validationMessages: { [key: string]: { [key: string]: string } };\r\n private genericValidator: GenericValidator;\r\n\r\n \r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private vehicleService: VehicleService,\r\n private vehicleModelService: VehicleModelService,\r\n private vehicleMakeService: VehicleMakeService,\r\n public datepipe: DatePipe\r\n ) {\r\n\r\n // Defines all of the validation messages for the form.\r\n // These could instead be retrieved from a file or database.\r\n this.validationMessages = {\r\n \r\n registrationNumber: {\r\n required: 'Registration number is required.'\r\n },\r\n \r\n modelId: {\r\n required: 'Vehicle model is required.'\r\n }\r\n };\r\n\r\n // Define an instance of the validator for use with this form,\r\n // passing in this form's set of validation messages.\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.vehicleForm = this.fb.group({\r\n registrationNumber: ['', Validators.required],\r\n ordometerReading: ['', Validators.required],\r\n vehicleMakeId: '',\r\n modelId: ['', Validators.required],\r\n VIN: '',\r\n previousReading: '',\r\n distanceTravelled: '',\r\n id: 0\r\n });\r\n \r\n // Read the employee Id from the route parameter\r\n this.sub = this.route.paramMap.subscribe(\r\n params => {\r\n // Get a List of Companies\r\n this.vehicleMakeService.getVehicleMakes().subscribe(\r\n models => {\r\n\r\n this.vehicleMakes = models;\r\n this.selectedVehicleMake = this.vehicleMakes[0];\r\n\r\n });\r\n this.vehicleModelService.getVehicleModels().subscribe(\r\n models => {\r\n\r\n this.vehicleModels = models;\r\n this.selectedVehicleModel = this.vehicleModels[0];\r\n\r\n });\r\n\r\n const id = +params.get('id');\r\n this.getVehicle(id);\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Watch for the blur event from any input element on the form.\r\n // This is required because the valueChanges does not provide notification on blur\r\n const controlBlurs: Observable[] = this.formInputElements\r\n .map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n\r\n // Merge the blur event observable with the valueChanges observable\r\n // so we only need to subscribe once.\r\n merge(this.vehicleForm.valueChanges, ...controlBlurs).pipe(\r\n debounceTime(800)\r\n ).subscribe(value => {\r\n this.displayMessage = this.genericValidator.processMessages(this.vehicleForm);\r\n });\r\n }\r\n\r\n\r\n getVehicle(id: number): void {\r\n this.vehicleService.getVehicle(id)\r\n .subscribe({\r\n next: (vehicle: Vehicle) => {\r\n this.displayVehicle(vehicle);\r\n if (vehicle.modelId > 0) {\r\n this.getVehicleModelService(vehicle.modelId);\r\n this.changeVehicleModel(vehicle.modelId);\r\n\r\n }\r\n\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n getVehicleModels(makeid: number) {\r\n \r\n this.vehicleMakeService.getVehicleModelsByMake(makeid).subscribe(\r\n models => {\r\n\r\n this.vehicleModels = models;\r\n this.selectedVehicleModel = this.vehicleModels[0];\r\n\r\n });\r\n\r\n }\r\n getVehicleModelService(id: number) {\r\n if (id > 0) {\r\n\r\n this.vehicleModelService.getVehicleModel(id)\r\n .subscribe({\r\n next: (vehicleModel: VehicleModel) => this.selectedVehicleModel = vehicleModel,\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n\r\n // Choose company using select dropdown\r\n changeVehicleModel(vehicleModelId) {\r\n\r\n if (vehicleModelId > 0 && this.vehicleModels !== undefined) {\r\n this.selectedVehicleModel = null;\r\n for (var i = 0; i < this.vehicleModels.length; i++) {\r\n if (this.vehicleModels[i].id == vehicleModelId) {\r\n this.selectedVehicleModel = this.vehicleModels[i];\r\n }\r\n }\r\n\r\n if (this.vehicleForm !== null) {\r\n this.vehicleForm.get(\"modelId\").setValue(vehicleModelId, {\r\n onlySelf: true\r\n });\r\n //this.employeeForm.get(\"company\").setValue(this.selectedCompany.name, {\r\n // onlySelf: true\r\n //});\r\n }\r\n }\r\n\r\n }\r\n changeVehicleMake(id: number) {\r\n if (id > 0 && this.vehicleMakes !== undefined) {\r\n this.selectedVehicleMake = null;\r\n for (var i = 0; i < this.vehicleMakes.length; i++) {\r\n if (this.vehicleMakes[i].id == id) {\r\n this.selectedVehicleMake = this.vehicleMakes[i];\r\n }\r\n }\r\n\r\n if (this.vehicleForm !== null) {\r\n this.vehicleForm.get(\"modelId\").setValue(id, {\r\n onlySelf: true\r\n });\r\n this.getVehicleModels(id);\r\n //this.employeeForm.get(\"company\").setValue(this.selectedCompany.name, {\r\n // onlySelf: true\r\n //});\r\n }\r\n }\r\n }\r\n displayVehicle(vehicle: Vehicle): void {\r\n if (this.vehicleForm) {\r\n this.vehicleForm.reset();\r\n }\r\n this.vehicle = vehicle;\r\n\r\n if (this.vehicle.id === 0) {\r\n this.pageTitle = 'Add Vehicle';\r\n } else {\r\n this.pageTitle = `Edit Vehicle: ${this.vehicle.vehicleMake} ${this.vehicle.vehicleModel}`;\r\n }\r\n debugger;\r\n // Update the data on the form\r\n this.vehicleForm.patchValue({\r\n vehileMake: this.vehicle.vehicleMake,\r\n distanceTravelled: this.vehicle.distanceTravelled,\r\n vehicleModel: this.vehicle.vehicleModel,\r\n previousReading: this.vehicle.previousReading,\r\n ordometerReading : this.vehicle.ordometerReading ,\r\n registrationNumber: this.vehicle.registrationNumber,\r\n VIN: this.vehicle.vin,\r\n modelId: this.vehicle.modelId,\r\n id: this.vehicle.id\r\n });\r\n\r\n }\r\n\r\n deleteVehicle(): void {\r\n if (this.vehicle.id === 0) {\r\n // Don't delete, it was never saved.\r\n this.onSaveComplete();\r\n } else {\r\n if (confirm(`Really delete the Vehicle: ${this.vehicle.vehicleMake} ${this.vehicle.vehicleModel}?`)) {\r\n this.vehicleService.deleteVehicle(this.vehicle.id)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n }\r\n }\r\n\r\n saveVehicle(): void {\r\n debugger;\r\n if (this.vehicleForm.valid) {\r\n if (this.vehicleForm.dirty) {\r\n const p = { ...this.vehicle, ...this.vehicleForm.value };\r\n\r\n if (p.id === 0 || p.id === null) {\r\n this.vehicleService.createVehicle(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n } else {\r\n if (p.modelId === undefined) {\r\n p.modelId = this.selectedVehicleModel.id;\r\n p.vehicleModel = this.selectedVehicleModel.name;\r\n }\r\n this.vehicleService.updateVehicle(p)\r\n .subscribe({\r\n next: () => this.onSaveComplete(),\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n } else {\r\n this.onSaveComplete();\r\n }\r\n } else {\r\n this.errorMessage = 'Please correct the validation errors.';\r\n }\r\n }\r\n\r\n onSaveComplete(): void {\r\n // Reset the form to clear the flags\r\n this.vehicleForm.reset();\r\n this.router.navigate(['/dashboard/vehicle']);\r\n }\r\n}\r\n\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9wYWdlcy92ZWhpY2xlL3ZlaGljbGUuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Vehicle } from '../../../data-models/vehicle';\r\nimport { VehicleService } from '../../services/vehicle.service';\r\n\r\n@Component({\r\n selector: 'app-vehicle',\r\n templateUrl: './vehicle.component.html',\r\n styleUrls: ['./vehicle.component.css']\r\n})\r\nexport class VehicleComponent implements OnInit {\r\n\r\n pageTitle = 'Vehicle List';\r\n imageWidth = 50;\r\n imageMargin = 2;\r\n showImage = false;\r\n errorMessage = '';\r\n\r\n _listFilter = '';\r\n get listFilter(): string {\r\n return this._listFilter;\r\n }\r\n set listFilter(value: string) {\r\n this._listFilter = value;\r\n this.filteredVehicles = this.listFilter ? this.performFilter(this.listFilter) : this.vehicles;\r\n }\r\n\r\n filteredVehicles: Vehicle[] = [];\r\n vehicles: Vehicle[] = [];\r\n //dtOptions: DataTables.Settings = {};\r\n dtOptions: any = {};\r\n constructor(private vehicleService: VehicleService) { }\r\n\r\n performFilter(filterBy: string): Vehicle[] {\r\n\r\n filterBy = filterBy.toLocaleLowerCase();\r\n return this.vehicles.filter((vehicle: Vehicle) =>\r\n vehicle.vehicleModel.toLocaleLowerCase().indexOf(filterBy) !== -1\r\n \r\n );\r\n }\r\n\r\n toggleImage(): void {\r\n this.showImage = !this.showImage;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dtOptions = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10,\r\n processing: true,\r\n dom: 'Bfrtip',\r\n buttons: [\r\n 'copy', 'csv', 'excel', 'print'\r\n ]\r\n };\r\n this.vehicleService.getVehicles().subscribe({\r\n next: item => {\r\n\r\n this.vehicles = item;\r\n this.filteredVehicles = this.vehicles;\r\n\r\n },\r\n error: err => this.errorMessage = err\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, CanActivateChild, CanLoad, Route, UrlSegment, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { VehicleEditComponent } from './vehicle-edit.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VehicleEditGuard implements CanDeactivate {\r\n canDeactivate(component: VehicleEditComponent): Observable | Promise | boolean {\r\n if (component.vehicleForm.dirty) {\r\n const vehicleModel = component.vehicleForm.get('VehicleModel').value || 'New Vehicle';\r\n return confirm(`Navigate away and lose all changes to ${vehicleModel}?`);\r\n }\r\n return true;\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../../../shared/modules/shared.module';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { DataTablesModule } from 'angular-datatables';\r\nimport { VehicleEditComponent } from './vehicle-edit.component';\r\nimport { VehicleEditGuard } from './vehicle.guard';\r\nimport { VehicleDetailComponent } from './vehicle-detail.component';\r\nimport { VehicleComponent } from './vehicle.component';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n SharedModule,\r\n ReactiveFormsModule,\r\n DataTablesModule,\r\n RouterModule.forChild([\r\n { path: 'vehicle', component: VehicleComponent },\r\n { path: 'vehicle/:id', component: VehicleDetailComponent },\r\n {\r\n path: 'vehicle/:id/edit',\r\n canDeactivate: [VehicleEditGuard],\r\n component: VehicleEditComponent\r\n }\r\n ])\r\n ],\r\n declarations: [\r\n VehicleComponent,\r\n VehicleDetailComponent,\r\n VehicleEditComponent\r\n ]\r\n})\r\n\r\nexport class VehicleModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9yZXBvcnRzL3RyaXBzL3RyaXBzLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-trips',\n templateUrl: './trips.component.html',\n styleUrls: ['./trips.component.css']\n})\nexport class TripsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export default \"header .container {\\n position: absolute;\\n left: 10px;\\n top: 10px;\\n}\\n\\nheader .container a {\\n color: #fff;\\n}\\n\\n.plus {\\n font-size: 865px;\\n text-shadow: 4px 4px rgba(0, 0, 0, 0.21);\\n}\\n\\nul.side-nav.fixed ul.collapsible-accordion a.collapsible-header {\\n padding: 0 30px;\\n}\\n\\nul.side-nav.fixed ul.collapsible-accordion .collapsible-body li a {\\n font-weight: 400;\\n padding: 0 37.5px 0 5px;\\n}\\n\\n.collapsible-body {\\n display: block;\\n padding: 0;\\n}\\n\\n.logo h3 {\\n font-size: 20px;\\n text-align: center;\\n margin: 0;\\n}\\n\\n.side-nav .logo a {\\n height: 140px;\\n background-color: #66ceff;\\n color: #fff;\\n}\\n\\n.side-nav .logo a:hover {\\n background-color: #61c4f3;\\n}\\n\\n.logo-img {\\n padding-top: 25px;\\n}\\n\\n.side-nav .source {\\n text-align: center;\\n border-bottom: 1px solid #e9e9e9;\\n}\\n\\n.side-nav .source a {\\n width: 100%;\\n padding: 20px 0 0 0;\\n height: 60px;\\n display: block;\\n}\\n\\n.side-nav .source td {\\n padding: 0;\\n text-align: center;\\n width: 50%;\\n line-height: 15px;\\n}\\n\\n.github-stars {\\n vertical-align: middle;\\n}\\n\\n#logo-container {\\n display: block;\\n}\\n\\n.box-shadow {\\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.05);\\n}\\n\\n.example-container {\\n width: 100%;\\n min-height: 600px;\\n margin-top: 10px;\\n border: 0px solid #555;\\n}\\n\\nmat-drawer, mat-drawer-content {\\n padding-left: 30px;\\n overflow-y: hidden;\\n overflow-x: hidden;\\n}\\n\\nmat-drawer {\\n width: 250px;\\n}\\n\\nmat-icon {\\n padding-right: 30px;\\n}\\n\\n/*router-outlet{\\nwidth: 90%; \\n}*/\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZGFzaGJvYXJkL3Jvb3QvQzpcXERldmVsb3BtZW50c1xcQ3VzdG9tZXJzXFxGYXJtQXBwXFxGYXJtQXBwLldlYi9zcmNcXGFwcFxcZGFzaGJvYXJkXFxyb290XFxyb290LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9kYXNoYm9hcmQvcm9vdC9yb290LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7RUFDQSx3Q0FBQTtBQ0NGOztBREVBO0VBQ0UsZUFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7RUFDQSx1QkFBQTtBQ0NGOztBREVBO0VBQ0UsY0FBQTtFQUNBLFVBQUE7QUNDRjs7QURFQTtFQUNFLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7QUNDRjs7QURFQTtFQUNFLGFBQUE7RUFDQSx5QkFBQTtFQUNBLFdBQUE7QUNDRjs7QURFQTtFQUNFLHlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtBQ0NGOztBREVBO0VBQ0Usa0JBQUE7RUFDQSxnQ0FBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7QUNDRjs7QURFQTtFQUNFLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxpQkFBQTtBQ0NGOztBREVBO0VBQ0Usc0JBQUE7QUNDRjs7QURFQTtFQUNFLGNBQUE7QUNDRjs7QURDQTtFQUNFLGlEQUFBO0FDRUY7O0FEQUE7RUFDSSxXQUFBO0VBRUEsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0FDRUo7O0FEQUE7RUFDSSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7QUNHSjs7QUREQTtFQUNJLFlBQUE7QUNJSjs7QURGQTtFQUNJLG1CQUFBO0FDS0o7O0FERkE7O0VBQUEiLCJmaWxlIjoic3JjL2FwcC9kYXNoYm9hcmQvcm9vdC9yb290LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaGVhZGVyIC5jb250YWluZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAxMHB4O1xyXG4gIHRvcDogMTBweDtcclxufVxyXG5cclxuaGVhZGVyIC5jb250YWluZXIgYSB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5wbHVzIHtcclxuICBmb250LXNpemU6IDg2NXB4O1xyXG4gIHRleHQtc2hhZG93OiA0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yMSk7XHJcbn1cclxuXHJcbnVsLnNpZGUtbmF2LmZpeGVkIHVsLmNvbGxhcHNpYmxlLWFjY29yZGlvbiBhLmNvbGxhcHNpYmxlLWhlYWRlciB7XHJcbiAgcGFkZGluZzogMCAzMHB4O1xyXG59XHJcblxyXG51bC5zaWRlLW5hdi5maXhlZCB1bC5jb2xsYXBzaWJsZS1hY2NvcmRpb24gLmNvbGxhcHNpYmxlLWJvZHkgbGkgYSB7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBwYWRkaW5nOiAwIDM3LjVweCAwIDVweDtcclxufVxyXG5cclxuLmNvbGxhcHNpYmxlLWJvZHkge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5sb2dvIGgzIHtcclxuICBmb250LXNpemU6IDIwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLnNpZGUtbmF2IC5sb2dvIGEge1xyXG4gIGhlaWdodDogMTQwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2Y2VmZjtcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLnNpZGUtbmF2IC5sb2dvIGE6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM2MWM0ZjM7XHJcbn1cclxuXHJcbi5sb2dvLWltZyB7XHJcbiAgcGFkZGluZy10b3A6IDI1cHg7XHJcbn1cclxuXHJcbi5zaWRlLW5hdiAuc291cmNlIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOWU5ZTk7XHJcbn1cclxuXHJcbi5zaWRlLW5hdiAuc291cmNlIGEge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmc6IDIwcHggMCAwIDA7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uc2lkZS1uYXYgLnNvdXJjZSB0ZCB7XHJcbiAgcGFkZGluZzogMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2lkdGg6IDUwJTtcclxuICBsaW5lLWhlaWdodDogMTVweDtcclxufVxyXG5cclxuLmdpdGh1Yi1zdGFycyB7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuI2xvZ28tY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4uYm94LXNoYWRvdyB7XHJcbiAgYm94LXNoYWRvdzogMCAuMjVyZW0gLjc1cmVtIHJnYmEoMCwgMCwgMCwgLjA1KTtcclxufVxyXG4uZXhhbXBsZS1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBcclxuICAgIG1pbi1oZWlnaHQ6IDYwMHB4O1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIGJvcmRlcjogMHB4IHNvbGlkICM1NTU7XHJcbn1cclxubWF0LWRyYXdlciwgbWF0LWRyYXdlci1jb250ZW50IHtcclxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcclxuICAgIG92ZXJmbG93LXk6IGhpZGRlbjsgLy8gaGlkZSB2ZXJ0aWNhbFxyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuOyAvLyBoaWRlIGhvcml6b250YWxcclxufVxyXG5tYXQtZHJhd2Vye1xyXG4gICAgd2lkdGg6MjUwcHg7XHJcbn1cclxubWF0LWljb257XHJcbiAgICBwYWRkaW5nLXJpZ2h0OjMwcHg7XHJcbiAgIH1cclxuXHJcbi8qcm91dGVyLW91dGxldHtcclxud2lkdGg6IDkwJTsgICAgXHJcbn0qLyIsImhlYWRlciAuY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICB0b3A6IDEwcHg7XG59XG5cbmhlYWRlciAuY29udGFpbmVyIGEge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnBsdXMge1xuICBmb250LXNpemU6IDg2NXB4O1xuICB0ZXh0LXNoYWRvdzogNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMjEpO1xufVxuXG51bC5zaWRlLW5hdi5maXhlZCB1bC5jb2xsYXBzaWJsZS1hY2NvcmRpb24gYS5jb2xsYXBzaWJsZS1oZWFkZXIge1xuICBwYWRkaW5nOiAwIDMwcHg7XG59XG5cbnVsLnNpZGUtbmF2LmZpeGVkIHVsLmNvbGxhcHNpYmxlLWFjY29yZGlvbiAuY29sbGFwc2libGUtYm9keSBsaSBhIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZzogMCAzNy41cHggMCA1cHg7XG59XG5cbi5jb2xsYXBzaWJsZS1ib2R5IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5sb2dvIGgzIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbn1cblxuLnNpZGUtbmF2IC5sb2dvIGEge1xuICBoZWlnaHQ6IDE0MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjZjZWZmO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnNpZGUtbmF2IC5sb2dvIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjFjNGYzO1xufVxuXG4ubG9nby1pbWcge1xuICBwYWRkaW5nLXRvcDogMjVweDtcbn1cblxuLnNpZGUtbmF2IC5zb3VyY2Uge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTllOWU5O1xufVxuXG4uc2lkZS1uYXYgLnNvdXJjZSBhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDIwcHggMCAwIDA7XG4gIGhlaWdodDogNjBweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zaWRlLW5hdiAuc291cmNlIHRkIHtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogNTAlO1xuICBsaW5lLWhlaWdodDogMTVweDtcbn1cblxuLmdpdGh1Yi1zdGFycyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbiNsb2dvLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYm94LXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDAgMC4yNXJlbSAwLjc1cmVtIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG5cbi5leGFtcGxlLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiA2MDBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgYm9yZGVyOiAwcHggc29saWQgIzU1NTtcbn1cblxubWF0LWRyYXdlciwgbWF0LWRyYXdlci1jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxubWF0LWRyYXdlciB7XG4gIHdpZHRoOiAyNTBweDtcbn1cblxubWF0LWljb24ge1xuICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xufVxuXG4vKnJvdXRlci1vdXRsZXR7XG53aWR0aDogOTAlOyAgICBcbn0qLyJdfQ== */\"","import { Component, OnInit } from '@angular/core';\n \n\n@Component({\n selector: 'app-root',\n templateUrl: './root.component.html',\n styleUrls: ['./root.component.scss'],\n \n})\nexport class RootComponent implements OnInit {\n opened: true;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { ConfigService } from '../../shared/utils/config.service';\r\n\r\nimport {BaseService} from '../../shared/services/base.service';\r\n\r\nimport { Observable, pipe } from 'rxjs'; \r\n\r\n// Add the RxJS Observable operators we need in this app.\r\n//import '../../rxjs-operators';\r\nimport { Response } from 'selenium-webdriver/http';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Home } from 'src/app/data-models/home';\r\nimport { EmployeeTrip } from '../../data-models/employeetrip';\r\n\r\n@Injectable()\r\n\r\nexport class DashboardService extends BaseService {\r\n\r\n baseUrl: string = ''; \r\n\r\n constructor(private http: HttpClient, private configService: ConfigService) {\r\n super();\r\n this.baseUrl = configService.getApiURI();\r\n }\r\n\r\n getHomeDetails(): Observable {\r\n\r\n //let headers = new HttpHeaders();\r\n //headers.append('Content-Type', 'application/json');\r\n let authToken = localStorage.getItem('auth_token');\r\n //headers.append('Authorization', `Bearer ${authToken}`);\r\n\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${authToken}`\r\n })\r\n };\r\n //httpOptions.headers =\r\n // httpOptions.headers.set('Authorization', `Bearer ${authToken}`);\r\n return this.http.get(this.baseUrl + \"/dashboard/home\",httpOptions)\r\n .pipe(map((response: Response) => ((response)) as Home),catchError(this.handleError));\r\n }\r\n\r\n getTripHomeDetails(): Observable {\r\n\r\n //let headers = new HttpHeaders();\r\n //headers.append('Content-Type', 'application/json');\r\n let authToken = localStorage.getItem('auth_token');\r\n //headers.append('Authorization', `Bearer ${authToken}`);\r\n\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${authToken}`\r\n })\r\n };\r\n //httpOptions.headers =\r\n // httpOptions.headers.set('Authorization', `Bearer ${authToken}`);\r\n return this.http.get(this.baseUrl + \"/dashboard/home\", httpOptions)\r\n .pipe(map((response: Response) => ((response)) as EmployeeTrip[]), catchError(this.handleError));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Employee } from 'src/app/data-models/employee';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeService {\r\n private employeeUrl = 'api/Employee';\r\n\r\n constructor(private http: HttpClient,) { }\r\n getEmployees(): Observable {\r\n return this.http.get(this.employeeUrl + '/GetEmployees')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getEmployee(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeEmployee());\r\n }\r\n const url = `${this.employeeUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createEmployee(employee: Employee): Observable {\r\n debugger;\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n employee.id = null;\r\n return this.http.post(this.employeeUrl + '/SaveEmployee', JSON.stringify(employee), { headers })\r\n .pipe(\r\n tap(data => console.log('createEmployee: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteEmployee(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.employeeUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteEmployee: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateEmployee(employee: Employee): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.employeeUrl}/${employee.id}`;\r\n return this.http.put(url, employee, { headers })\r\n .pipe(\r\n tap(() => console.log('updateEmployee: ' + employee.id)),\r\n // Return the field on an update\r\n map(() => employee),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeEmployee(): Employee {\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n firstName: null,\r\n surname: null,\r\n genderId: \"1\",\r\n companyId: null,\r\n dateOfBirth: null,\r\n employeeNumber: null,\r\n companyName: null,\r\n jobTitle: null,\r\n gender:null\r\n \r\n\r\n };\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { EmployeeTrip } from 'src/app/data-models/employeetrip';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeTripService {\r\n private employeeTripUrl = 'api/EmployeeTrip';\r\n\r\n constructor(private http: HttpClient,) { }\r\n getEmployeeTrips(): Observable {\r\n return this.http.get(this.employeeTripUrl + '/GetEmployeeTrips')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n getEmployeeTripsByEmployeeId(id : number): Observable {\r\n return this.http.get(this.employeeTripUrl + '/' + id + '/getEmployeeTripsByEmployeeId')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n \r\n }\r\n getEmployeeTripsByVehicleId(id : number): Observable {\r\n \r\n return this.http.get(this.employeeTripUrl + '/' + id + '/GetEmployeeTripsByVehicleId')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getEmployeeTrip(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeEmployeeTrip());\r\n }\r\n const url = `${this.employeeTripUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createEmployeeTrip(employeeTrip: EmployeeTrip): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n employeeTrip.id = null;\r\n return this.http.post(this.employeeTripUrl + '/SaveEmployeeTrip', JSON.stringify(employeeTrip), { headers })\r\n .pipe(\r\n tap(data => console.log('createEmployeeTrip: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteEmployeeTrip(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.employeeTripUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteEmployeeTrip: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateEmployeeTrip(employeeTrip: EmployeeTrip): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.employeeTripUrl}/${employeeTrip.id}`;\r\n return this.http.put(url, employeeTrip, { headers })\r\n .pipe(\r\n tap(() => console.log('updateEmployeeTrip: ' + employeeTrip.id)),\r\n // Return the field on an update\r\n map(() => employeeTrip),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeEmployeeTrip(): EmployeeTrip{\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n employeeId: null,\r\n vehicleId: null,\r\n productId: null,\r\n distanceTravelled: null,\r\n price: null,\r\n quantity: null,\r\n transactionDate: null,\r\n invoiceUrl: null,\r\n employeeName: null,\r\n productName: null,\r\n vehicleName: null,\r\n vehicleRegistrationNumber: null,\r\n kmTravelled: null,\r\n value: null,\r\n companyName: null,\r\n valuePerkmTravelled: null,\r\n odometerUrl:null\r\n };\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, throwError, of } from 'rxjs'\r\nimport { map, tap, catchError } from 'rxjs/operators'\r\nimport { Farm } from '../../data-models/farm';\r\n\r\n@Injectable(\r\n {\r\n providedIn: 'root'\r\n }\r\n)\r\nexport class FarmService {\r\n private farmsUrl = 'api/farms';\r\n\r\n constructor(private http: HttpClient, ) { }\r\n getFarms(): Observable {\r\n return this.http.get(this.farmsUrl + '/GetFarms')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getFarm(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeFarm());\r\n }\r\n const url = `${this.farmsUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createFarm(farm: Farm): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n farm.id = null;\r\n return this.http.post(this.farmsUrl + '/SaveFarm', JSON.stringify( farm), { headers })\r\n .pipe(\r\n tap(data => console.log('createFarm: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteFarm(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.farmsUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteFarm: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateFarm(farm: Farm): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.farmsUrl}/${farm.id}`;\r\n return this.http.put(url, farm, { headers })\r\n .pipe(\r\n tap(() => console.log('updateFarm: ' + farm.id)),\r\n // Return the farm on an update\r\n map(() => farm),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeFarm(): Farm {\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n farmName: null,\r\n farmCode: null,\r\n latitude: null,\r\n longitute: null,\r\n size: null ,\r\n imageUrl: null\r\n\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, throwError, of } from 'rxjs'\r\nimport { map, tap, catchError } from 'rxjs/operators'\r\nimport { Field } from '../../data-models/field';\r\n\r\n@Injectable()\r\nexport class FieldService {\r\n private fieldsUrl = 'api/fields';\r\n\r\n constructor(private http: HttpClient, ) { }\r\n getFields(): Observable {\r\n return this.http.get(this.fieldsUrl + '/GetFields')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getField(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeField());\r\n }\r\n const url = `${this.fieldsUrl}/${id}`;\r\n \r\n return this.http.get(url)\r\n .pipe(\r\n tap(data =>JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createField(field: Field): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n field.id = null;\r\n return this.http.post(this.fieldsUrl + '/SaveField', JSON.stringify(field), { headers })\r\n .pipe(\r\n tap(data => console.log('createField: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteField(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.fieldsUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteField: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateField(field: Field): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.fieldsUrl}/${field.id}`;\r\n return this.http.put(url, field, { headers })\r\n .pipe(\r\n tap(() => console.log('updateField: ' + field.id)),\r\n // Return the field on an update\r\n map(() => field),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeField(): Field {\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n fieldName: null,\r\n code: null,\r\n rowSpacing: null,\r\n rentalAgreementId: null,\r\n size: null,\r\n farmId: null,\r\n farmName :null,\r\n rentalAgreementText:null,\r\n rentalAgreementName:null\r\n\r\n };\r\n }\r\n}\r\n","import { HttpClient, HttpEventType, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\n\r\nimport { EmployeeTrip } from '../../data-models/employeetrip';\r\nimport { InterceptorMetaOptions } from '../../data-models/InterceptorMetaOptions';\r\nimport { catchError, tap } from 'rxjs/operators';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FileUploadServiceService {\r\n\r\n // API url\r\n private baseApiUrl = \"api/EmployeeTrip/FileUpLoad\"\r\n private routerInfo: any;\r\n constructor(private http: HttpClient,\r\n private router: Router) {\r\n console.log(router.url);\r\n \r\n this.routerInfo = router;//.location._platformLocation.location.origin;\r\n }\r\n\r\n // Returns an observable\r\n upload(file): Observable {\r\n // Create form data\r\n const formData = new FormData();\r\n\r\n const headers = new HttpHeaders({ 'metadata': 'true', 'isFile': 'true' });\r\n // Store form name as \"file\" with file data\r\n formData.append(\"file\", file, file.name);\r\n \r\n // Make http post request over api\r\n // with formData as req\r\n return this.http.post(this.baseApiUrl, formData, { headers: headers, reportProgress: true, observe: 'events' })\r\n .pipe(\r\n tap(data => data),\r\n catchError(this.handleError)\r\n );\r\n }\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n public uploadFile = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n \r\n const headers = new HttpHeaders({ 'isFile': 'true' });\r\n let fileToUpload = files;\r\n const formData = new FormData();\r\n formData.append('file', fileToUpload, fileToUpload.name);\r\n this.http.post(this.baseApiUrl, formData, { headers: headers, reportProgress: true, observe: 'events' })\r\n .subscribe(event => {\r\n if (event.type === HttpEventType.UploadProgress)\r\n console.log( Math.round(100 * event.loaded / event.total));\r\n else if (event.type === HttpEventType.Response) {\r\n console.log( 'Upload success.');\r\n \r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Plant } from 'src/app/data-models/plant';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { PlantVariety } from 'src/app/data-models/plant-variety';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PlantVarietyService {\r\n private plantVarietiesUrl = 'api/PlantVarieties';\r\n \r\n constructor(private http: HttpClient, ) { }\r\n getPlantVarieties(): Observable {\r\n return this.http.get(this.plantVarietiesUrl + '/GetPlantVarieties')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n getPlantVarietiesByProductTypeId(id: number): Observable {\r\n if (id === 0) {\r\n //return of(this.initializeProductType());\r\n }\r\n return this.http.get(this.plantVarietiesUrl + '/' + id + '/GetPlantVarietiesByProductTypeId')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getPlantVariety(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializePlantVariety());\r\n }\r\n const url = `${this.plantVarietiesUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createPlantVariety(plantVariety: PlantVariety): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n plantVariety.id = null;\r\n return this.http.post(this.plantVarietiesUrl + '/SavePlantVariety', JSON.stringify(plantVariety), { headers })\r\n .pipe(\r\n tap(data => console.log('createPlantVariety: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deletePlantVariety(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.plantVarietiesUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deletePlantVariety: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updatePlantVariety(plantVariety: PlantVariety): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.plantVarietiesUrl}/${plantVariety.id}`;\r\n return this.http.put(url, plantVariety, { headers })\r\n .pipe(\r\n tap(() => console.log('updatePlantVariety: ' + plantVariety.id)),\r\n // Return the field on an update\r\n map(() => plantVariety),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n \r\n private initializePlantVariety(): PlantVariety {\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n productTypeId: 0,\r\n name: null,\r\n SupplierId: null,\r\n timeToFirstHarvest: null,\r\n timeToGerminate: null,\r\n totalDaysToEndOfCrop: null,\r\n plantTypeName: null,\r\n code: null,\r\n description: null,\r\n price: null,\r\n zimPrice:null\r\n \r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Plant } from 'src/app/data-models/plant';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PlantService {\r\n private plantsUrl = 'api/plants';\r\n\r\n constructor(private http: HttpClient, ) { }\r\n getPlants(): Observable {\r\n return this.http.get(this.plantsUrl + '/GetPlants')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getPlant(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializePlant());\r\n }\r\n const url = `${this.plantsUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createPlant(plant: Plant): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n plant.id = null;\r\n return this.http.post(this.plantsUrl + '/SavePlant', JSON.stringify(plant), { headers })\r\n .pipe(\r\n tap(data => console.log('createPlant: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deletePlant(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.plantsUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deletePlant: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updatePlant(plant: Plant): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.plantsUrl}/${plant.id}`;\r\n return this.http.put(url, plant, { headers })\r\n .pipe(\r\n tap(() => console.log('updatePlant: ' + plant.id)),\r\n // Return the field on an update\r\n map(() => plant),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializePlant(): Plant{\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n name: null,\r\n description: null,\r\n plantTypeId: null\r\n \r\n };\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Plant } from 'src/app/data-models/plant';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { TraceProduct } from 'src/app/data-models/trace-product';\r\nimport { ProductType } from 'src/app/data-models/productType';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductTypeService {\r\n private productTypesUrl = 'api/productTypes';\r\n\r\n constructor(private http: HttpClient, ) { }\r\n getProductTypes(): Observable {\r\n return this.http.get(this.productTypesUrl+ '/GetProductTypes')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n getProductTypeByParentId(id: number): Observable {\r\n if (id === 0) {\r\n //return of(this.initializeProductType());\r\n }\r\n return this.http.get(this.productTypesUrl +'/' + id + '/GetProductTypeByParentId' ) \r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getProductType(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeProductType());\r\n }\r\n const url = `${this.productTypesUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createProductType(productType: ProductType): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n productType.id = null;\r\n return this.http.post(this.productTypesUrl + '/SaveProductType', JSON.stringify(productType), { headers })\r\n .pipe(\r\n tap(data => console.log('createProductType: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteProductType(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.productTypesUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteProductType: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateProductType(productType: ProductType): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.productTypesUrl}/${productType.id}`;\r\n return this.http.put(url, productType, { headers })\r\n .pipe(\r\n tap(() => console.log('updateProductType: ' + productType.id)),\r\n // Return the field on an update\r\n map(() => productType),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeProductType(): ProductType{\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n name: null,\r\n description: null,\r\n parentId: null,\r\n \r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Plant } from 'src/app/data-models/plant';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { TraceProduct } from 'src/app/data-models/trace-product';\r\nimport { Product } from 'src/app/data-models/product';\r\n\r\n@Injectable()\r\nexport class ProductService {\r\n private productsUrl = 'api/Product';\r\n\r\n constructor(private http: HttpClient, ) { }\r\n getProducts(): Observable {\r\n return this.http.get(this.productsUrl + '/GetProducts')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n \r\n getProductByProductTypeAndReference(productTypeId: number, reference: number): Observable {\r\n\r\n if (productTypeId === 0 && reference===0) {\r\n return of(this.initializeProduct());\r\n }\r\n var product = this.initializeProduct();\r\n const url = `${this.productsUrl}/GetProductByProductTypeAndReference`;\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n product.productTypeId = productTypeId;\r\n product.reference = reference as any;\r\n return this.http.post(url, JSON.stringify(product), { headers })\r\n\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n getProductsByProductType(id: number): Observable {\r\n\r\n if (id === 0) {\r\n //return of(this.initializeVehicleMake());\r\n }\r\n return this.http.get(this.productsUrl + '/' + id + '/GetProductsByProductType')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n getProduct(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeProduct());\r\n }\r\n const url = `${this.productsUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createProduct(product: Product): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n product.id = null;\r\n return this.http.post(this.productsUrl + '/SaveProduct', JSON.stringify(product), { headers })\r\n .pipe(\r\n tap(data => console.log('createProduct: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteProduct(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.productsUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteProduct: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateProduct(product: Product): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.productsUrl}/${product.id}`;\r\n return this.http.put(url, product, { headers })\r\n .pipe(\r\n tap(() => console.log('updateProduct: ' + product.id)),\r\n // Return the field on an update\r\n map(() => product),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n \r\n private initializeProduct(): Product {\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n name: null,\r\n code: null,\r\n brandId: null,\r\n description: null,\r\n price: null,\r\n productTypeId: null,\r\n reference: null,\r\n zimPrice: null \r\n\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Plant } from 'src/app/data-models/plant';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { TraceProduct } from 'src/app/data-models/trace-product';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TraceProductService {\r\n private traceProductsUrl = 'api/traceProducts';\r\n\r\n constructor(private http: HttpClient, ) { }\r\n getTraceProducts(): Observable {\r\n return this.http.get(this.traceProductsUrl + '/GetTraceProducts')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getTraceProduct(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeTraceProduct());\r\n }\r\n const url = `${this.traceProductsUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createTraceProduct(traceProduct: TraceProduct): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.post(this.traceProductsUrl + '/SaveTraceProduct', JSON.stringify(traceProduct), { headers })\r\n .pipe(\r\n tap(data => console.log('createTraceProduct: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteTraceProduct(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.traceProductsUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteTraceProduct: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateField(traceProduct: TraceProduct): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.traceProductsUrl}/${traceProduct.productId}`;\r\n return this.http.put(url, traceProduct, { headers })\r\n .pipe(\r\n tap(() => console.log('updateTraceProduct: ' + traceProduct.productId)),\r\n // Return the field on an update\r\n map(() => traceProduct),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeTraceProduct(): TraceProduct {\r\n // Return an initialized object\r\n return {\r\n productId: 0,\r\n tractId: 0,\r\n addedDate: null,\r\n allocationPrice: null,\r\n allocationZimPrice: null,\r\n quantity: null,\r\n \r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Trace } from 'src/app/data-models/trace';\r\n\r\n@Injectable()\r\nexport class TraceService {\r\n private tracesUrl = 'api/traces';\r\n\r\n constructor(private http: HttpClient, ) { }\r\n getTraces(): Observable {\r\n return this.http.get(this.tracesUrl + '/GetTraces')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getTrace(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeTrace());\r\n }\r\n const url = `${this.tracesUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createTrace(trace: Trace): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n trace.id = null;\r\n return this.http.post(this.tracesUrl + '/SaveTrace', JSON.stringify(trace), { headers })\r\n .pipe(\r\n tap(data => console.log('createTrace: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteTrace(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.tracesUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteTrace: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateTrace(trace: Trace): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.tracesUrl}/${trace.id}`;\r\n return this.http.put(url, trace, { headers })\r\n .pipe(\r\n tap(() => console.log('updateField: ' + trace.id)),\r\n // Return the field on an update\r\n map(() => trace),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeTrace(): Trace {\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n fieldId: null,\r\n code: null,\r\n plantSpacing: null,\r\n irrigationTypeId: null,\r\n fieldName: null,\r\n fieldCode: null,\r\n irrigation: null,\r\n size: null,\r\n bedLength: null,\r\n bedQuantity: null,\r\n bedSpacing:null\r\n\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { VehicleMake } from '../../data-models/vehiclemake';\r\nimport { VehicleModel } from '../../data-models/vehiclemodel';\r\nimport { debug } from 'util';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VehicleMakeService {\r\n private vehicleMakeUrl = 'api/VehicleMake';\r\n\r\n constructor(private http: HttpClient,) { }\r\n getVehicleMakes(): Observable {\r\n return this.http.get(this.vehicleMakeUrl + '/GetVehicleMakes')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n getVehicleModelsByMake(id: number): Observable {\r\n \r\n \r\n if (id === 0) {\r\n //return of(this.initializeVehicleMake());\r\n }\r\n return this.http.get(this.vehicleMakeUrl + '/' + id + '/GetVehicleModelsByMakeId')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n getVehicleMake(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeVehicleMake());\r\n }\r\n const url = `${this.vehicleMakeUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createVehicleMake(vehicleMake: VehicleMake): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n vehicleMake.id = null;\r\n return this.http.post(this.vehicleMakeUrl + '/SaveVehicleMake', JSON.stringify(vehicleMake), { headers })\r\n .pipe(\r\n tap(data => console.log('createVehicleMake: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteVehicleMake(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.vehicleMakeUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteVehicleMake: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateVehicleMake(vehicleMake: VehicleMake): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.vehicleMakeUrl}/${vehicleMake.id}`;\r\n return this.http.put(url, vehicleMake, { headers })\r\n .pipe(\r\n tap(() => console.log('updateVehicleMake: ' + vehicleMake.id)),\r\n // Return the field on an update\r\n map(() => vehicleMake),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeVehicleMake(): VehicleMake {\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n name: null\r\n };\r\n }\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { VehicleModel } from '../../data-models/vehiclemodel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VehicleModelService {\r\n private vehicleModelUrl = 'api/VehicleModel';\r\n\r\n constructor(private http: HttpClient,) { }\r\n getVehicleModels(): Observable {\r\n return this.http.get(this.vehicleModelUrl + '/GetVehicleModels')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n \r\n getVehicleModel(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeVehicleModel());\r\n }\r\n const url = `${this.vehicleModelUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createVehicleModel(vehicleModel: VehicleModel): Observable {\r\n \r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n vehicleModel.id = null;\r\n return this.http.post(this.vehicleModelUrl + '/SaveVehicleModel', JSON.stringify(vehicleModel), { headers })\r\n .pipe(\r\n tap(data => console.log('createVehicleModel: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteVehicleModel(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.vehicleModelUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteVehicleModel: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateVehicleModel(vehicleModel: VehicleModel): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.vehicleModelUrl}/${vehicleModel.id}`;\r\n return this.http.put(url, vehicleModel, { headers })\r\n .pipe(\r\n tap(() => console.log('updateVehicleModel: ' + vehicleModel.id)),\r\n // Return the field on an update\r\n map(() => vehicleModel),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeVehicleModel(): VehicleModel{\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n name: null,\r\n makeId: null,\r\n vehicleMake:null\r\n };\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Vehicle } from 'src/app/data-models/vehicle';\r\nimport { throwError, Observable, of } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VehicleService {\r\n private vehicleUrl = 'api/Vehicle';\r\n\r\n constructor(private http: HttpClient,) { }\r\n getVehicles(): Observable {\r\n return this.http.get(this.vehicleUrl + '/GetVehicles')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n getVehicleByModelId(id: number): Observable {\r\n return this.http.get(this.vehicleUrl + '/ListVehicleByModelId/' + id)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n getVehicle(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeVehicle());\r\n }\r\n const url = `${this.vehicleUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createVehicle(vehicle: Vehicle): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n vehicle.id = null;\r\n return this.http.post(this.vehicleUrl + '/SaveVehicle', JSON.stringify(vehicle), { headers })\r\n .pipe(\r\n tap(data => console.log('createVehicle: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteVehicle(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.vehicleUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteVehicle: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateVehicle(vehicle: Vehicle): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.vehicleUrl}/${vehicle.id}`;\r\n return this.http.put(url, vehicle, { headers })\r\n .pipe(\r\n tap(() => console.log('updateVehicle: ' + vehicle.id)),\r\n // Return the field on an update\r\n map(() => vehicle),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n \r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeVehicle(): Vehicle{\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n modelId: null,\r\n distanceTravelled: null,\r\n ordometerReading: null,\r\n previousReading: null,\r\n registrationNumber: null,\r\n vehicleMake: null,\r\n vehicleModel: null,\r\n vin: null\r\n\r\n };\r\n }\r\n}\r\n\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2Rhc2hib2FyZC9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-settings',\n templateUrl: './settings.component.html',\n styleUrls: ['./settings.component.scss']\n})\nexport class SettingsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export enum Gender {\r\n male ,\r\n female ,\r\n}\r\n","import { Directive, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, FormControl } from '@angular/forms';\n\nfunction validateEmailFactory() {\n return (c: FormControl) => {\n let EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;\n\n return EMAIL_REGEXP.test(c.value) ? null : {\n validateEmail: {\n valid: false\n }\n };\n };\n}\n\n@Directive({\n selector: '[validateEmail][ngModel],[validateEmail][formControl]',\n providers: [\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => EmailValidator), multi: true }\n ]\n})\nexport class EmailValidator {\n\n validator: Function;\n\n constructor() {\n this.validator = validateEmailFactory();\n }\n\n validate(c: FormControl) {\n return this.validator(c);\n }\n}","import { Directive, ElementRef, Renderer, OnInit } from \"@angular/core\";\n\n@Directive({ selector: '[tmFocus]' })\n\nexport class myFocus implements OnInit {\n constructor(private el: ElementRef, private renderer: Renderer) {\n // focus won't work at construction time - too early\n }\n\n ngOnInit() {\n this.renderer.invokeElementMethod(this.el.nativeElement, 'focus', []);\n }\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit,OnDestroy } from '@angular/core';\nimport {Subscription} from 'rxjs';\n\nimport { UserService } from '../shared/services/user.service';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\n\nexport class HeaderComponent implements OnInit,OnDestroy {\n\n status: boolean;\n subscription:Subscription;\n\n constructor(private userService:UserService) { \n }\n\n logout() {\n this.userService.logout(); \n }\n\n ngOnInit() {\n this.subscription = this.userService.authNavStatus$.subscribe(status => this.status = status);\n }\n\n ngOnDestroy() {\n // prevent memory leak when component is destroyed\n this.subscription.unsubscribe();\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2hvbWUvaG9tZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss']\n})\nexport class HomeComponent {\n \n constructor() { } \n}\n","import { NgModule } from '@angular/core';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n@NgModule({\r\n exports: [\r\n A11yModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n PortalModule,\r\n ScrollingModule,\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { AccordionModule} from 'primeng/accordion';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CardModule } from 'primeng/card'\r\nimport { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n exports: [\r\n AccordionModule,\r\n AutoCompleteModule,\r\n BreadcrumbModule,\r\n ButtonModule,\r\n CalendarModule,\r\n CardModule,\r\n \r\n ]\r\n})\r\nexport class PrimeNgModule { }\r\n","import { FormGroup } from '@angular/forms';\r\n\r\n// Generic validator for Reactive forms\r\n// Implemented as a class, not a service, so it can retain state for multiple forms.\r\nexport class GenericValidator {\r\n\r\n // Provide the set of valid validation messages\r\n // Stucture:\r\n // controlName1: {\r\n // validationRuleName1: 'Validation Message.',\r\n // validationRuleName2: 'Validation Message.'\r\n // },\r\n // controlName2: {\r\n // validationRuleName1: 'Validation Message.',\r\n // validationRuleName2: 'Validation Message.'\r\n // }\r\n constructor(private validationMessages: { [key: string]: { [key: string]: string } }) {\r\n\r\n }\r\n\r\n // Processes each control within a FormGroup\r\n // And returns a set of validation messages to display\r\n // Structure\r\n // controlName1: 'Validation Message.',\r\n // controlName2: 'Validation Message.'\r\n processMessages(container: FormGroup): { [key: string]: string } {\r\n const messages = {};\r\n for (const controlKey in container.controls) {\r\n if (container.controls.hasOwnProperty(controlKey)) {\r\n const c = container.controls[controlKey];\r\n // If it is a FormGroup, process its child controls.\r\n if (c instanceof FormGroup) {\r\n const childMessages = this.processMessages(c);\r\n Object.assign(messages, childMessages);\r\n } else {\r\n // Only validate if there are validation messages for the control\r\n if (this.validationMessages[controlKey]) {\r\n messages[controlKey] = '';\r\n if ((c.dirty || c.touched) && c.errors) {\r\n Object.keys(c.errors).map(messageKey => {\r\n if (this.validationMessages[controlKey][messageKey]) {\r\n messages[controlKey] += this.validationMessages[controlKey][messageKey] + ' ';\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return messages;\r\n }\r\n\r\n getErrorCount(container: FormGroup): number {\r\n let errorCount = 0;\r\n for (const controlKey in container.controls) {\r\n if (container.controls.hasOwnProperty(controlKey)) {\r\n if (container.controls[controlKey].errors) {\r\n errorCount += Object.keys(container.controls[controlKey].errors).length;\r\n console.log(errorCount);\r\n }\r\n }\r\n }\r\n return errorCount;\r\n }\r\n}\r\n","// include directives/components commonly used in features modules in this shared modules\r\n// and import me into the feature module\r\n// importing them individually results in: Type xxx is part of the declarations of 2 modules: ... Please consider moving to a higher module...\r\n// https://github.com/angular/angular/issues/10646 \r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms'; \r\nimport { myFocus } from '../../directives/focus.directive';\r\nimport {SpinnerComponent} from '../../spinner/spinner.component'; \r\n\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [myFocus, SpinnerComponent],\r\n exports: [myFocus, SpinnerComponent, CommonModule, FormsModule],\r\n providers: []\r\n})\r\nexport class SharedModule { }\r\n","import { ValidatorFn, AbstractControl, ValidationErrors } from \"@angular/forms\";\r\n\r\nexport const ValidateOdometerReadingValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const distanceTravelled = control.get('distanceTravelled');\r\n const previousReading = control.get('previousReading');\r\n \r\n return previousReading && distanceTravelled && (distanceTravelled.value <= previousReading.value) ? { ValidateOdometerReading: true } : null;\r\n};","import { Observable } from 'rxjs';\r\nimport { debug } from 'util';\r\n\r\n\r\nexport abstract class BaseService { \r\n \r\n constructor() { }\r\n\r\n protected handleError(error: any) {\r\n debugger;\r\n var applicationError = error.message;\r\n\r\n // either applicationError in header or model error in body\r\n if (applicationError) {\r\n return Observable.throw(applicationError);\r\n }\r\n\r\n var modelStateErrors: string = '';\r\n\r\n var serverError = error;\r\n\r\n if (!serverError.type) {\r\n for (var key in serverError) {\r\n if (serverError[key])\r\n modelStateErrors += serverError[key] + '\\n';\r\n }\r\n }\r\n\r\n modelStateErrors = modelStateErrors = '' ? null : modelStateErrors;\r\n return Observable.throw(modelStateErrors || 'Server error');\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { BaseService } from \"./base.service\";\r\nimport { Observable, throwError, of } from \"rxjs\";\r\nimport { Company } from \"../../data-models/company\";\r\nimport { map, catchError, tap } from \"rxjs/operators\";\r\n\r\n@Injectable(\r\n \r\n)\r\nexport class CompanyService {\r\n private companyUrl = 'api/Company';\r\n \r\n constructor(private http: HttpClient, ) { }\r\n getCompanies(): Observable {\r\n return this.http.get(this.companyUrl + '/GetCompanies')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getCompany(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeCompany());\r\n }\r\n const url = `${this.companyUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createCompany(company: Company): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n company.id = null;\r\n return this.http.post(this.companyUrl + '/SaveCompany', JSON.stringify(company), { headers })\r\n .pipe(\r\n tap(data => console.log('createCompany: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteRentalAgreement(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.companyUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteCompany: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateCompany(company: Company): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.companyUrl}/${company.id}`;\r\n return this.http.put(url, company, { headers })\r\n .pipe(\r\n tap(() => console.log('updateRentalAgreement: ' + company.id)),\r\n // Return the RentalAgreement on an update\r\n map(() => company),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeCompany(): Company {\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n name: null,\r\n registrationNumber: null\r\n \r\n };\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { BaseService } from \"./base.service\";\r\nimport { Observable, throwError, of } from \"rxjs\";\r\nimport { map, catchError, tap } from \"rxjs/operators\";\r\nimport { ProductType } from \"src/app/data-models/productType\";\r\n\r\n@Injectable(\r\n \r\n)\r\nexport class ProductTypeService {\r\n private productTypesUrl = 'api/productTypes';\r\n \r\n constructor(private http: HttpClient, ) { }\r\n getProductTypes(): Observable {\r\n return this.http.get(this.productTypesUrl + '/GetProductTypes')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getProductType(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeProductType());\r\n }\r\n const url = `${this.productTypesUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createProductType(productType: ProductType): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n productType.id = null;\r\n return this.http.post(this.productTypesUrl + '/SaveProductType', JSON.stringify(productType), { headers })\r\n .pipe(\r\n tap(data => console.log('createProductType: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteProductType(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.productTypesUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteProductType: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateProductType(productType: ProductType): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.productTypesUrl}/${productType.id}`;\r\n return this.http.put(url, productType, { headers })\r\n .pipe(\r\n tap(() => console.log('updateProductType: ' + productType.id)),\r\n // Return the RentalAgreement on an update\r\n map(() => productType),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeProductType(): ProductType{\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n description: null,\r\n name: null,\r\n parentId: null\r\n \r\n };\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { BaseService } from \"./base.service\";\r\nimport { Observable, throwError, of } from \"rxjs\";\r\nimport { RentalAgreement } from \"../../data-models/rentalAgreement\";\r\nimport { map, catchError, tap } from \"rxjs/operators\";\r\n\r\n@Injectable(\r\n \r\n)\r\nexport class RentalAgreementService {\r\n private rentalAgreementsUrl = 'api/rentalAgreements';\r\n \r\n constructor(private http: HttpClient, ) { }\r\n getRentalAgreements(): Observable {\r\n return this.http.get(this.rentalAgreementsUrl + '/GetRentalAgreements')\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n getRentalAgreement(id: number): Observable {\r\n if (id === 0) {\r\n return of(this.initializeRentalAgreement());\r\n }\r\n const url = `${this.rentalAgreementsUrl}/${id}`;\r\n\r\n return this.http.get(url)\r\n .pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n createRentalAgreement(rentalAgreement: RentalAgreement): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n rentalAgreement.id = null;\r\n return this.http.post(this.rentalAgreementsUrl + '/SaveRentalAgreement', JSON.stringify(rentalAgreement), { headers })\r\n .pipe(\r\n tap(data => console.log('createRentalAgreement: ' + JSON.stringify(data))),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n deleteRentalAgreement(id: number): Observable<{}> {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.rentalAgreementsUrl}/${id}`;\r\n return this.http.delete(url, { headers })\r\n .pipe(\r\n tap(data => console.log('deleteRentalAgreement: ' + id)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n updateRentalAgreement(rentalAgreement: RentalAgreement): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n const url = `${this.rentalAgreementsUrl}/${rentalAgreement.id}`;\r\n return this.http.put(url, rentalAgreement, { headers })\r\n .pipe(\r\n tap(() => console.log('updateRentalAgreement: ' + rentalAgreement.id)),\r\n // Return the RentalAgreement on an update\r\n map(() => rentalAgreement),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(err) {\r\n debugger;\r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n\r\n private initializeRentalAgreement(): RentalAgreement {\r\n // Return an initialized object\r\n return {\r\n id: 0,\r\n agreementText: null,\r\n name: null,\r\n userId: null,\r\n modifiedBy: null,\r\n modifiedDate: null,\r\n capturedDate: null\r\n \r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpHeaders, HttpRequest, HttpXhrBackend} from '@angular/common/http';\r\n\r\nimport { UserRegistration } from '../models/user.registration.interface';\r\nimport { Jwt } from '../models/token.interface';\r\nimport { ConfigService } from '../utils/config.service';\r\n\r\nimport {BaseService} from \"./base.service\";\r\n\r\nimport { Observable, of as observableOf, of, throwError } from 'rxjs';\r\nimport { BehaviorSubject } from 'rxjs'; \r\n\r\n// Add the RxJS Observable operators we need in this app.\r\n//import '../../rxjs-operators';\r\nimport { tap, catchError, map, finalize } from 'rxjs/operators';\r\nimport { InterceptorService } from '../utils/Interceptor.service';\r\nimport { Company } from '../../data-models/company';\r\n\r\n@Injectable()\r\n\r\nexport class UserService extends BaseService {\r\n\r\n baseUrl: string = '';\r\n\r\n // Observable navItem source\r\n private _authNavStatusSource = new BehaviorSubject(false);\r\n // Observable navItem stream\r\n authNavStatus$ = this._authNavStatusSource.asObservable();\r\n\r\n private loggedIn = false;\r\n response: Observable;\r\n\r\n constructor(private http: HttpClient, private configService: ConfigService,private backend: HttpXhrBackend) {\r\n super();\r\n this.loggedIn = !!localStorage.getItem('auth_token');\r\n // ?? not sure if this the best way to broadcast the status but seems to resolve issue on page refresh where auth status is lost in\r\n // header component resulting in authed user nav links disappearing despite the fact user is still logged in\r\n this._authNavStatusSource.next(this.loggedIn);\r\n this.baseUrl = configService.getApiURI();\r\n }\r\n\r\n register(email: string, password: string, firstName: string, lastName: string, location: string,\r\n company: Company, employeeNumber: string, cellphoneNumber:string, uID:string ): Observable {\r\n let body = JSON.stringify({ email, password, firstName, lastName,location,company,employeeNumber,cellphoneNumber,uID });\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n //let options = new RequestOptions({ headers: headers });\r\n\r\n return this.http.post(this.baseUrl + \"/accounts\", body, { headers: headers })\r\n .pipe(map((response: Response) => ((response)) as UserRegistration),\r\n catchError(this.handleError)\r\n );\r\n \r\n \r\n } \r\n\r\n login(userName, password){\r\n let headers = new HttpHeaders();\r\n headers.append('Content-Type', 'application/json');\r\n headers.append(\"Access-Control-Allow-Origin\", \"*\");\r\n headers.append(\"Access-Control-Allow-Headers\", \"Origin, X-Requested-With, Content-Type, Accept\");\r\n //const req = new HttpRequest('POST', this.baseUrl + '/auth/login',JSON.stringify({ userName, password }) );\r\n // const iHandler = new HttpInterceptorHandler(this.backend, new InterceptorService());\r\n //iHandler.handle(req);\r\n return this.http.post(this.baseUrl + '/auth/login', JSON.stringify({ userName, password }), { headers })\r\n .pipe(\r\n map((response: Response) => ((response)) as Jwt)\r\n , catchError(this.handleError)\r\n , finalize(() => {\r\n this.loggedIn = true;\r\n this._authNavStatusSource.next(true);\r\n\r\n\r\n })\r\n );\r\n \r\n }\r\n\r\n logout() {\r\n localStorage.removeItem('auth_token');\r\n this.loggedIn = false;\r\n this._authNavStatusSource.next(false);\r\n }\r\n\r\n isLoggedIn() {\r\n return this.loggedIn;\r\n }\r\n\r\n \r\n facebookLogin(accessToken:string) {\r\n let headers = new HttpHeaders();\r\n headers.append('Content-Type', 'application/json');\r\n let body = JSON.stringify({ accessToken }); \r\n return this.http\r\n .post(\r\n this.baseUrl + '/externalauth/facebook', body, { headers }).pipe(\r\n tap(data => JSON.stringify(data)),\r\n catchError(this.handleLoginError)\r\n \r\n );\r\n \r\n }\r\n private handleLoginError(err) {\r\n \r\n // in a real world app, we may send the server to some remote logging infrastructure\r\n // instead of just logging it to the console\r\n let errorMessage: string;\r\n if (err.error !== undefined) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n errorMessage = `An error occurred: ${err.error.login_failure}`;\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n errorMessage = `Backend returned code ${err.status}: ${err.message}`;\r\n }\r\n console.error(err);\r\n return throwError(errorMessage);\r\n }\r\n}\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class InterceptorService implements HttpInterceptor {\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n \r\n var customMetaOption = this.getMeta(req);\r\n let headersConfig = {};\r\n if (!customMetaOption) {\r\n headersConfig = {\r\n 'Content-Type': 'application/json'\r\n };\r\n }\r\n const modified = req.clone({ setHeaders: headersConfig });\r\n\r\n //const modified = req.clone({ setHeaders: { 'Content-Type': 'application/json' } });\r\n return next.handle(modified);\r\n }\r\n getMeta(req: HttpRequest) {\r\n if (req.headers.has('isfile'))\r\n return true;\r\n else\r\n return false;\r\n }\r\n}\r\n@Injectable()\r\nexport class AuthorizationInterceptor implements HttpInterceptor {\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const authReq = req.clone({ setHeaders: { 'Authorization': 'Basic YWxhZGRpbjpvcGVuc2VzYW1l' } });\r\n return next.handle(authReq);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n@Injectable()\r\nexport class ConfigService {\r\n \r\n _apiURI: string;\r\n _URI: string;\r\n constructor() {\r\n \r\n const parsedUrl = new URL(window.location.href);\r\n const baseUrl = parsedUrl.origin;\r\n console.log(baseUrl);\r\n this._apiURI = baseUrl + '/api';\r\n this._URI = baseUrl;\r\n }\r\n \r\n getApiURI() {\r\n return this._apiURI;\r\n }\r\n getBaseURI() {\r\n return this._URI;\r\n }\r\n}\r\n ","import { Observable, of } from 'rxjs';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { catchError } from 'rxjs/operators';\r\n@Injectable()\r\nexport class HttpAuthenticationInterceptorHandler implements HttpInterceptor {\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const userToken = localStorage.getItem('auth_token');\r\n const modifiedReq = req.clone({\r\n headers: req.headers.set('Authorization', `Bearer ${userToken}`),\r\n });\r\n return next.handle(modifiedReq);\r\n }\r\n}\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n\r\n constructor(private router: Router) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request)\r\n .pipe(\r\n catchError((err, caught: Observable>) => {\r\n if (err instanceof HttpErrorResponse && err.status == 401) {\r\n this.router.navigate(['/account/login'], { queryParams: { returnUrl: request.url } });\r\n return of(err as any);\r\n }\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","export default \".spinner {\\n width: 40px;\\n height: 40px;\\n position: relative;\\n margin: 30px auto;\\n}\\n\\n.double-bounce1, .double-bounce2 {\\n width: 100%;\\n height: 100%;\\n border-radius: 50%;\\n background-color: #333;\\n opacity: 0.6;\\n position: absolute;\\n top: 0;\\n left: 0;\\n -webkit-animation: sk-bounce 2s infinite ease-in-out;\\n animation: sk-bounce 2s infinite ease-in-out;\\n}\\n\\n.double-bounce2 {\\n -webkit-animation-delay: -1s;\\n animation-delay: -1s;\\n}\\n\\n@-webkit-keyframes sk-bounce {\\n 0%, 100% {\\n -webkit-transform: scale(0);\\n }\\n 50% {\\n -webkit-transform: scale(1);\\n }\\n}\\n\\n@keyframes sk-bounce {\\n 0%, 100% {\\n transform: scale(0);\\n -webkit-transform: scale(0);\\n }\\n 50% {\\n transform: scale(1);\\n -webkit-transform: scale(1);\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3Bpbm5lci9DOlxcRGV2ZWxvcG1lbnRzXFxDdXN0b21lcnNcXEZhcm1BcHBcXEZhcm1BcHAuV2ViL3NyY1xcYXBwXFxzcGlubmVyXFxzcGlubmVyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxXQUFBO0VBQ0EsWUFBQTtFQUVBLGtCQUFBO0VBQ0EsaUJBQUE7QUNBSjs7QURHRTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxzQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBRUEsb0RBQUE7RUFDQSw0Q0FBQTtBQ0RKOztBRElFO0VBQ0UsNEJBQUE7RUFDQSxvQkFBQTtBQ0RKOztBRElFO0VBQ0U7SUFBVywyQkFBQTtFQ0FiO0VEQ0U7SUFBTSwyQkFBQTtFQ0VSO0FBQ0Y7O0FEQUU7RUFDRTtJQUNFLG1CQUFBO0lBQ0EsMkJBQUE7RUNFSjtFRERJO0lBQ0UsbUJBQUE7SUFDQSwyQkFBQTtFQ0dOO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc3Bpbm5lciB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICBcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAzMHB4IGF1dG87XG4gIH1cbiAgXG4gIC5kb3VibGUtYm91bmNlMSwgLmRvdWJsZS1ib3VuY2UyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgXG4gICAgLXdlYmtpdC1hbmltYXRpb246IHNrLWJvdW5jZSAyLjBzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAgIGFuaW1hdGlvbjogc2stYm91bmNlIDIuMHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gIH1cbiAgXG4gIC5kb3VibGUtYm91bmNlMiB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0xLjBzO1xuICAgIGFuaW1hdGlvbi1kZWxheTogLTEuMHM7XG4gIH1cbiAgXG4gIEAtd2Via2l0LWtleWZyYW1lcyBzay1ib3VuY2Uge1xuICAgIDAlLCAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMCkgfVxuICAgIDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjApIH1cbiAgfVxuICBcbiAgQGtleWZyYW1lcyBzay1ib3VuY2Uge1xuICAgIDAlLCAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4wKTtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjApO1xuICAgIH0gNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjApO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wKTtcbiAgICAgIH1cbiAgfSIsIi5zcGlubmVyIHtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDMwcHggYXV0bztcbn1cblxuLmRvdWJsZS1ib3VuY2UxLCAuZG91YmxlLWJvdW5jZTIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIG9wYWNpdHk6IDAuNjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzay1ib3VuY2UgMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbjogc2stYm91bmNlIDJzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xufVxuXG4uZG91YmxlLWJvdW5jZTIge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLTFzO1xuICBhbmltYXRpb24tZGVsYXk6IC0xcztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNrLWJvdW5jZSB7XG4gIDAlLCAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2stYm91bmNlIHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn0iXX0= */\"","import { Component, Input, OnDestroy } from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\n\n\nexport class SpinnerComponent implements OnDestroy { \n private currentTimeout: number;\n public isDelayedRunning: boolean = false;\n\n @Input()\n public delay: number = 150;\n\n @Input()\n public set isRunning(value: boolean) {\n if (!value) {\n this.cancelTimeout();\n this.isDelayedRunning = false;\n return;\n }\n\n if (this.currentTimeout) {\n return;\n }\n\n // specify window to side-step conflict with node types: https://github.com/mgechev/angular2-seed/issues/901\n this.currentTimeout = window.setTimeout(() => {\n this.isDelayedRunning = value;\n this.cancelTimeout();\n }, this.delay);\n }\n\n private cancelTimeout(): void {\n clearTimeout(this.currentTimeout);\n this.currentTimeout = undefined;\n }\n\n ngOnDestroy(): any {\n this.cancelTimeout();\n }\n}\n","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false\n};\n","import 'hammerjs';\nimport { 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.log(err));\n"],"sourceRoot":"webpack:///"}