diff --git a/test/PushNotfications.mpr b/test/PushNotfications.mpr index 8362d7c..2f9b9c1 100755 Binary files a/test/PushNotfications.mpr and b/test/PushNotfications.mpr differ diff --git a/test/javascriptsource/nanoflowcommons/actions/GenerateUniqueID.js b/test/javascriptsource/nanoflowcommons/actions/GenerateUniqueID.js new file mode 100644 index 0000000..86d4fab --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/GenerateUniqueID.js @@ -0,0 +1,64 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +const COUNTER_STORE = "idCounter"; +let locked = false; +let currentCounter; +function sleep(time) { + return new Promise(resolve => setTimeout(resolve, time)); +} +async function initializeCounter() { + currentCounter = JSON.parse((await getItem(COUNTER_STORE)) || "-1"); +} +function getItem(key) { + if (navigator && navigator.product === "ReactNative") { + const AsyncStorage = require("@react-native-community/async-storage").default; + return AsyncStorage.getItem(key); + } + if (window) { + const value = window.localStorage.getItem(key); + return Promise.resolve(value); + } + return Promise.reject(new Error("No storage API available")); +} +function setItem(key, value) { + if (navigator && navigator.product === "ReactNative") { + const AsyncStorage = require("@react-native-community/async-storage").default; + return AsyncStorage.setItem(key, value); + } + if (window) { + window.localStorage.setItem(key, value); + return Promise.resolve(); + } + return Promise.reject(new Error("No storage API available")); +} +// END EXTRA CODE + +/** + * Generates a unique ID based on the current session. + * @returns {Promise.} + */ +export async function GenerateUniqueID() { + // BEGIN USER CODE + const sessionId = mx.session.getConfig("sessionObjectId"); + const rnd = Math.round(Math.random() * 10000); + // eslint-disable-next-line no-unmodified-loop-condition + while (locked) { + await sleep(10); + } + locked = true; + if (typeof currentCounter === "undefined") { + await initializeCounter(); + } + await setItem(COUNTER_STORE, JSON.stringify(++currentCounter)); + locked = false; + return `${sessionId}:${currentCounter}:${rnd}`; + // END USER CODE +} diff --git a/test/javascriptsource/nanoflowcommons/actions/Geocode.js b/test/javascriptsource/nanoflowcommons/actions/Geocode.js index 600bed1..818ed57 100755 --- a/test/javascriptsource/nanoflowcommons/actions/Geocode.js +++ b/test/javascriptsource/nanoflowcommons/actions/Geocode.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import Geodecoder from 'react-native-geocoder'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -31,8 +32,7 @@ export async function Geocode(address, geocodingProvider, providerApiKey) { return Promise.reject(new Error("Input parameter 'Address' is required")); } if (navigator && navigator.product === "ReactNative") { - const Geocoder = require("react-native-geocoder").default; - return Geocoder.geocodeAddress(address).then(results => { + return Geodecoder.geocodeAddress(address).then(results => { if (results.length === 0) { return Promise.reject(new Error("No results found")); } diff --git a/test/javascriptsource/nanoflowcommons/actions/Geocode.json b/test/javascriptsource/nanoflowcommons/actions/Geocode.json new file mode 100644 index 0000000..aa3b0e5 --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/Geocode.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "react-native-geocoder": "0.5.0" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.js b/test/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.js index d29a6f4..f533841 100755 --- a/test/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.js +++ b/test/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import Geolocation from "@react-native-community/geolocation"; // BEGIN EXTRA CODE // END EXTRA CODE @@ -19,7 +20,7 @@ import { Big } from "big.js"; * * Best practices: * https://developers.google.com/web/fundamentals/native-hardware/user-location/ - * @param {Big} timeout - The maximum length of time (in milliseconds) the device is allowed to take in order to return a location. If empty, there is no timeout. + * @param {Big} timeout - The maximum length of time (in milliseconds) the device is allowed to take in order to return a location. If set as empty, default value will be 30 second timeout. * @param {Big} maximumAge - The maximum age (in milliseconds) of a possible cached position that is acceptable to return. If set to 0, it means that the device cannot use a cached position and must attempt to retrieve the real current position. By default the device will always return a cached position regardless of its age. * @param {boolean} highAccuracy - Use a higher accuracy method to determine the current location. Setting this to false saves battery life. * @returns {Promise.} @@ -27,7 +28,7 @@ import { Big } from "big.js"; export async function GetCurrentLocation(timeout, maximumAge, highAccuracy) { // BEGIN USER CODE if (navigator && navigator.product === "ReactNative" && !navigator.geolocation) { - navigator.geolocation = require("@react-native-community/geolocation"); + navigator.geolocation = Geolocation; } return new Promise((resolve, reject) => { const options = getOptions(); @@ -39,7 +40,8 @@ export async function GetCurrentLocation(timeout, maximumAge, highAccuracy) { const geolocation = mapPositionToMxObject(mxObject, position); resolve(geolocation); }, - error: () => reject(new Error("Could not create 'NanoflowCommons.Geolocation' object to store location")) + error: () => + reject(new Error("Could not create 'NanoflowCommons.Geolocation' object to store location")) }); } function onError(error) { diff --git a/test/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.json b/test/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.json new file mode 100644 index 0000000..3df6581 --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/GetCurrentLocation.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/geolocation": "2.0.2" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.js b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.js index 9afdc46..77a84f4 100755 --- a/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.js +++ b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -36,7 +37,6 @@ export async function GetStorageItemObject(key, entity) { }); function getItem(key) { if (navigator && navigator.product === "ReactNative") { - const AsyncStorage = require("@react-native-community/async-storage").default; return AsyncStorage.getItem(key); } if (window) { @@ -47,7 +47,6 @@ export async function GetStorageItemObject(key, entity) { } function setItem(key, value) { if (navigator && navigator.product === "ReactNative") { - const AsyncStorage = require("@react-native-community/async-storage").default; return AsyncStorage.setItem(key, value); } if (window) { diff --git a/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.json b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObject.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.js b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.js index f7d6b46..05e4aba 100755 --- a/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.js +++ b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -36,7 +37,6 @@ export async function GetStorageItemObjectList(key, entity) { }); function getItem(key) { if (navigator && navigator.product === "ReactNative") { - const AsyncStorage = require("@react-native-community/async-storage").default; return AsyncStorage.getItem(key); } if (window) { @@ -47,7 +47,6 @@ export async function GetStorageItemObjectList(key, entity) { } function setItem(key, value) { if (navigator && navigator.product === "ReactNative") { - const AsyncStorage = require("@react-native-community/async-storage").default; return AsyncStorage.setItem(key, value); } if (window) { diff --git a/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.json b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemObjectList.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/GetStorageItemString.js b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemString.js index b061d80..8c0d212 100755 --- a/test/javascriptsource/nanoflowcommons/actions/GetStorageItemString.js +++ b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemString.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -29,7 +30,6 @@ export async function GetStorageItemString(key) { }); async function getItem(key) { if (navigator && navigator.product === "ReactNative") { - const AsyncStorage = require("@react-native-community/async-storage").default; return AsyncStorage.getItem(key); } if (window) { diff --git a/test/javascriptsource/nanoflowcommons/actions/GetStorageItemString.json b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemString.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/GetStorageItemString.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/RefreshEntity.js b/test/javascriptsource/nanoflowcommons/actions/RefreshEntity.js new file mode 100644 index 0000000..973ddbc --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/RefreshEntity.js @@ -0,0 +1,30 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Updates an entity without needing to refresh the whole page via passing an entity. + * @param {string} entityToRefresh - Entity which will be refreshed. + * @returns {Promise.} + */ +export async function RefreshEntity(entityToRefresh) { + // BEGIN USER CODE + if (!entityToRefresh) { + return Promise.reject(new Error("EntityToRefresh parameter is required")); + } + return new Promise(resolve => { + mx.data.update({ + entity: entityToRefresh, + callback: () => resolve(true) + }); + }); + // END USER CODE +} diff --git a/test/javascriptsource/nanoflowcommons/actions/RefreshObject.js b/test/javascriptsource/nanoflowcommons/actions/RefreshObject.js new file mode 100644 index 0000000..6216ae4 --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/RefreshObject.js @@ -0,0 +1,30 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +import { Big } from "big.js"; + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * Updates an entity object without needing to refresh the whole page via passing an entity object. + * @param {MxObject} objectToRefresh - Object which will be refreshed. + * @returns {Promise.} + */ +export async function RefreshObject(objectToRefresh) { + // BEGIN USER CODE + if (!objectToRefresh) { + return Promise.reject(new Error("ObjectToRefresh parameter is required")); + } + return new Promise(resolve => { + mx.data.update({ + guid: objectToRefresh.getGuid(), + callback: () => resolve(true) + }); + }); + // END USER CODE +} diff --git a/test/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.js b/test/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.js index 4cb11d9..e0b9d2d 100755 --- a/test/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.js +++ b/test/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -23,7 +24,6 @@ export async function RemoveStorageItem(key) { return removeItem(key).then(() => true); function removeItem(key) { if (navigator && navigator.product === "ReactNative") { - const AsyncStorage = require("@react-native-community/async-storage").default; return AsyncStorage.removeItem(key); } if (window) { diff --git a/test/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.json b/test/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/RemoveStorageItem.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.js b/test/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.js index 23ca8e8..546f463 100755 --- a/test/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.js +++ b/test/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.js @@ -6,6 +6,8 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import { Platform, PermissionsAndroid } from 'react-native'; +import Geolocation from '@react-native-community/geolocation'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -17,16 +19,14 @@ import { Big } from "big.js"; export async function RequestLocationPermission() { // BEGIN USER CODE if (navigator && navigator.product === "ReactNative") { - // eslint-disable-next-line @typescript-eslint/no-var-requires - const RN = require("react-native"); if (!navigator.geolocation) { - navigator.geolocation = require("@react-native-community/geolocation"); + navigator.geolocation = Geolocation; } - if (RN.Platform.OS === "android") { - const locationPermission = RN.PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION; - return RN.PermissionsAndroid.check(locationPermission).then(hasPermission => hasPermission + if (Platform.OS === "android") { + const locationPermission = PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION; + return PermissionsAndroid.check(locationPermission).then(hasPermission => hasPermission ? true - : RN.PermissionsAndroid.request(locationPermission).then(status => status === RN.PermissionsAndroid.RESULTS.GRANTED)); + : PermissionsAndroid.request(locationPermission).then(status => status === PermissionsAndroid.RESULTS.GRANTED)); } else if (navigator.geolocation && navigator.geolocation.requestAuthorization) { try { diff --git a/test/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.json b/test/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.json new file mode 100644 index 0000000..3df6581 --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/RequestLocationPermission.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/geolocation": "2.0.2" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/ReverseGeocode.js b/test/javascriptsource/nanoflowcommons/actions/ReverseGeocode.js index c780fef..5da0cce 100755 --- a/test/javascriptsource/nanoflowcommons/actions/ReverseGeocode.js +++ b/test/javascriptsource/nanoflowcommons/actions/ReverseGeocode.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import Geodecoder from 'react-native-geocoder'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -35,9 +36,8 @@ export async function ReverseGeocode(latitude, longitude, geocodingProvider, pro return Promise.reject(new Error("Input parameter 'Longitude' is required")); } if (navigator && navigator.product === "ReactNative") { - const Geocoder = require("react-native-geocoder").default; const position = { lat: Number(latitude), lng: Number(longitude) }; - return Geocoder.geocodePosition(position).then(results => { + return Geodecoder.geocodePosition(position).then(results => { if (results.length === 0) { return Promise.reject(new Error("No results found")); } diff --git a/test/javascriptsource/nanoflowcommons/actions/ReverseGeocode.json b/test/javascriptsource/nanoflowcommons/actions/ReverseGeocode.json new file mode 100644 index 0000000..aa3b0e5 --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/ReverseGeocode.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "react-native-geocoder": "0.5.0" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.js b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.js index 623810e..f4ecff9 100755 --- a/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.js +++ b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -28,7 +29,6 @@ export async function SetStorageItemObject(key, value) { return setItem(key, JSON.stringify(serializedObject)); function setItem(key, value) { if (navigator && navigator.product === "ReactNative") { - const AsyncStorage = require("@react-native-community/async-storage").default; return AsyncStorage.setItem(key, value); } if (window) { diff --git a/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.json b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObject.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.js b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.js index 3f94305..004a1d3 100755 --- a/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.js +++ b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -28,7 +29,6 @@ export async function SetStorageItemObjectList(key, value) { return setItem(key, JSON.stringify(serializedObjects)); function setItem(key, value) { if (navigator && navigator.product === "ReactNative") { - const AsyncStorage = require("@react-native-community/async-storage").default; return AsyncStorage.setItem(key, value); } if (window) { diff --git a/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.json b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemObjectList.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/SetStorageItemString.js b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemString.js index dfc3d54..7c0460a 100755 --- a/test/javascriptsource/nanoflowcommons/actions/SetStorageItemString.js +++ b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemString.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -27,7 +28,6 @@ export async function SetStorageItemString(key, value) { return setItem(key, value); function setItem(key, value) { if (navigator && navigator.product === "ReactNative") { - const AsyncStorage = require("@react-native-community/async-storage").default; return AsyncStorage.setItem(key, value); } if (window) { diff --git a/test/javascriptsource/nanoflowcommons/actions/SetStorageItemString.json b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemString.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/SetStorageItemString.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/test/javascriptsource/nanoflowcommons/actions/SignIn.js b/test/javascriptsource/nanoflowcommons/actions/SignIn.js index ebb6bfd..4215708 100755 --- a/test/javascriptsource/nanoflowcommons/actions/SignIn.js +++ b/test/javascriptsource/nanoflowcommons/actions/SignIn.js @@ -29,7 +29,7 @@ export async function SignIn(username, password) { } return new Promise(resolve => { const onSuccess = () => resolve(new Big(200)); - const onError = (error) => resolve(new Big(error.status)); + const onError = error => resolve(new Big(error.status)); mx.login(username, password, onSuccess, onError); }); // END USER CODE diff --git a/test/javascriptsource/nanoflowcommons/actions/StorageItemExists.js b/test/javascriptsource/nanoflowcommons/actions/StorageItemExists.js index 499e541..6ce9b48 100755 --- a/test/javascriptsource/nanoflowcommons/actions/StorageItemExists.js +++ b/test/javascriptsource/nanoflowcommons/actions/StorageItemExists.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import AsyncStorage from '@react-native-community/async-storage'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -23,7 +24,6 @@ export async function StorageItemExists(key) { return getItem(key).then(result => result !== null); function getItem(key) { if (navigator && navigator.product === "ReactNative") { - const AsyncStorage = require("@react-native-community/async-storage").default; return AsyncStorage.getItem(key); } if (window) { diff --git a/test/javascriptsource/nanoflowcommons/actions/StorageItemExists.json b/test/javascriptsource/nanoflowcommons/actions/StorageItemExists.json new file mode 100644 index 0000000..a560d6d --- /dev/null +++ b/test/javascriptsource/nanoflowcommons/actions/StorageItemExists.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/async-storage": "1.12.1" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/BiometricAuthentication.js b/test/javascriptsource/nativemobileresources/actions/BiometricAuthentication.js index b907367..5e959f3 100755 --- a/test/javascriptsource/nativemobileresources/actions/BiometricAuthentication.js +++ b/test/javascriptsource/nativemobileresources/actions/BiometricAuthentication.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import TouchID from "react-native-touch-id"; +import TouchID from 'react-native-touch-id'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/BiometricAuthentication.json b/test/javascriptsource/nativemobileresources/actions/BiometricAuthentication.json new file mode 100644 index 0000000..7248ff0 --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/BiometricAuthentication.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "react-native-touch-id": "4.4.1" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/CancelAllScheduledNotifications.js b/test/javascriptsource/nativemobileresources/actions/CancelAllScheduledNotifications.js index f7283bd..5600c0f 100755 --- a/test/javascriptsource/nativemobileresources/actions/CancelAllScheduledNotifications.js +++ b/test/javascriptsource/nativemobileresources/actions/CancelAllScheduledNotifications.js @@ -6,7 +6,8 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { NativeModules } from "react-native"; +import { Platform, NativeModules } from 'react-native'; +import PushNotification from 'react-native-push-notification'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -17,13 +18,13 @@ import { NativeModules } from "react-native"; */ export async function CancelAllScheduledNotifications() { // BEGIN USER CODE - // Documentation https://rnfirebase.io/docs/v5.x.x/notifications/reference/Notifications#cancelAllNotifications - if (NativeModules && !NativeModules.RNFirebase) { - return Promise.reject(new Error("Firebase module is not available in your app")); + // Documentation https://github.com/zo0r/react-native-push-notification + const isIOS = Platform.OS === "ios"; + if (NativeModules && + ((isIOS && !NativeModules.RNCPushNotificationIOS) || (!isIOS && !NativeModules.RNPushNotification))) { + return Promise.reject(new Error("Notifications module is not available in your app")); } - // eslint-disable-next-line @typescript-eslint/no-var-requires - const firebase = require("react-native-firebase"); - firebase.notifications().cancelAllNotifications(); + PushNotification.cancelAllLocalNotifications(); return Promise.resolve(); // END USER CODE } diff --git a/test/javascriptsource/nativemobileresources/actions/CancelAllScheduledNotifications.json b/test/javascriptsource/nativemobileresources/actions/CancelAllScheduledNotifications.json new file mode 100644 index 0000000..c571daa --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/CancelAllScheduledNotifications.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "react-native-push-notification": "6.1.2", + "@react-native-community/push-notification-ios": "1.8.0" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/CancelScheduledNotification.js b/test/javascriptsource/nativemobileresources/actions/CancelScheduledNotification.js index 1b10bf2..11ac3ac 100755 --- a/test/javascriptsource/nativemobileresources/actions/CancelScheduledNotification.js +++ b/test/javascriptsource/nativemobileresources/actions/CancelScheduledNotification.js @@ -6,7 +6,8 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { NativeModules } from "react-native"; +import { Platform, NativeModules } from 'react-native'; +import PushNotification from 'react-native-push-notification'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -17,15 +18,16 @@ import { NativeModules } from "react-native"; */ export async function CancelScheduledNotification(notificationId) { // BEGIN USER CODE - if (NativeModules && !NativeModules.RNFirebase) { - return Promise.reject(new Error("Firebase module is not available in your app")); + // Documentation https://github.com/zo0r/react-native-push-notification + const isIOS = Platform.OS === "ios"; + if (NativeModules && + ((isIOS && !NativeModules.RNCPushNotificationIOS) || (!isIOS && !NativeModules.RNPushNotification))) { + return Promise.reject(new Error("Notifications module is not available in your app")); } - // eslint-disable-next-line @typescript-eslint/no-var-requires - const firebase = require("react-native-firebase"); if (!notificationId) { return Promise.reject(new Error("Input parameter 'Notification id' is required")); } - firebase.notifications().cancelNotification(notificationId); + PushNotification.cancelLocalNotifications({ id: notificationId }); return Promise.resolve(); // END USER CODE } diff --git a/test/javascriptsource/nativemobileresources/actions/CancelScheduledNotification.json b/test/javascriptsource/nativemobileresources/actions/CancelScheduledNotification.json new file mode 100644 index 0000000..c571daa --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/CancelScheduledNotification.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "react-native-push-notification": "6.1.2", + "@react-native-community/push-notification-ios": "1.8.0" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/ChangeStatusBar.js b/test/javascriptsource/nativemobileresources/actions/ChangeStatusBar.js index 9c869ea..f4cb826 100755 --- a/test/javascriptsource/nativemobileresources/actions/ChangeStatusBar.js +++ b/test/javascriptsource/nativemobileresources/actions/ChangeStatusBar.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { Platform, StatusBar } from "react-native"; +import { StatusBar, Platform } from 'react-native'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/ClearAllDeliveredNotifications.js b/test/javascriptsource/nativemobileresources/actions/ClearAllDeliveredNotifications.js index 368cd84..39e942a 100644 --- a/test/javascriptsource/nativemobileresources/actions/ClearAllDeliveredNotifications.js +++ b/test/javascriptsource/nativemobileresources/actions/ClearAllDeliveredNotifications.js @@ -6,7 +6,8 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { NativeModules } from "react-native"; +import { Platform, NativeModules } from 'react-native'; +import PushNotification from 'react-native-push-notification'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -17,13 +18,13 @@ import { NativeModules } from "react-native"; */ export async function ClearAllDeliveredNotifications() { // BEGIN USER CODE - // Documentation https://rnfirebase.io/docs/v5.x.x/notifications/reference/Notifications#cancelAllNotifications - if (NativeModules && !NativeModules.RNFirebase) { - return Promise.reject(new Error("Firebase module is not available in your app")); + // Documentation https://github.com/zo0r/react-native-push-notification + const isIOS = Platform.OS === "ios"; + if (NativeModules && + ((isIOS && !NativeModules.RNCPushNotificationIOS) || (!isIOS && !NativeModules.RNPushNotification))) { + return Promise.reject(new Error("Notifications module is not available in your app")); } - // eslint-disable-next-line @typescript-eslint/no-var-requires - const firebase = require("react-native-firebase"); - firebase.notifications().removeAllDeliveredNotifications(); + PushNotification.removeAllDeliveredNotifications(); return Promise.resolve(); // END USER CODE } diff --git a/test/javascriptsource/nativemobileresources/actions/ClearAllDeliveredNotifications.json b/test/javascriptsource/nativemobileresources/actions/ClearAllDeliveredNotifications.json new file mode 100644 index 0000000..c571daa --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/ClearAllDeliveredNotifications.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "react-native-push-notification": "6.1.2", + "@react-native-community/push-notification-ios": "1.8.0" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/CreateCalendarEvent.js b/test/javascriptsource/nativemobileresources/actions/CreateCalendarEvent.js deleted file mode 100755 index 06a304a..0000000 --- a/test/javascriptsource/nativemobileresources/actions/CreateCalendarEvent.js +++ /dev/null @@ -1,24 +0,0 @@ -// This file was generated by Mendix Modeler. -// -// WARNING: Only the following code will be retained when actions are regenerated: -// - the code between BEGIN USER CODE and END USER CODE -// Other code you write will be lost the next time you deploy the project. -function CreateCalendarEvent(title, startDate, endDate, location, allDay, notes) { - // BEGIN USER CODE - // Documentation https://github.com/vonovak/react-native-add-calendar-event#creating-an-event - const AddCalendarEvent = require("react-native-add-calendar-event"); - return AddCalendarEvent.presentEventCreatingDialog({ - title, - startDate: startDate && startDate.toISOString(), - endDate: endDate && endDate.toISOString(), - location, - allDay, - notes - }).then(result => { - if (result.action === "SAVED") { - return result.eventIdentifier; - } - return; - }); - // END USER CODE -} diff --git a/test/javascriptsource/nativemobileresources/actions/DisplayNotification.js b/test/javascriptsource/nativemobileresources/actions/DisplayNotification.js index f46648c..2a4544c 100755 --- a/test/javascriptsource/nativemobileresources/actions/DisplayNotification.js +++ b/test/javascriptsource/nativemobileresources/actions/DisplayNotification.js @@ -6,7 +6,8 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { NativeModules } from "react-native"; +import { Platform, NativeModules } from 'react-native'; +import PushNotification from 'react-native-push-notification'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -25,35 +26,44 @@ import { NativeModules } from "react-native"; */ export async function DisplayNotification(body, title, subtitle, playSound, actionName, actionGuid) { // BEGIN USER CODE - // Documentation https://rnfirebase.io/docs/v5.x.x/notifications/displaying-notifications - if (NativeModules && !NativeModules.RNFirebase) { - return Promise.reject(new Error("Firebase module is not available in your app")); + // Documentation https://github.com/zo0r/react-native-push-notification + const isIOS = Platform.OS === "ios"; + if (NativeModules && + ((isIOS && !NativeModules.RNCPushNotificationIOS) || (!isIOS && !NativeModules.RNPushNotification))) { + return Promise.reject(new Error("Notifications module is not available in your app")); } - // eslint-disable-next-line @typescript-eslint/no-var-requires - const firebase = require("react-native-firebase"); if (!body) { return Promise.reject(new Error("Input parameter 'Body' is required")); } - const channel = new firebase.notifications.Android.Channel("mendix-local-notifications", "Local notifications", firebase.notifications.Android.Importance.Default); - await firebase.notifications().android.createChannel(channel); - const notification = new firebase.notifications.Notification() - .setBody(body) - .android.setChannelId("mendix-local-notifications"); - if (title) { - notification.setTitle(title); + const notification = { message: body }; + if (!isIOS) { + const channelId = "mendix-local-notifications"; + const channelExists = await new Promise(resolve => PushNotification.channelExists(channelId, (exists) => resolve(exists))); + if (!channelExists) { + const channel = await new Promise(resolve => PushNotification.createChannel({ + channelId, + channelName: "Local notifications" + }, created => resolve(created))); + if (!channel) { + return Promise.reject(new Error("Could not create the local notifications channel")); + } + } + notification.channelId = channelId; } - if (subtitle) { - notification.setSubtitle(subtitle); + if (title) { + notification.title = title; } - if (playSound) { - notification.setSound("default"); + if (subtitle && !isIOS) { + notification.subText = subtitle; } + notification.playSound = !!playSound; if (actionName || actionGuid) { - notification.setData({ + notification.userInfo = { actionName, guid: actionGuid - }); + }; } - return firebase.notifications().displayNotification(notification); + PushNotification.localNotification(notification); + return Promise.resolve(); // END USER CODE } diff --git a/test/javascriptsource/nativemobileresources/actions/DisplayNotification.json b/test/javascriptsource/nativemobileresources/actions/DisplayNotification.json new file mode 100644 index 0000000..c571daa --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/DisplayNotification.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "react-native-push-notification": "6.1.2", + "@react-native-community/push-notification-ios": "1.8.0" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/EditCalendarEvent.js b/test/javascriptsource/nativemobileresources/actions/EditCalendarEvent.js deleted file mode 100755 index 5a7ab34..0000000 --- a/test/javascriptsource/nativemobileresources/actions/EditCalendarEvent.js +++ /dev/null @@ -1,17 +0,0 @@ -// This file was generated by Mendix Modeler. -// -// WARNING: Only the following code will be retained when actions are regenerated: -// - the code between BEGIN USER CODE and END USER CODE -// Other code you write will be lost the next time you deploy the project. -function EditCalendarEvent(eventId) { - // BEGIN USER CODE - // Documentation https://github.com/vonovak/react-native-add-calendar-event#editing-an-event - const AddCalendarEvent = require("react-native-add-calendar-event"); - if (!eventId) { - throw new TypeError("Input parameter 'Event id' is required"); - } - return AddCalendarEvent.presentEventEditingDialog({ - eventId - }).then(() => true); - // END USER CODE -} diff --git a/test/javascriptsource/nativemobileresources/actions/GetClipboardContent.js b/test/javascriptsource/nativemobileresources/actions/GetClipboardContent.js index ce81bca..63162ce 100755 --- a/test/javascriptsource/nativemobileresources/actions/GetClipboardContent.js +++ b/test/javascriptsource/nativemobileresources/actions/GetClipboardContent.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { Clipboard } from "react-native"; +import { Clipboard } from 'react-native'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/GetDeviceInfo.js b/test/javascriptsource/nativemobileresources/actions/GetDeviceInfo.js index 6d0b7a5..935278a 100755 --- a/test/javascriptsource/nativemobileresources/actions/GetDeviceInfo.js +++ b/test/javascriptsource/nativemobileresources/actions/GetDeviceInfo.js @@ -6,8 +6,8 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import DeviceInfo from "react-native-device-info"; -import { getLocales, getCountry, getTimeZone, uses24HourClock } from "react-native-localize"; +import DeviceInfo from 'react-native-device-info'; +import { getLocales, getCountry, getTimeZone, uses24HourClock } from 'react-native-localize'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/GetDeviceInfo.json b/test/javascriptsource/nativemobileresources/actions/GetDeviceInfo.json new file mode 100644 index 0000000..17448b7 --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/GetDeviceInfo.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "react-native-localize": "1.3.4", + "react-native-device-info": "8.0.1" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/GetPushNotificationToken.js b/test/javascriptsource/nativemobileresources/actions/GetPushNotificationToken.js index c3b752e..4dcc14a 100755 --- a/test/javascriptsource/nativemobileresources/actions/GetPushNotificationToken.js +++ b/test/javascriptsource/nativemobileresources/actions/GetPushNotificationToken.js @@ -6,7 +6,8 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { NativeModules } from "react-native"; +import { NativeModules } from 'react-native'; +import messaging from '@react-native-firebase/messaging'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -18,11 +19,9 @@ import { NativeModules } from "react-native"; export async function GetPushNotificationToken() { // BEGIN USER CODE // Documentation https://rnfirebase.io/docs/v5.x.x/messaging/reference/Messaging#getToken - if (NativeModules && !NativeModules.RNFirebase) { + if (NativeModules && !NativeModules.RNFBMessagingModule) { return Promise.reject(new Error("Firebase module is not available in your app")); } - // eslint-disable-next-line @typescript-eslint/no-var-requires - const firebase = require("react-native-firebase"); - return firebase.messaging().getToken(); + return messaging().getToken(); // END USER CODE } diff --git a/test/javascriptsource/nativemobileresources/actions/GetPushNotificationToken.json b/test/javascriptsource/nativemobileresources/actions/GetPushNotificationToken.json new file mode 100644 index 0000000..66c4578 --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/GetPushNotificationToken.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "@react-native-firebase/messaging": "10.5.1", + "@react-native-firebase/app": "10.1.0" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/HasNotificationPermission.js b/test/javascriptsource/nativemobileresources/actions/HasNotificationPermission.js index 96f46a9..118b5cb 100755 --- a/test/javascriptsource/nativemobileresources/actions/HasNotificationPermission.js +++ b/test/javascriptsource/nativemobileresources/actions/HasNotificationPermission.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { NativeModules } from "react-native"; +import { NativeModules } from 'react-native'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -19,11 +19,16 @@ import { NativeModules } from "react-native"; export async function HasNotificationPermission() { // BEGIN USER CODE // Documentation https://rnfirebase.io/docs/v5.x.x/notifications/receiving-notifications - if (NativeModules && !NativeModules.RNFirebase) { + if (NativeModules && !NativeModules.RNFBMessagingModule) { return Promise.reject(new Error("Firebase module is not available in your app")); } - // eslint-disable-next-line @typescript-eslint/no-var-requires - const firebase = require("react-native-firebase"); - return firebase.messaging().hasPermission(); + return NativeModules.RNFBMessagingModule.hasPermission().then((authStatus) => { + if (authStatus) { + return Promise.resolve(true); + } + else { + return Promise.resolve(false); + } + }); // END USER CODE } diff --git a/test/javascriptsource/nativemobileresources/actions/HideKeyboard.js b/test/javascriptsource/nativemobileresources/actions/HideKeyboard.js index ff10021..ff371a5 100755 --- a/test/javascriptsource/nativemobileresources/actions/HideKeyboard.js +++ b/test/javascriptsource/nativemobileresources/actions/HideKeyboard.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { Keyboard } from "react-native"; +import { Keyboard } from 'react-native'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/IsBiometricAuthenticationSupported.js b/test/javascriptsource/nativemobileresources/actions/IsBiometricAuthenticationSupported.js index 85e2493..9a01af4 100755 --- a/test/javascriptsource/nativemobileresources/actions/IsBiometricAuthenticationSupported.js +++ b/test/javascriptsource/nativemobileresources/actions/IsBiometricAuthenticationSupported.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import TouchID from "react-native-touch-id"; +import TouchID from 'react-native-touch-id'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/IsBiometricAuthenticationSupported.json b/test/javascriptsource/nativemobileresources/actions/IsBiometricAuthenticationSupported.json new file mode 100644 index 0000000..7248ff0 --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/IsBiometricAuthenticationSupported.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "react-native-touch-id": "4.4.1" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/IsCellularConnection.js b/test/javascriptsource/nativemobileresources/actions/IsCellularConnection.js index 10bea4c..a5074a0 100755 --- a/test/javascriptsource/nativemobileresources/actions/IsCellularConnection.js +++ b/test/javascriptsource/nativemobileresources/actions/IsCellularConnection.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { fetch } from "@react-native-community/netinfo"; +import { fetch } from '@react-native-community/netinfo'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/IsCellularConnection.json b/test/javascriptsource/nativemobileresources/actions/IsCellularConnection.json new file mode 100644 index 0000000..d27edca --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/IsCellularConnection.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/netinfo": "5.9.7" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/IsConnected.js b/test/javascriptsource/nativemobileresources/actions/IsConnected.js index 9030ac5..035fb15 100755 --- a/test/javascriptsource/nativemobileresources/actions/IsConnected.js +++ b/test/javascriptsource/nativemobileresources/actions/IsConnected.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { fetch } from "@react-native-community/netinfo"; +import { fetch } from '@react-native-community/netinfo'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/IsConnected.json b/test/javascriptsource/nativemobileresources/actions/IsConnected.json new file mode 100644 index 0000000..d27edca --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/IsConnected.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/netinfo": "5.9.7" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/IsWifiConnection.js b/test/javascriptsource/nativemobileresources/actions/IsWifiConnection.js index 34277f2..ab0f8d5 100755 --- a/test/javascriptsource/nativemobileresources/actions/IsWifiConnection.js +++ b/test/javascriptsource/nativemobileresources/actions/IsWifiConnection.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { fetch } from "@react-native-community/netinfo"; +import { fetch } from '@react-native-community/netinfo'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/IsWifiConnection.json b/test/javascriptsource/nativemobileresources/actions/IsWifiConnection.json new file mode 100644 index 0000000..d27edca --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/IsWifiConnection.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/netinfo": "5.9.7" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/OpenInAppBrowser.js b/test/javascriptsource/nativemobileresources/actions/OpenInAppBrowser.js index f4ccd73..2f01905 100755 --- a/test/javascriptsource/nativemobileresources/actions/OpenInAppBrowser.js +++ b/test/javascriptsource/nativemobileresources/actions/OpenInAppBrowser.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import InAppBrowser from "react-native-inappbrowser-reborn"; +import InAppBrowser from 'react-native-inappbrowser-reborn'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/OpenInAppBrowser.json b/test/javascriptsource/nativemobileresources/actions/OpenInAppBrowser.json new file mode 100644 index 0000000..ff39dd1 --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/OpenInAppBrowser.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "react-native-inappbrowser-reborn": "3.4.0" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/ParseUrlToObject.js b/test/javascriptsource/nativemobileresources/actions/ParseUrlToObject.js index d1e49e4..e56b7f9 100755 --- a/test/javascriptsource/nativemobileresources/actions/ParseUrlToObject.js +++ b/test/javascriptsource/nativemobileresources/actions/ParseUrlToObject.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import UrlParse from "url-parse"; +import UrlParse from 'url-parse'; // BEGIN EXTRA CODE async function createParamObject(entity, url) { @@ -36,7 +36,12 @@ function splitUrlToObject(url) { return acc; }, {}); const hash = url.split("#")[1] || ""; - return Object.assign(Object.assign(Object.assign(Object.assign({}, urlObject), { hash }), paths), queryValues); + return { + ...urlObject, + hash, + ...paths, + ...queryValues + }; } function createMxObject(entity) { return new Promise((resolve, reject) => { diff --git a/test/javascriptsource/nativemobileresources/actions/PlaySound.js b/test/javascriptsource/nativemobileresources/actions/PlaySound.js index b43aef7..d39826c 100755 --- a/test/javascriptsource/nativemobileresources/actions/PlaySound.js +++ b/test/javascriptsource/nativemobileresources/actions/PlaySound.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import Sound from "react-native-sound"; +import Sound from 'react-native-sound'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/PlaySound.json b/test/javascriptsource/nativemobileresources/actions/PlaySound.json new file mode 100644 index 0000000..81ca85e --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/PlaySound.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "react-native-sound": "0.11.0" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/RegisterDeepLink.js b/test/javascriptsource/nativemobileresources/actions/RegisterDeepLink.js index 402ea44..7517d8b 100755 --- a/test/javascriptsource/nativemobileresources/actions/RegisterDeepLink.js +++ b/test/javascriptsource/nativemobileresources/actions/RegisterDeepLink.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { Linking } from "react-native"; +import { Linking } from 'react-native'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/RequestNotificationPermission.js b/test/javascriptsource/nativemobileresources/actions/RequestNotificationPermission.js index fb26691..5df7b37 100755 --- a/test/javascriptsource/nativemobileresources/actions/RequestNotificationPermission.js +++ b/test/javascriptsource/nativemobileresources/actions/RequestNotificationPermission.js @@ -6,7 +6,8 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { NativeModules, Platform } from "react-native"; +import { NativeModules, Platform } from 'react-native'; +import messaging from '@react-native-firebase/messaging'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -19,18 +20,14 @@ import { NativeModules, Platform } from "react-native"; export async function RequestNotificationPermission() { // BEGIN USER CODE // Documentation https://rnfirebase.io/docs/v5.x.x/notifications/receiving-notifications - if (NativeModules && !NativeModules.RNFirebase) { + if (NativeModules && !NativeModules.RNFBMessagingModule) { return Promise.reject(new Error("Firebase module is not available in your app")); } - // eslint-disable-next-line @typescript-eslint/no-var-requires - const firebase = require("react-native-firebase"); - return firebase - .messaging() + return messaging() .requestPermission() - .then(() => Platform.OS === "ios" - ? firebase - .messaging() - .ios.registerForRemoteNotifications() + .then(() => Platform.OS === "ios" && !messaging().isDeviceRegisteredForRemoteMessages + ? messaging() + .registerDeviceForRemoteMessages() .then(() => true) : true) .catch(() => false); diff --git a/test/javascriptsource/nativemobileresources/actions/RequestNotificationPermission.json b/test/javascriptsource/nativemobileresources/actions/RequestNotificationPermission.json new file mode 100644 index 0000000..66c4578 --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/RequestNotificationPermission.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "@react-native-firebase/messaging": "10.5.1", + "@react-native-firebase/app": "10.1.0" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/SaveToPictureLibrary.js b/test/javascriptsource/nativemobileresources/actions/SaveToPictureLibrary.js index 6a42b18..021ceff 100755 --- a/test/javascriptsource/nativemobileresources/actions/SaveToPictureLibrary.js +++ b/test/javascriptsource/nativemobileresources/actions/SaveToPictureLibrary.js @@ -6,6 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; +import { saveToCameraRoll } from '@react-native-community/cameraroll'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -17,8 +18,6 @@ import { Big } from "big.js"; export async function SaveToPictureLibrary(picture) { // BEGIN USER CODE // Documentation https://facebook.github.io/react-native/docs/cameraroll#savetocameraroll - var _a; - const CameraRoll = (_a = require("@react-native-community/cameraroll")) !== null && _a !== void 0 ? _a : require("react-native").CameraRoll; if (!picture) { return Promise.reject(new Error("Input parameter 'Picture' is required")); } @@ -29,6 +28,6 @@ export async function SaveToPictureLibrary(picture) { const guid = picture.getGuid(); const changedDate = picture.get("changedDate"); const url = mx.data.getDocumentUrl(guid, changedDate); - return CameraRoll.saveToCameraRoll(url); + return saveToCameraRoll(url); // END USER CODE } diff --git a/test/javascriptsource/nativemobileresources/actions/SaveToPictureLibrary.json b/test/javascriptsource/nativemobileresources/actions/SaveToPictureLibrary.json new file mode 100644 index 0000000..2986c86 --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/SaveToPictureLibrary.json @@ -0,0 +1,5 @@ +{ + "nativeDependencies": { + "@react-native-community/cameraroll": "4.0.1" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/ScheduleNotification.js b/test/javascriptsource/nativemobileresources/actions/ScheduleNotification.js index 4e566aa..b61781a 100755 --- a/test/javascriptsource/nativemobileresources/actions/ScheduleNotification.js +++ b/test/javascriptsource/nativemobileresources/actions/ScheduleNotification.js @@ -6,7 +6,8 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { NativeModules } from "react-native"; +import { Platform, NativeModules } from 'react-native'; +import PushNotification from 'react-native-push-notification'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -27,43 +28,51 @@ import { NativeModules } from "react-native"; */ export async function ScheduleNotification(date, body, title, subtitle, playSound, notificationId, actionName, actionGuid) { // BEGIN USER CODE - // Documentation https://rnfirebase.io/docs/v5.x.x/notifications/scheduling-notifications - if (NativeModules && !NativeModules.RNFirebase) { - return Promise.reject(new Error("Firebase module is not available in your app")); - } - // eslint-disable-next-line @typescript-eslint/no-var-requires - const firebase = require("react-native-firebase"); - if (!date) { - return Promise.reject(new Error("Input parameter 'Date' is required")); + // Documentation https://github.com/zo0r/react-native-push-notification + const isIOS = Platform.OS === "ios"; + if (NativeModules && + ((isIOS && !NativeModules.RNCPushNotificationIOS) || (!isIOS && !NativeModules.RNPushNotification))) { + return Promise.reject(new Error("Notifications module is not available in your app")); } if (!body) { return Promise.reject(new Error("Input parameter 'Body' is required")); } - const channel = new firebase.notifications.Android.Channel("mendix-local-notifications", "Local notifications", firebase.notifications.Android.Importance.Default); - await firebase.notifications().android.createChannel(channel); - const notification = new firebase.notifications.Notification() - .setBody(body) - .android.setChannelId("mendix-local-notifications"); - if (title) { - notification.setTitle(title); + const notification = { message: body }; + const notificationIdNumber = Number(notificationId); + if (!isIOS) { + const channelId = "mendix-local-notifications"; + const channelExists = await new Promise(resolve => PushNotification.channelExists(channelId, (exists) => resolve(exists))); + if (!channelExists) { + const channel = await new Promise(resolve => PushNotification.createChannel({ + channelId, + channelName: "Local notifications" + }, created => resolve(created))); + if (!channel) { + return Promise.reject(new Error("Could not create the local notifications channel")); + } + } + notification.channelId = channelId; } - if (subtitle) { - notification.setSubtitle(subtitle); + if (notificationIdNumber) { + notification.id = notificationIdNumber; + } + if (title) { + notification.title = title; } - if (playSound) { - notification.setSound("default"); + if (subtitle && !isIOS) { + notification.subText = subtitle; } + notification.playSound = !!playSound; if (actionName || actionGuid) { - notification.setData({ + notification.userInfo = { actionName, guid: actionGuid - }); + }; } - if (notificationId) { - notification.setNotificationId(notificationId); + if (date && date.getTime()) { + notification.date = date; } - return firebase.notifications().scheduleNotification(notification, { - fireDate: date.getTime() - }); + PushNotification.localNotificationSchedule(notification); + return Promise.resolve(); // END USER CODE } diff --git a/test/javascriptsource/nativemobileresources/actions/ScheduleNotification.json b/test/javascriptsource/nativemobileresources/actions/ScheduleNotification.json new file mode 100644 index 0000000..c571daa --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/ScheduleNotification.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "react-native-push-notification": "6.1.2", + "@react-native-community/push-notification-ios": "1.8.0" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/SetBadgeNumber.js b/test/javascriptsource/nativemobileresources/actions/SetBadgeNumber.js index 6a5d60c..b8cdc19 100755 --- a/test/javascriptsource/nativemobileresources/actions/SetBadgeNumber.js +++ b/test/javascriptsource/nativemobileresources/actions/SetBadgeNumber.js @@ -6,7 +6,8 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { NativeModules } from "react-native"; +import { Platform, NativeModules } from 'react-native'; +import PushNotification from 'react-native-push-notification'; // BEGIN EXTRA CODE // END EXTRA CODE @@ -17,18 +18,18 @@ import { NativeModules } from "react-native"; */ export async function SetBadgeNumber(badgeNumber) { // BEGIN USER CODE - // Documentation https://rnfirebase.io/docs/v5.x.x/notifications/reference/Notifications#setBadge - if (NativeModules && !NativeModules.RNFirebase) { - return Promise.reject(new Error("Firebase module is not available in your app")); + // Documentation https://github.com/zo0r/react-native-push-notification + const isIOS = Platform.OS === "ios"; + if (NativeModules && + ((isIOS && !NativeModules.RNCPushNotificationIOS) || (!isIOS && !NativeModules.RNPushNotification))) { + return Promise.reject(new Error("Notifications module is not available in your app")); } - // eslint-disable-next-line @typescript-eslint/no-var-requires - const firebase = require("react-native-firebase"); if (!badgeNumber) { return Promise.reject(new Error("Input parameter 'Badge number' is required")); } if (badgeNumber.lt(0)) { return Promise.reject(new Error("Input parameter 'Badge number' should be zero or greater")); } - return firebase.notifications().setBadge(Number(badgeNumber)); + return PushNotification.setApplicationIconBadgeNumber(Number(badgeNumber)); // END USER CODE } diff --git a/test/javascriptsource/nativemobileresources/actions/SetBadgeNumber.json b/test/javascriptsource/nativemobileresources/actions/SetBadgeNumber.json new file mode 100644 index 0000000..c571daa --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/SetBadgeNumber.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "react-native-push-notification": "6.1.2", + "@react-native-community/push-notification-ios": "1.8.0" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/SetClipboardContent.js b/test/javascriptsource/nativemobileresources/actions/SetClipboardContent.js index 50bee86..63ae1e3 100755 --- a/test/javascriptsource/nativemobileresources/actions/SetClipboardContent.js +++ b/test/javascriptsource/nativemobileresources/actions/SetClipboardContent.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { Clipboard } from "react-native"; +import { Clipboard } from 'react-native'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/TakePicture.js b/test/javascriptsource/nativemobileresources/actions/TakePicture.js index f85d567..9df4e7d 100755 --- a/test/javascriptsource/nativemobileresources/actions/TakePicture.js +++ b/test/javascriptsource/nativemobileresources/actions/TakePicture.js @@ -6,16 +6,16 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { Alert, Linking, NativeModules, Platform } from "react-native"; -import { launchCamera, launchImageLibrary } from "react-native-image-picker"; -import { getLocales } from "react-native-localize"; +import { NativeModules, Alert, Platform, Linking } from 'react-native'; +import { launchImageLibrary, launchCamera } from 'react-native-image-picker'; +import { getLocales } from 'react-native-localize'; // BEGIN EXTRA CODE // END EXTRA CODE /** * @param {MxObject} picture - This field is required. - * @param {"NativeMobileResources.PictureSource.camera"|"NativeMobileResources.PictureSource.imageLibrary"} pictureSource - Select a picture from the library or the camera. The default is camera. + * @param {"NativeMobileResources.PictureSource.camera"|"NativeMobileResources.PictureSource.imageLibrary"} pictureSource - Select a picture from the library or the camera. The default is to let the user decide. * @param {"NativeMobileResources.PictureQuality.original"|"NativeMobileResources.PictureQuality.low"|"NativeMobileResources.PictureQuality.medium"|"NativeMobileResources.PictureQuality.high"|"NativeMobileResources.PictureQuality.custom"} pictureQuality - Set to empty to use default value 'medium'. * @param {Big} maximumWidth - The picture will be scaled to this maximum pixel width, while maintaing the aspect ratio. * @param {Big} maximumHeight - The picture will be scaled to this maximum pixel height, while maintaing the aspect ratio. diff --git a/test/javascriptsource/nativemobileresources/actions/TakePicture.json b/test/javascriptsource/nativemobileresources/actions/TakePicture.json new file mode 100644 index 0000000..ff9ebb1 --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/TakePicture.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "react-native-image-picker": "4.0.3", + "react-native-localize": "1.3.4" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/TakePictureAdvanced.js b/test/javascriptsource/nativemobileresources/actions/TakePictureAdvanced.js index f1452ab..fae448e 100644 --- a/test/javascriptsource/nativemobileresources/actions/TakePictureAdvanced.js +++ b/test/javascriptsource/nativemobileresources/actions/TakePictureAdvanced.js @@ -6,9 +6,9 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { Alert, Linking, NativeModules, Platform } from "react-native"; -import { launchCamera, launchImageLibrary } from "react-native-image-picker"; -import { getLocales } from "react-native-localize"; +import { NativeModules, Alert, Platform, Linking } from 'react-native'; +import { launchImageLibrary, launchCamera } from 'react-native-image-picker'; +import { getLocales } from 'react-native-localize'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/TakePictureAdvanced.json b/test/javascriptsource/nativemobileresources/actions/TakePictureAdvanced.json new file mode 100644 index 0000000..ff9ebb1 --- /dev/null +++ b/test/javascriptsource/nativemobileresources/actions/TakePictureAdvanced.json @@ -0,0 +1,6 @@ +{ + "nativeDependencies": { + "react-native-image-picker": "4.0.3", + "react-native-localize": "1.3.4" + } +} diff --git a/test/javascriptsource/nativemobileresources/actions/Vibrate.js b/test/javascriptsource/nativemobileresources/actions/Vibrate.js index 2595036..e157b2a 100755 --- a/test/javascriptsource/nativemobileresources/actions/Vibrate.js +++ b/test/javascriptsource/nativemobileresources/actions/Vibrate.js @@ -6,7 +6,7 @@ // - the code between BEGIN EXTRA CODE and END EXTRA CODE // Other code you write will be lost the next time you deploy the project. import { Big } from "big.js"; -import { Vibration } from "react-native"; +import { Vibration } from 'react-native'; // BEGIN EXTRA CODE // END EXTRA CODE diff --git a/test/javascriptsource/nativemobileresources/actions/ViewCalendarEvent.js b/test/javascriptsource/nativemobileresources/actions/ViewCalendarEvent.js deleted file mode 100755 index 7cbfef0..0000000 --- a/test/javascriptsource/nativemobileresources/actions/ViewCalendarEvent.js +++ /dev/null @@ -1,19 +0,0 @@ -// This file was generated by Mendix Modeler. -// -// WARNING: Only the following code will be retained when actions are regenerated: -// - the code between BEGIN USER CODE and END USER CODE -// Other code you write will be lost the next time you deploy the project. -function ViewCalendarEvent(eventId) { - // BEGIN USER CODE - // Documentation https://github.com/vonovak/react-native-add-calendar-event#viewing-an-event - const AddCalendarEvent = require("react-native-add-calendar-event"); - if (!eventId) { - throw new TypeError("Input parameter 'Event id' is required"); - } - return AddCalendarEvent.presentEventViewingDialog({ - eventId, - allowsEditing: true, - allowsCalendarPreview: true - }).then(() => true); - // END USER CODE -} diff --git a/test/javasource/atlas_ui_resources/proxies/constants/Constants.java b/test/javasource/atlas_core/proxies/constants/Constants.java old mode 100755 new mode 100644 similarity index 53% rename from test/javasource/atlas_ui_resources/proxies/constants/Constants.java rename to test/javasource/atlas_core/proxies/constants/Constants.java index c11d979..a920131 --- a/test/javasource/atlas_ui_resources/proxies/constants/Constants.java +++ b/test/javasource/atlas_core/proxies/constants/Constants.java @@ -2,16 +2,16 @@ // // WARNING: Code you write here will be lost the next time you deploy the project. -package atlas_ui_resources.proxies.constants; +package atlas_core.proxies.constants; import com.mendix.core.Core; public class Constants { - // These are the constants for the Atlas_UI_Resources module + // These are the constants for the Atlas_Core module - public static java.lang.String getAtlas_UI_Resources_Version() + public static java.lang.String getAtlas_Core_Version() { - return (java.lang.String)Core.getConfiguration().getConstantValue("Atlas_UI_Resources.Atlas_UI_Resources_Version"); + return (java.lang.String)Core.getConfiguration().getConstantValue("Atlas_Core.Atlas_Core_Version"); } } \ No newline at end of file diff --git a/test/javasource/atlas_nativemobile_content/proxies/constants/Constants.java b/test/javasource/atlas_nativemobile_content/proxies/constants/Constants.java new file mode 100644 index 0000000..defb9a3 --- /dev/null +++ b/test/javasource/atlas_nativemobile_content/proxies/constants/Constants.java @@ -0,0 +1,17 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Code you write here will be lost the next time you deploy the project. + +package atlas_nativemobile_content.proxies.constants; + +import com.mendix.core.Core; + +public class Constants +{ + // These are the constants for the Atlas_NativeMobile_Content module + + public static java.lang.String getAtlas_Native_Content_Version() + { + return (java.lang.String)Core.getConfiguration().getConstantValue("Atlas_NativeMobile_Content.Atlas_Native_Content_Version"); + } +} \ No newline at end of file diff --git a/test/javasource/atlas_web_content/proxies/constants/Constants.java b/test/javasource/atlas_web_content/proxies/constants/Constants.java new file mode 100644 index 0000000..6817d34 --- /dev/null +++ b/test/javasource/atlas_web_content/proxies/constants/Constants.java @@ -0,0 +1,17 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Code you write here will be lost the next time you deploy the project. + +package atlas_web_content.proxies.constants; + +import com.mendix.core.Core; + +public class Constants +{ + // These are the constants for the Atlas_Web_Content module + + public static java.lang.String getAtlas_Web_Content_Version() + { + return (java.lang.String)Core.getConfiguration().getConstantValue("Atlas_Web_Content.Atlas_Web_Content_Version"); + } +} \ No newline at end of file diff --git a/test/javasource/communitycommons/Misc.java b/test/javasource/communitycommons/Misc.java index 87e27c9..8808320 100755 --- a/test/javasource/communitycommons/Misc.java +++ b/test/javasource/communitycommons/Misc.java @@ -33,6 +33,7 @@ import java.util.concurrent.Future; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicLong; +import java.util.stream.Collectors; import org.apache.commons.io.IOUtils; import org.apache.pdfbox.multipdf.Overlay; import org.apache.pdfbox.multipdf.PDFMergerUtility; @@ -145,6 +146,10 @@ public static String getRuntimeVersion() { return runtimeVersion.toString(); } + public static String getModelVersion() { + return Core.getModelVersion(); + } + public static void throwException(String message) throws UserThrownException { throw new UserThrownException(message); } @@ -357,7 +362,7 @@ public static Object executeMicroflowAsUser(IContext context, IContext c = getContextFor(context, username, sudoContext); - return Core.execute(c, microflowName, params); + return Core.microflowCall(microflowName).withParams(params).execute(c); } //MWE: based on: http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Executor.html @@ -587,6 +592,7 @@ public void run() { * @return * @deprecated Native Java function Objects.equals() is available since Java 7 */ + @Deprecated public static boolean objectsAreEqual(Object left, Object right) { if (left == null && right == null) { return true; @@ -712,4 +718,19 @@ public static long getCFInstanceIndex() { return cfInstanceIndex; } + + /** + * Returns the top n items of a List + * + * @param the type of the list elements + * @param objects the list to take the top n items from + * @param top the number of items to take + * @return the sublist of
objects
with max + *
top
elements + */ + public static List listTop(List objects, int top) { + return objects.stream() + .limit(top) + .collect(Collectors.toList()); + } } diff --git a/test/javasource/communitycommons/ORM.java b/test/javasource/communitycommons/ORM.java index 8458108..07ceba6 100755 --- a/test/javasource/communitycommons/ORM.java +++ b/test/javasource/communitycommons/ORM.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import system.proxies.FileDocument; public class ORM { @@ -108,7 +109,9 @@ private static void duplicate(IContext ctx, IMendixObject src, IMendixObject tar tar.setValue(ctx, key, res); } else if (m instanceof MendixAutoNumber) //skip autonumbers! Ticket 14893 { - continue; + // do nothing + } else if ("__UUID__".equals(key) && (isFileDocument(src) || isFileDocument(tar))) { + // do nothing } else { tar.setValue(ctx, key, m.getValue(ctx)); } @@ -255,6 +258,10 @@ public static String getValueOfPath(IContext context, IMendixObject substitute, } } + private static boolean isFileDocument(IMendixObject object) { + return Core.isSubClassOf(Core.getMetaObject(FileDocument.entityName), object.getMetaObject()); + } + public static Boolean cloneObject(IContext c, IMendixObject source, IMendixObject target, Boolean withAssociations) { Map> members = source.getMembers(c); @@ -267,6 +274,9 @@ public static Boolean cloneObject(IContext c, IMendixObject source, if (m instanceof MendixAutoNumber) { continue; } + if ("__UUID__".equals(m.getName()) && (isFileDocument(source) || isFileDocument(target))) { + continue; + } if (withAssociations || ((!(m instanceof MendixObjectReference) && !(m instanceof MendixObjectReferenceSet) && !(m instanceof MendixAutoNumber)))) { target.setValue(c, key, m.getValue(c)); } @@ -348,6 +358,9 @@ public static void copyAttributes(IContext context, IMendixObject source, IMendi if (e.isVirtual() || e.getType() == PrimitiveType.AutoNumber) { continue; } + if ("__UUID__".equals(e.getName()) && (isFileDocument(source) || isFileDocument(target))) { + continue; + } target.setValue(context, e.getName(), source.getValue(context, e.getName())); } diff --git a/test/javasource/communitycommons/StringUtils.java b/test/javasource/communitycommons/StringUtils.java index 9b7284e..321038e 100755 --- a/test/javasource/communitycommons/StringUtils.java +++ b/test/javasource/communitycommons/StringUtils.java @@ -1,17 +1,18 @@ package communitycommons; -import com.google.common.collect.ImmutableMap; import com.mendix.core.Core; import com.mendix.systemwideinterfaces.MendixRuntimeException; import com.mendix.systemwideinterfaces.core.IContext; import com.mendix.systemwideinterfaces.core.IMendixObject; import communitycommons.proxies.SanitizerPolicy; + import static communitycommons.proxies.SanitizerPolicy.BLOCKS; import static communitycommons.proxies.SanitizerPolicy.FORMATTING; import static communitycommons.proxies.SanitizerPolicy.IMAGES; import static communitycommons.proxies.SanitizerPolicy.LINKS; import static communitycommons.proxies.SanitizerPolicy.STYLES; import static communitycommons.proxies.SanitizerPolicy.TABLES; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -19,16 +20,10 @@ import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.security.DigestException; -import java.security.InvalidKeyException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; +import java.security.*; import java.text.Normalizer; -import java.util.Base64; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; +import java.util.AbstractMap.SimpleEntry; import java.util.function.Function; import java.util.regex.MatchResult; import java.util.regex.Matcher; @@ -42,8 +37,8 @@ import javax.swing.text.html.HTML; import javax.swing.text.html.HTMLEditorKit; import javax.swing.text.html.parser.ParserDelegator; + import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringEscapeUtils; import org.owasp.html.PolicyFactory; import org.owasp.html.Sanitizers; @@ -51,14 +46,23 @@ public class StringUtils { - static final Map SANITIZER_POLICIES = new ImmutableMap.Builder() - .put(BLOCKS.name(), Sanitizers.BLOCKS) - .put(FORMATTING.name(), Sanitizers.FORMATTING) - .put(IMAGES.name(), Sanitizers.IMAGES) - .put(LINKS.name(), Sanitizers.LINKS) - .put(STYLES.name(), Sanitizers.STYLES) - .put(TABLES.name(), Sanitizers.TABLES) - .build(); + private static final Random RANDOM = new SecureRandom(); + + private static final String UPPERCASE_ALPHA = stringRange('A', 'Z'); + private static final String LOWERCASE_ALPHA = stringRange('a', 'z'); + private static final String DIGITS = stringRange('0', '9'); + private static final String SPECIAL = stringRange('!', '/'); + private static final String ALPHANUMERIC = UPPERCASE_ALPHA + LOWERCASE_ALPHA + DIGITS; + + static final Map SANITIZER_POLICIES = + Map.ofEntries( + new SimpleEntry<>(BLOCKS.name(), Sanitizers.BLOCKS), + new SimpleEntry<>(FORMATTING.name(), Sanitizers.FORMATTING), + new SimpleEntry<>(IMAGES.name(), Sanitizers.IMAGES), + new SimpleEntry<>(LINKS.name(), Sanitizers.LINKS), + new SimpleEntry<>(STYLES.name(), Sanitizers.STYLES), + new SimpleEntry<>(TABLES.name(), Sanitizers.TABLES) + ); public static final String HASH_ALGORITHM = "SHA-256"; @@ -87,13 +91,13 @@ public static String hash(String value, int length) throws NoSuchAlgorithmExcept * The default replaceAll microflow function doesn't support capture variables such as $1, $2 * etc. so for that reason we do not deprecate this method. * - * @param haystack The string to replace patterns in + * @param haystack The string to replace patterns in * @param needleRegex The regular expression pattern * @param replacement The string that should come in place of the pattern matches. * @return The resulting string, where all matches have been replaced by the replacement. */ public static String regexReplaceAll(String haystack, String needleRegex, - String replacement) { + String replacement) { Pattern pattern = Pattern.compile(needleRegex); Matcher matcher = pattern.matcher(haystack); return matcher.replaceAll(replacement); @@ -114,11 +118,11 @@ public static String rightPad(String value, Long amount, String fillCharacter) { } public static String randomString(int length) { - return org.apache.commons.lang3.RandomStringUtils.randomAlphanumeric(length); + return randomStringFromCharArray(length, ALPHANUMERIC.toCharArray()); } public static String substituteTemplate(final IContext context, String template, - final IMendixObject substitute, final boolean HTMLEncode, final String datetimeformat) { + final IMendixObject substitute, final boolean HTMLEncode, final String datetimeformat) { return regexReplaceAll(template, "\\{(@)?([\\w./]+)\\}", (MatchResult match) -> { String value; String path = match.group(2); @@ -180,8 +184,7 @@ public static void base64DecodeToFile(IContext context, String encoded, FileDocu byte[] decoded = Base64.getDecoder().decode(encoded.getBytes()); - try ( - ByteArrayInputStream bais = new ByteArrayInputStream(decoded);) { + try (ByteArrayInputStream bais = new ByteArrayInputStream(decoded)) { Core.storeFileDocumentContent(context, targetFile.getMendixObject(), bais); } } @@ -201,8 +204,7 @@ public static String base64EncodeFile(IContext context, FileDocument file) throw throw new IllegalArgumentException("Source file has no contents!"); } - try ( - InputStream f = Core.getFileDocumentContent(context, file.getMendixObject())) { + try (InputStream f = Core.getFileDocumentContent(context, file.getMendixObject())) { return Base64.getEncoder().encodeToString(IOUtils.toByteArray(f)); } } @@ -215,8 +217,7 @@ public static String stringFromFile(IContext context, FileDocument source, Chars if (source == null) { return null; } - try ( - InputStream f = Core.getFileDocumentContent(context, source.getMendixObject());) { + try (InputStream f = Core.getFileDocumentContent(context, source.getMendixObject())) { return IOUtils.toString(f, charset); } } @@ -233,8 +234,7 @@ public static void stringToFile(IContext context, String value, FileDocument des throw new IllegalArgumentException("Value to write is null"); } - try ( - InputStream is = IOUtils.toInputStream(value, charset)) { + try (InputStream is = IOUtils.toInputStream(value, charset)) { Core.storeFileDocumentContent(context, destination.getMendixObject(), is); } } @@ -245,8 +245,7 @@ public static String HTMLToPlainText(String html) throws IOException { } final StringBuffer result = new StringBuffer(); - HTMLEditorKit.ParserCallback callback - = new HTMLEditorKit.ParserCallback() { + HTMLEditorKit.ParserCallback callback = new HTMLEditorKit.ParserCallback() { @Override public void handleText(char[] data, int pos) { result.append(data); //TODO: needds to be html entity decode? @@ -286,11 +285,11 @@ public void handleEndTag(HTML.Tag tag, int pos) { * Returns a random strong password containing a specified minimum number of digits, uppercase * and special characters. * - * @param minLen Minimum length - * @param maxLen Maximum length + * @param minLen Minimum length + * @param maxLen Maximum length * @param noOfCAPSAlpha Number of capitals - * @param noOfDigits Number of digits - * @param noOfSplChars Number of special characters + * @param noOfDigits Number of digits + * @param noOfSplChars Number of special characters * @return */ public static String randomStrongPassword(int minLen, int maxLen, int noOfCAPSAlpha, int noOfDigits, int noOfSplChars) { @@ -306,11 +305,15 @@ public static String randomStrongPassword(int minLen, int maxLen, int noOfCAPSAl // See https://www.baeldung.com/java-generate-secure-password // Implementation inspired by https://github.com/eugenp/tutorials/tree/master/core-java-modules/core-java-string-apis (under MIT license) private static String generateCommonLangPassword(int minLen, int maxLen, int noOfCapsAlpha, int noOfDigits, int noOfSplChars) { - String upperCaseLetters = RandomStringUtils.random(noOfCapsAlpha, 65, 90, true, true); - String numbers = RandomStringUtils.randomNumeric(noOfDigits); - String specialChar = RandomStringUtils.random(noOfSplChars, 33, 47, false, false); + String upperCaseLetters = randomStringFromCharArray(noOfCapsAlpha, UPPERCASE_ALPHA.toCharArray()); + String numbers = randomStringFromCharArray(noOfDigits, DIGITS.toCharArray()); + String specialChar = randomStringFromCharArray(noOfSplChars, SPECIAL.toCharArray()); + final int fixedNumber = noOfCapsAlpha + noOfDigits + noOfSplChars; - String totalChars = RandomStringUtils.randomAlphanumeric(minLen - fixedNumber, maxLen - fixedNumber); + final int lowerBound = minLen - fixedNumber; + final int upperBound = maxLen - fixedNumber; + String totalChars = randomStringFromCharArray(lowerBound, upperBound, ALPHANUMERIC.toCharArray()); + String combinedChars = upperCaseLetters .concat(numbers) .concat(specialChar) @@ -325,6 +328,75 @@ private static String generateCommonLangPassword(int minLen, int maxLen, int noO return password; } + /** + * Generate a secure random string using the given array of characters, of which the resulting + * string will be composed of. + * + * @param count The length of the random string. + * @param allowedChars The characters used for constructing the random string. + * @return A random string. + * @throws IllegalArgumentException if count is negative or allowedChars is null or empty. + */ + private static String randomStringFromCharArray(int count, final char[] allowedChars) { + if (count == 0) + return ""; + if (count < 0) + throw new IllegalArgumentException("The requested length for the random string was negative: " + count); + if (allowedChars == null) + throw new IllegalArgumentException("The char array 'allowedChars' cannot be null."); + if (allowedChars.length == 0) + throw new IllegalArgumentException("The char array 'allowedChars' cannot be empty."); + + StringBuilder builder = new StringBuilder(); + + while (count-- > 0) { + int index = RANDOM.nextInt(allowedChars.length); + builder.append(allowedChars[index]); + } + + return builder.toString(); + } + + /** + * Generate a random string with a random length between minLengthBound and maxLengthBound (inclusive), + * using the given set of allowed characters. + * + * @param minLengthBound The lower bound for the random length of the string. + * @param maxLengthBound The upper bound for the random length of the string. + * @param allowedChars An array of characters of which the resulting string will be made up of. + * @return A random string with a length between minLengthBound and maxLengthBound. + * @throws IllegalArgumentException if minLengthBound is larger than maxLengthBound. + */ + private static String randomStringFromCharArray(int minLengthBound, int maxLengthBound, final char[] allowedChars) { + if (minLengthBound == maxLengthBound) + return randomStringFromCharArray(minLengthBound, allowedChars); + if (minLengthBound > maxLengthBound) + throw new IllegalArgumentException("The minimum bound (" + minLengthBound + ") was larger than the maximum bound (" + maxLengthBound + "."); + final int randomLength = minLengthBound + RANDOM.nextInt(maxLengthBound - minLengthBound + 1); // add one to make the range inclusive. + return randomStringFromCharArray(randomLength, allowedChars); + } + + /** + * Produces a 'range' string starting from the begin character up to + * the end character (inclusive range). For example, for the range (a-z), + * this method will generate the lowercase alphabet. + * + * @param begin The starting point of the string. + * @param end The ending point of the string. + * @return A string from begin to end (inclusive range). + * @throws IllegalArgumentException if the begin character has a higher code point than the end character. + */ + private static String stringRange(char begin, char end) { + if (begin > end) { + throw new IllegalArgumentException("The 'begin' character cannot be larger than the 'end' character."); + } + + StringBuilder builder = new StringBuilder(); + while (begin <= end) + builder.append(begin++); + return builder.toString(); + } + public static String encryptString(String key, String valueToEncrypt) throws Exception { if (valueToEncrypt == null) { return null; diff --git a/test/javasource/communitycommons/actions/GetModelVersion.java b/test/javasource/communitycommons/actions/GetModelVersion.java new file mode 100644 index 0000000..2027221 --- /dev/null +++ b/test/javasource/communitycommons/actions/GetModelVersion.java @@ -0,0 +1,45 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +// Special characters, e.g., é, ö, à, etc. are supported in comments. + +package communitycommons.actions; + +import com.mendix.systemwideinterfaces.core.IContext; +import com.mendix.webui.CustomJavaAction; +import communitycommons.Misc; + +/** + * Returns the model version of the deployed application. + */ +public class GetModelVersion extends CustomJavaAction +{ + public GetModelVersion(IContext context) + { + super(context); + } + + @java.lang.Override + public java.lang.String executeAction() throws Exception + { + // BEGIN USER CODE + return Misc.getModelVersion(); + // END USER CODE + } + + /** + * Returns a string representation of this action + */ + @java.lang.Override + public java.lang.String toString() + { + return "GetModelVersion"; + } + + // BEGIN EXTRA CODE + // END EXTRA CODE +} diff --git a/test/javasource/communitycommons/actions/ListTop.java b/test/javasource/communitycommons/actions/ListTop.java new file mode 100644 index 0000000..1f14976 --- /dev/null +++ b/test/javasource/communitycommons/actions/ListTop.java @@ -0,0 +1,51 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +// Special characters, e.g., é, ö, à, etc. are supported in comments. + +package communitycommons.actions; + +import com.mendix.systemwideinterfaces.core.IContext; +import com.mendix.systemwideinterfaces.core.IMendixObject; +import com.mendix.webui.CustomJavaAction; +import communitycommons.Misc; + +/** + * Takes the top n items of a given list and returns the resulting list. + */ +public class ListTop extends CustomJavaAction> +{ + private java.util.List ObjectList; + private java.lang.Long Top; + + public ListTop(IContext context, java.util.List ObjectList, java.lang.Long Top) + { + super(context); + this.ObjectList = ObjectList; + this.Top = Top; + } + + @java.lang.Override + public java.util.List executeAction() throws Exception + { + // BEGIN USER CODE + return Misc.listTop(ObjectList, Top.intValue()); + // END USER CODE + } + + /** + * Returns a string representation of this action + */ + @java.lang.Override + public java.lang.String toString() + { + return "ListTop"; + } + + // BEGIN EXTRA CODE + // END EXTRA CODE +} diff --git a/test/javasource/communitycommons/actions/XSSSanitize.java b/test/javasource/communitycommons/actions/XSSSanitize.java index aace983..b193cb5 100755 --- a/test/javasource/communitycommons/actions/XSSSanitize.java +++ b/test/javasource/communitycommons/actions/XSSSanitize.java @@ -9,7 +9,6 @@ package communitycommons.actions; -import com.google.common.collect.Lists; import com.mendix.systemwideinterfaces.MendixRuntimeException; import com.mendix.systemwideinterfaces.core.IContext; import com.mendix.webui.CustomJavaAction; @@ -17,6 +16,7 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; /** @@ -68,8 +68,7 @@ public java.lang.String executeAction() throws Exception return ""; } - List policyParams = Lists.newArrayList(policy1, policy2, policy3, policy4, policy5, policy6) - .stream() + List policyParams = Stream.of(policy1, policy2, policy3, policy4, policy5, policy6) .filter(Objects::nonNull) .collect(Collectors.toList()); diff --git a/test/javasource/datagrid/proxies/DataGrid.java b/test/javasource/datagrid/proxies/DataGrid.java new file mode 100644 index 0000000..c277837 --- /dev/null +++ b/test/javasource/datagrid/proxies/DataGrid.java @@ -0,0 +1,326 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Code you write here will be lost the next time you deploy the project. + +package datagrid.proxies; + +public class DataGrid +{ + private final com.mendix.systemwideinterfaces.core.IMendixObject dataGridMendixObject; + + private final com.mendix.systemwideinterfaces.core.IContext context; + + /** + * Internal name of this entity + */ + public static final java.lang.String entityName = "DataGrid.DataGrid"; + + /** + * Enum describing members of this entity + */ + public enum MemberNames + { + StringAttribute("StringAttribute"), + NumberAttribute("NumberAttribute"), + DateAttribute("DateAttribute"), + EnumAttribute("EnumAttribute"); + + private java.lang.String metaName; + + MemberNames(java.lang.String s) + { + metaName = s; + } + + @java.lang.Override + public java.lang.String toString() + { + return metaName; + } + } + + public DataGrid(com.mendix.systemwideinterfaces.core.IContext context) + { + this(context, com.mendix.core.Core.instantiate(context, "DataGrid.DataGrid")); + } + + protected DataGrid(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject dataGridMendixObject) + { + if (dataGridMendixObject == null) + throw new java.lang.IllegalArgumentException("The given object cannot be null."); + if (!com.mendix.core.Core.isSubClassOf("DataGrid.DataGrid", dataGridMendixObject.getType())) + throw new java.lang.IllegalArgumentException("The given object is not a DataGrid.DataGrid"); + + this.dataGridMendixObject = dataGridMendixObject; + this.context = context; + } + + /** + * @deprecated Use 'DataGrid.load(IContext, IMendixIdentifier)' instead. + */ + @java.lang.Deprecated + public static datagrid.proxies.DataGrid initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException + { + return datagrid.proxies.DataGrid.load(context, mendixIdentifier); + } + + /** + * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. + * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). + */ + public static datagrid.proxies.DataGrid initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) + { + return new datagrid.proxies.DataGrid(context, mendixObject); + } + + public static datagrid.proxies.DataGrid load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException + { + com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); + return datagrid.proxies.DataGrid.initialize(context, mendixObject); + } + + public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException + { + java.util.List result = new java.util.ArrayList(); + for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//DataGrid.DataGrid" + xpathConstraint)) + result.add(datagrid.proxies.DataGrid.initialize(context, obj)); + return result; + } + + /** + * Commit the changes made on this proxy object. + */ + public final void commit() throws com.mendix.core.CoreException + { + com.mendix.core.Core.commit(context, getMendixObject()); + } + + /** + * Commit the changes made on this proxy object using the specified context. + */ + public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException + { + com.mendix.core.Core.commit(context, getMendixObject()); + } + + /** + * Delete the object. + */ + public final void delete() + { + com.mendix.core.Core.delete(context, getMendixObject()); + } + + /** + * Delete the object using the specified context. + */ + public final void delete(com.mendix.systemwideinterfaces.core.IContext context) + { + com.mendix.core.Core.delete(context, getMendixObject()); + } + /** + * @return value of StringAttribute + */ + public final java.lang.String getStringAttribute() + { + return getStringAttribute(getContext()); + } + + /** + * @param context + * @return value of StringAttribute + */ + public final java.lang.String getStringAttribute(com.mendix.systemwideinterfaces.core.IContext context) + { + return (java.lang.String) getMendixObject().getValue(context, MemberNames.StringAttribute.toString()); + } + + /** + * Set value of StringAttribute + * @param stringattribute + */ + public final void setStringAttribute(java.lang.String stringattribute) + { + setStringAttribute(getContext(), stringattribute); + } + + /** + * Set value of StringAttribute + * @param context + * @param stringattribute + */ + public final void setStringAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String stringattribute) + { + getMendixObject().setValue(context, MemberNames.StringAttribute.toString(), stringattribute); + } + + /** + * @return value of NumberAttribute + */ + public final java.math.BigDecimal getNumberAttribute() + { + return getNumberAttribute(getContext()); + } + + /** + * @param context + * @return value of NumberAttribute + */ + public final java.math.BigDecimal getNumberAttribute(com.mendix.systemwideinterfaces.core.IContext context) + { + return (java.math.BigDecimal) getMendixObject().getValue(context, MemberNames.NumberAttribute.toString()); + } + + /** + * Set value of NumberAttribute + * @param numberattribute + */ + public final void setNumberAttribute(java.math.BigDecimal numberattribute) + { + setNumberAttribute(getContext(), numberattribute); + } + + /** + * Set value of NumberAttribute + * @param context + * @param numberattribute + */ + public final void setNumberAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.math.BigDecimal numberattribute) + { + getMendixObject().setValue(context, MemberNames.NumberAttribute.toString(), numberattribute); + } + + /** + * @return value of DateAttribute + */ + public final java.util.Date getDateAttribute() + { + return getDateAttribute(getContext()); + } + + /** + * @param context + * @return value of DateAttribute + */ + public final java.util.Date getDateAttribute(com.mendix.systemwideinterfaces.core.IContext context) + { + return (java.util.Date) getMendixObject().getValue(context, MemberNames.DateAttribute.toString()); + } + + /** + * Set value of DateAttribute + * @param dateattribute + */ + public final void setDateAttribute(java.util.Date dateattribute) + { + setDateAttribute(getContext(), dateattribute); + } + + /** + * Set value of DateAttribute + * @param context + * @param dateattribute + */ + public final void setDateAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.util.Date dateattribute) + { + getMendixObject().setValue(context, MemberNames.DateAttribute.toString(), dateattribute); + } + + /** + * Set value of EnumAttribute + * @param enumattribute + */ + public final datagrid.proxies.Enumeration_Example getEnumAttribute() + { + return getEnumAttribute(getContext()); + } + + /** + * @param context + * @return value of EnumAttribute + */ + public final datagrid.proxies.Enumeration_Example getEnumAttribute(com.mendix.systemwideinterfaces.core.IContext context) + { + Object obj = getMendixObject().getValue(context, MemberNames.EnumAttribute.toString()); + if (obj == null) + return null; + + return datagrid.proxies.Enumeration_Example.valueOf((java.lang.String) obj); + } + + /** + * Set value of EnumAttribute + * @param enumattribute + */ + public final void setEnumAttribute(datagrid.proxies.Enumeration_Example enumattribute) + { + setEnumAttribute(getContext(), enumattribute); + } + + /** + * Set value of EnumAttribute + * @param context + * @param enumattribute + */ + public final void setEnumAttribute(com.mendix.systemwideinterfaces.core.IContext context, datagrid.proxies.Enumeration_Example enumattribute) + { + if (enumattribute != null) + getMendixObject().setValue(context, MemberNames.EnumAttribute.toString(), enumattribute.toString()); + else + getMendixObject().setValue(context, MemberNames.EnumAttribute.toString(), null); + } + + /** + * @return the IMendixObject instance of this proxy for use in the Core interface. + */ + public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() + { + return dataGridMendixObject; + } + + /** + * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. + */ + public final com.mendix.systemwideinterfaces.core.IContext getContext() + { + return context; + } + + @java.lang.Override + public boolean equals(Object obj) + { + if (obj == this) + return true; + + if (obj != null && getClass().equals(obj.getClass())) + { + final datagrid.proxies.DataGrid that = (datagrid.proxies.DataGrid) obj; + return getMendixObject().equals(that.getMendixObject()); + } + return false; + } + + @java.lang.Override + public int hashCode() + { + return getMendixObject().hashCode(); + } + + /** + * @return String name of this class + */ + public static java.lang.String getType() + { + return "DataGrid.DataGrid"; + } + + /** + * @return String GUID from this object, format: ID_0000000000 + * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. + */ + @java.lang.Deprecated + public java.lang.String getGUID() + { + return "ID_" + getMendixObject().getId().toLong(); + } +} diff --git a/test/javasource/datagrid/proxies/Enumeration_Example.java b/test/javasource/datagrid/proxies/Enumeration_Example.java new file mode 100644 index 0000000..66a3968 --- /dev/null +++ b/test/javasource/datagrid/proxies/Enumeration_Example.java @@ -0,0 +1,32 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Code you write here will be lost the next time you deploy the project. + +package datagrid.proxies; + +public enum Enumeration_Example +{ + Example_1(new java.lang.String[][] { new java.lang.String[] { "en_US", "Example 1" } }), + Example_2(new java.lang.String[][] { new java.lang.String[] { "en_US", "Example 2" } }); + + private java.util.Map captions; + + private Enumeration_Example(java.lang.String[][] captionStrings) + { + this.captions = new java.util.HashMap(); + for (java.lang.String[] captionString : captionStrings) + captions.put(captionString[0], captionString[1]); + } + + public java.lang.String getCaption(java.lang.String languageCode) + { + if (captions.containsKey(languageCode)) + return captions.get(languageCode); + return captions.get("en_US"); + } + + public java.lang.String getCaption() + { + return captions.get("en_US"); + } +} diff --git a/test/javasource/datagrid/proxies/constants/Constants.java b/test/javasource/datagrid/proxies/constants/Constants.java new file mode 100644 index 0000000..e045036 --- /dev/null +++ b/test/javasource/datagrid/proxies/constants/Constants.java @@ -0,0 +1,17 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Code you write here will be lost the next time you deploy the project. + +package datagrid.proxies.constants; + +import com.mendix.core.Core; + +public class Constants +{ + // These are the constants for the DataGrid module + + public static java.lang.String getDataGrid_Version() + { + return (java.lang.String)Core.getConfiguration().getConstantValue("DataGrid.DataGrid_Version"); + } +} \ No newline at end of file diff --git a/test/javasource/encryption/actions/DecryptString.java b/test/javasource/encryption/actions/DecryptString.java index 7226ccf..14a5923 100755 --- a/test/javasource/encryption/actions/DecryptString.java +++ b/test/javasource/encryption/actions/DecryptString.java @@ -16,6 +16,8 @@ import javax.crypto.spec.GCMParameterSpec; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; +import java.util.regex.Pattern; +import java.util.regex.Matcher; import com.mendix.systemwideinterfaces.MendixRuntimeException; import com.mendix.systemwideinterfaces.core.IContext; import com.mendix.webui.CustomJavaAction; @@ -25,38 +27,36 @@ public class DecryptString extends CustomJavaAction private java.lang.String value; private java.lang.String key; private java.lang.String prefix; + private java.lang.String legacyKey; - public DecryptString(IContext context, java.lang.String value, java.lang.String key, java.lang.String prefix) + public DecryptString(IContext context, java.lang.String value, java.lang.String key, java.lang.String prefix, java.lang.String legacyKey) { super(context); this.value = value; this.key = key; this.prefix = prefix; + this.legacyKey = legacyKey; } @java.lang.Override public java.lang.String executeAction() throws Exception { // BEGIN USER CODE - if (this.value == null || !isStartsWithRightPrefix()) - return null; - if (this.prefix == null || this.prefix.isEmpty()) - throw new MendixRuntimeException("Prefix should not be empty"); - if (this.key == null || this.key.isEmpty()) - throw new MendixRuntimeException("Key should not be empty"); - if (this.key.length() != 16) - throw new MendixRuntimeException("Key length should be 16"); - - String decryptedText = null; + if (this.prefix != null) + throw new MendixRuntimeException("Prefix should be null when passed to DecryptString, this parameter will be deprecated"); + if (this.value == null) + return this.value; - if (isEncryptedWithLegacyAlgorithm(this.value)) { - decryptedText = decryptUsingLegacyAlgorithm(); - } - else { - decryptedText = decryptUsingGcm(); + String textPrefix = getPrefix(this.value); + if (textPrefix == null) + throw new MendixRuntimeException("Encrypted string does not have a valid prefix."); + switch (textPrefix) { + case "AES": return decryptUsingLegacyAlgorithm(); + case "AES2": return decryptUsingGcm(); + case "AES3": return decryptUsingNewAlgorithm(); + default: + throw new MendixRuntimeException("Invalid prefix encountered when trying to decrypt string: {" + textPrefix + "}"); } - - return decryptedText; // END USER CODE } @@ -70,18 +70,54 @@ public java.lang.String toString() } // BEGIN EXTRA CODE - private final int GCM_TAG_LENGTH = 16; // in bytes - private final String LEGACY_PREFIX = "{AES}"; - private final String WRONG_KEY_ERROR_MESSAGE = "Cannot decrypt the text because it was either NOT encrypted with a key of length 16 or they key is different"; + private static final int GCM_TAG_LENGTH = 16; // in bytes + private static final String LEGACY_PREFIX = "{AES}"; + private static final String LEGACY_PREFIX2 = "{AES2}"; + private static final String NEW_PREFIX = "{AES3}"; + private static final Pattern PREFIX_REGEX = Pattern.compile("^\\{([a-zA-Z0-9]*)\\}.*$"); + private static final String WRONG_KEY_ERROR_MESSAGE = "Cannot decrypt the text because it was either NOT encrypted with a key of length 16 or the key is different"; + + private String decryptUsingNewAlgorithm() throws Exception { + if (this.key == null || this.key.isEmpty()) + throw new MendixRuntimeException("Key should not be empty"); + if (this.key.length() != 32) + throw new MendixRuntimeException("Key length should be 32"); + + String[] s = this.value.substring(NEW_PREFIX.length()).split(";"); + + if (s.length < 2) + throw new MendixRuntimeException("Unexpected prefix when trying to decrypt string."); + + Cipher c = Cipher.getInstance("AES/GCM/NoPadding"); + SecretKeySpec k = new SecretKeySpec(this.key.getBytes(), "AES"); + + byte[] iv = Base64.getDecoder().decode(s[0].getBytes()); + byte[] encryptedData = Base64.getDecoder().decode(s[1].getBytes()); + + try { + GCMParameterSpec spec = new GCMParameterSpec(GCM_TAG_LENGTH * 8, iv); + c.init(Cipher.DECRYPT_MODE, k, spec); + return new String(c.doFinal(encryptedData)); + } catch (InvalidAlgorithmParameterException | BadPaddingException ex) { + if (isEncryptedWithWrongKey(ex.getMessage())) + throw new MendixRuntimeException(WRONG_KEY_ERROR_MESSAGE); + else throw ex; + } + } private String decryptUsingGcm() throws Exception { - String[] s = this.value.substring(this.prefix.length()).split(";"); + if (this.legacyKey == null || this.legacyKey.isEmpty()) + throw new MendixRuntimeException("Legacy key should not be empty"); + if (this.legacyKey.length() != 16) + throw new MendixRuntimeException("Legacy key length should be 16"); - if (s.length < 2) //Not an encrypted string, just return the original value. - return this.value; + String[] s = this.value.substring(LEGACY_PREFIX2.length()).split(";"); + + if (s.length < 2) + throw new MendixRuntimeException("Unexpected prefix when trying to decrypt string using legacy algorithm."); Cipher c = Cipher.getInstance("AES/GCM/PKCS5PADDING"); - SecretKeySpec k = new SecretKeySpec(this.key.getBytes(), "AES"); + SecretKeySpec k = new SecretKeySpec(this.legacyKey.getBytes(), "AES"); byte[] iv = Base64.getDecoder().decode(s[0].getBytes()); byte[] encryptedData = Base64.getDecoder().decode(s[1].getBytes()); @@ -98,19 +134,23 @@ private String decryptUsingGcm() throws Exception { } private boolean isEncryptedWithWrongKey(String message) { - return - message.equals( "Wrong IV length: must be 16 bytes long") || + return message.equals("Wrong IV length: must be 16 bytes long") || message.equals("Given final block not properly padded"); } private String decryptUsingLegacyAlgorithm() throws Exception { + if (this.legacyKey == null || this.legacyKey.isEmpty()) + throw new MendixRuntimeException("Legacy key should not be empty"); + if (this.legacyKey.length() != 16) + throw new MendixRuntimeException("Legacy key length should be 16"); + String[] s = this.value.substring(LEGACY_PREFIX.length()).split(";"); - if (s.length < 2) //Not an encrypted string, just return the original value. - return this.value; + if (s.length < 2) + throw new MendixRuntimeException("Unexpected prefix when trying to decrypt string using legacy algorithm."); Cipher c = Cipher.getInstance("AES/CBC/PKCS5PADDING"); - SecretKeySpec k = new SecretKeySpec(this.key.getBytes(), "AES"); + SecretKeySpec k = new SecretKeySpec(this.legacyKey.getBytes(), "AES"); byte[] iv = Base64.getDecoder().decode(s[0].getBytes()); byte[] encryptedData = Base64.getDecoder().decode(s[1].getBytes()); @@ -125,12 +165,11 @@ private String decryptUsingLegacyAlgorithm() throws Exception { } } - private boolean isEncryptedWithLegacyAlgorithm(String text) { - return text.startsWith(LEGACY_PREFIX); - } - - private boolean isStartsWithRightPrefix() { - return this.value.startsWith(this.value) || isEncryptedWithLegacyAlgorithm(this.value); + // try to extract the prefix of an encrypted string + // returns null if no prefix is found + private String getPrefix(String text) { + Matcher m = PREFIX_REGEX.matcher(text); + return m.find() ? m.group(1) : null; } // END EXTRA CODE } diff --git a/test/javasource/encryption/actions/EncryptString.java b/test/javasource/encryption/actions/EncryptString.java index ac2f2f8..9a32253 100755 --- a/test/javasource/encryption/actions/EncryptString.java +++ b/test/javasource/encryption/actions/EncryptString.java @@ -38,20 +38,27 @@ public java.lang.String executeAction() throws Exception return null; if (this.prefix == null || this.prefix.isEmpty()) throw new MendixRuntimeException("Prefix should not be empty"); + if(isLegacyAlgorithm(this.prefix)) + throw new MendixRuntimeException(String.format( + "The used prefix is no longer supported for encryption. Please use '%s'.", NEW_PREFIX)); + if (!hasValidPrefix(this.prefix)) + throw new MendixRuntimeException(String.format("Invalid prefix used. Please use '%s'.", NEW_PREFIX)); if (this.key == null || this.key.isEmpty()) throw new MendixRuntimeException("Key should not be empty"); - if (this.key.length() != 16) - throw new MendixRuntimeException("Key length should be 16"); - Cipher c = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + if (this.key.length() != 32) + throw new MendixRuntimeException("Key length should be 32"); + Cipher c = Cipher.getInstance("AES/GCM/NoPadding"); SecretKeySpec k = new SecretKeySpec(this.key.getBytes(), "AES"); c.init(Cipher.ENCRYPT_MODE, k); byte[] encryptedData = c.doFinal(this.value.getBytes()); byte[] iv = c.getIV(); - return new StringBuilder(this.prefix + - new String(Base64.getEncoder().encode(iv))).append(";").append( - new String(Base64.getEncoder().encode(encryptedData))).toString(); + StringBuilder sb = new StringBuilder(this.prefix); + sb.append(new String(Base64.getEncoder().encode(iv))); + sb.append(';'); + sb.append(new String(Base64.getEncoder().encode(encryptedData))); + return sb.toString(); // END USER CODE } @@ -65,5 +72,10 @@ public java.lang.String toString() } // BEGIN EXTRA CODE + private static final String NEW_PREFIX = "{AES3}"; + private static final String LEGACY_PREFIX_REGEX = "^\\{AES2?}$"; + + private boolean hasValidPrefix(String text) { return text.equals(NEW_PREFIX); } + private boolean isLegacyAlgorithm(String text) { return text.matches(LEGACY_PREFIX_REGEX); } // END EXTRA CODE } diff --git a/test/javasource/encryption/pgp/PGPUtils.java b/test/javasource/encryption/pgp/PGPUtils.java index ae631cd..21a2451 100755 --- a/test/javasource/encryption/pgp/PGPUtils.java +++ b/test/javasource/encryption/pgp/PGPUtils.java @@ -138,7 +138,7 @@ public static PGPSecretKey readSecretKey( InputStream in ) if ( !secretKey.isSigningKey() ) { throw new IllegalArgumentException("Private key does not allow signing."); } - if ( secretKey.getPublicKey().isRevoked() ) { + if ( secretKey.getPublicKey().hasRevocation() ) { throw new IllegalArgumentException("Private key has been revoked."); } if ( !hasKeyFlags(secretKey.getPublicKey(), KeyFlags.SIGN_DATA) ) { @@ -214,14 +214,17 @@ public static void decryptFile( InputStream in, OutputStream out, InputStream ke // // find the secret key // - Iterator it = enc.getEncryptedDataObjects(); + Iterator it = enc.getEncryptedDataObjects(); PGPPrivateKey sKey = null; PGPPublicKeyEncryptedData pbe = null; while( sKey == null && it.hasNext() ) { - pbe = it.next(); + PGPEncryptedData data = it.next(); + if (data instanceof PGPPublicKeyEncryptedData) { + pbe = (PGPPublicKeyEncryptedData) data; - sKey = findPrivateKey(keyIn, pbe.getKeyID(), passwd); + sKey = findPrivateKey(keyIn, pbe.getKeyID(), passwd); + } } if ( sKey == null ) { @@ -356,7 +359,7 @@ public static void signEncryptFile( Iterator it = secretKey.getPublicKey().getUserIDs(); while( it.hasNext() && firstTime ) { PGPSignatureSubpacketGenerator spGen = new PGPSignatureSubpacketGenerator(); - spGen.setSignerUserID(false, it.next()); + spGen.addSignerUserID(false, it.next()); signatureGenerator.setHashedSubpackets(spGen.generate()); // Exit the loop after the first iteration firstTime = false; @@ -450,7 +453,7 @@ public static boolean isForEncryption( PGPPublicKey key ) { if ( key.getAlgorithm() == PublicKeyAlgorithmTags.RSA_SIGN || key.getAlgorithm() == PublicKeyAlgorithmTags.DSA - || key.getAlgorithm() == PublicKeyAlgorithmTags.EC + || key.getAlgorithm() == PublicKeyAlgorithmTags.ECDH || key.getAlgorithm() == PublicKeyAlgorithmTags.ECDSA ) { return false; diff --git a/test/javasource/nanoflowcommons/proxies/GeocodingProvider.java b/test/javasource/nanoflowcommons/proxies/GeocodingProvider.java index 8bcc829..842788a 100755 --- a/test/javasource/nanoflowcommons/proxies/GeocodingProvider.java +++ b/test/javasource/nanoflowcommons/proxies/GeocodingProvider.java @@ -6,10 +6,10 @@ public enum GeocodingProvider { - Google(new java.lang.String[][] { new java.lang.String[] { "en_US", "Google" }, new java.lang.String[] { "nl_NL", "Google" } }), - Geocodio(new java.lang.String[][] { new java.lang.String[] { "en_US", "Geocodio" }, new java.lang.String[] { "nl_NL", "Geocodio" } }), - LocationIQ(new java.lang.String[][] { new java.lang.String[] { "en_US", "LocationIQ" }, new java.lang.String[] { "nl_NL", "LocationIQ" } }), - MapQuest(new java.lang.String[][] { new java.lang.String[] { "en_US", "MapQuest" }, new java.lang.String[] { "nl_NL", "MapQuest" } }); + Google(new java.lang.String[][] { new java.lang.String[] { "en_US", "Google" } }), + Geocodio(new java.lang.String[][] { new java.lang.String[] { "en_US", "Geocodio" } }), + LocationIQ(new java.lang.String[][] { new java.lang.String[] { "en_US", "LocationIQ" } }), + MapQuest(new java.lang.String[][] { new java.lang.String[] { "en_US", "MapQuest" } }); private java.util.Map captions; diff --git a/test/javasource/nanoflowcommons/proxies/Platform.java b/test/javasource/nanoflowcommons/proxies/Platform.java index 7aacf0d..c80a2de 100755 --- a/test/javasource/nanoflowcommons/proxies/Platform.java +++ b/test/javasource/nanoflowcommons/proxies/Platform.java @@ -6,9 +6,9 @@ public enum Platform { - Web(new java.lang.String[][] { new java.lang.String[] { "en_US", "Web" }, new java.lang.String[] { "nl_NL", "Web" } }), - Native_mobile(new java.lang.String[][] { new java.lang.String[] { "en_US", "Native mobile" }, new java.lang.String[] { "nl_NL", "Native mobile" } }), - Hybrid_mobile(new java.lang.String[][] { new java.lang.String[] { "en_US", "Hybrid mobile" }, new java.lang.String[] { "nl_NL", "Hybrid mobile" } }); + Web(new java.lang.String[][] { new java.lang.String[] { "en_US", "Web" } }), + Native_mobile(new java.lang.String[][] { new java.lang.String[] { "en_US", "Native mobile" } }), + Hybrid_mobile(new java.lang.String[][] { new java.lang.String[] { "en_US", "Hybrid mobile" } }); private java.util.Map captions; diff --git a/test/javasource/nanoflowcommons/proxies/constants/Constants.java b/test/javasource/nanoflowcommons/proxies/constants/Constants.java new file mode 100644 index 0000000..87adc13 --- /dev/null +++ b/test/javasource/nanoflowcommons/proxies/constants/Constants.java @@ -0,0 +1,17 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Code you write here will be lost the next time you deploy the project. + +package nanoflowcommons.proxies.constants; + +import com.mendix.core.Core; + +public class Constants +{ + // These are the constants for the NanoflowCommons module + + public static java.lang.String getNanoflow_Commons_Version() + { + return (java.lang.String)Core.getConfiguration().getConstantValue("NanoflowCommons.Nanoflow_Commons_Version"); + } +} \ No newline at end of file diff --git a/test/javasource/nativemobileresources/proxies/BarChart.java b/test/javasource/nativemobileresources/proxies/BarChart.java new file mode 100644 index 0000000..36fc0a3 --- /dev/null +++ b/test/javasource/nativemobileresources/proxies/BarChart.java @@ -0,0 +1,207 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Code you write here will be lost the next time you deploy the project. + +package nativemobileresources.proxies; + +public class BarChart +{ + private final com.mendix.systemwideinterfaces.core.IMendixObject barChartMendixObject; + + private final com.mendix.systemwideinterfaces.core.IContext context; + + /** + * Internal name of this entity + */ + public static final java.lang.String entityName = "NativeMobileResources.BarChart"; + + /** + * Enum describing members of this entity + */ + public enum MemberNames + { + Attribute("Attribute"); + + private java.lang.String metaName; + + MemberNames(java.lang.String s) + { + metaName = s; + } + + @java.lang.Override + public java.lang.String toString() + { + return metaName; + } + } + + public BarChart(com.mendix.systemwideinterfaces.core.IContext context) + { + this(context, com.mendix.core.Core.instantiate(context, "NativeMobileResources.BarChart")); + } + + protected BarChart(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject barChartMendixObject) + { + if (barChartMendixObject == null) + throw new java.lang.IllegalArgumentException("The given object cannot be null."); + if (!com.mendix.core.Core.isSubClassOf("NativeMobileResources.BarChart", barChartMendixObject.getType())) + throw new java.lang.IllegalArgumentException("The given object is not a NativeMobileResources.BarChart"); + + this.barChartMendixObject = barChartMendixObject; + this.context = context; + } + + /** + * @deprecated Use 'BarChart.load(IContext, IMendixIdentifier)' instead. + */ + @java.lang.Deprecated + public static nativemobileresources.proxies.BarChart initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException + { + return nativemobileresources.proxies.BarChart.load(context, mendixIdentifier); + } + + /** + * Initialize a proxy using context (recommended). This context will be used for security checking when the get- and set-methods without context parameters are called. + * The get- and set-methods with context parameter should be used when for instance sudo access is necessary (IContext.createSudoClone() can be used to obtain sudo access). + */ + public static nativemobileresources.proxies.BarChart initialize(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixObject mendixObject) + { + return new nativemobileresources.proxies.BarChart(context, mendixObject); + } + + public static nativemobileresources.proxies.BarChart load(com.mendix.systemwideinterfaces.core.IContext context, com.mendix.systemwideinterfaces.core.IMendixIdentifier mendixIdentifier) throws com.mendix.core.CoreException + { + com.mendix.systemwideinterfaces.core.IMendixObject mendixObject = com.mendix.core.Core.retrieveId(context, mendixIdentifier); + return nativemobileresources.proxies.BarChart.initialize(context, mendixObject); + } + + public static java.util.List load(com.mendix.systemwideinterfaces.core.IContext context, java.lang.String xpathConstraint) throws com.mendix.core.CoreException + { + java.util.List result = new java.util.ArrayList(); + for (com.mendix.systemwideinterfaces.core.IMendixObject obj : com.mendix.core.Core.retrieveXPathQuery(context, "//NativeMobileResources.BarChart" + xpathConstraint)) + result.add(nativemobileresources.proxies.BarChart.initialize(context, obj)); + return result; + } + + /** + * Commit the changes made on this proxy object. + */ + public final void commit() throws com.mendix.core.CoreException + { + com.mendix.core.Core.commit(context, getMendixObject()); + } + + /** + * Commit the changes made on this proxy object using the specified context. + */ + public final void commit(com.mendix.systemwideinterfaces.core.IContext context) throws com.mendix.core.CoreException + { + com.mendix.core.Core.commit(context, getMendixObject()); + } + + /** + * Delete the object. + */ + public final void delete() + { + com.mendix.core.Core.delete(context, getMendixObject()); + } + + /** + * Delete the object using the specified context. + */ + public final void delete(com.mendix.systemwideinterfaces.core.IContext context) + { + com.mendix.core.Core.delete(context, getMendixObject()); + } + /** + * @return value of Attribute + */ + public final java.lang.Integer getAttribute() + { + return getAttribute(getContext()); + } + + /** + * @param context + * @return value of Attribute + */ + public final java.lang.Integer getAttribute(com.mendix.systemwideinterfaces.core.IContext context) + { + return (java.lang.Integer) getMendixObject().getValue(context, MemberNames.Attribute.toString()); + } + + /** + * Set value of Attribute + * @param attribute + */ + public final void setAttribute(java.lang.Integer attribute) + { + setAttribute(getContext(), attribute); + } + + /** + * Set value of Attribute + * @param context + * @param attribute + */ + public final void setAttribute(com.mendix.systemwideinterfaces.core.IContext context, java.lang.Integer attribute) + { + getMendixObject().setValue(context, MemberNames.Attribute.toString(), attribute); + } + + /** + * @return the IMendixObject instance of this proxy for use in the Core interface. + */ + public final com.mendix.systemwideinterfaces.core.IMendixObject getMendixObject() + { + return barChartMendixObject; + } + + /** + * @return the IContext instance of this proxy, or null if no IContext instance was specified at initialization. + */ + public final com.mendix.systemwideinterfaces.core.IContext getContext() + { + return context; + } + + @java.lang.Override + public boolean equals(Object obj) + { + if (obj == this) + return true; + + if (obj != null && getClass().equals(obj.getClass())) + { + final nativemobileresources.proxies.BarChart that = (nativemobileresources.proxies.BarChart) obj; + return getMendixObject().equals(that.getMendixObject()); + } + return false; + } + + @java.lang.Override + public int hashCode() + { + return getMendixObject().hashCode(); + } + + /** + * @return String name of this class + */ + public static java.lang.String getType() + { + return "NativeMobileResources.BarChart"; + } + + /** + * @return String GUID from this object, format: ID_0000000000 + * @deprecated Use getMendixObject().getId().toLong() to get a unique identifier for this object. + */ + @java.lang.Deprecated + public java.lang.String getGUID() + { + return "ID_" + getMendixObject().getId().toLong(); + } +} diff --git a/test/javasource/pushnotificationexampleimplementation/proxies/microflows/Microflows.java b/test/javasource/pushnotificationexampleimplementation/proxies/microflows/Microflows.java index c6eefab..9c58201 100644 --- a/test/javasource/pushnotificationexampleimplementation/proxies/microflows/Microflows.java +++ b/test/javasource/pushnotificationexampleimplementation/proxies/microflows/Microflows.java @@ -53,17 +53,6 @@ public static void iVK_TestMessageCleanupScheduledEvent(IContext context) Map params = new HashMap<>(); Core.microflowCall("PushNotificationExampleImplementation.IVK_TestMessageCleanupScheduledEvent").withParams(params).execute(context); } - public static void microflowWithContext(IContext context, pushnotificationexampleimplementation.proxies.Test _test) - { - Map params = new HashMap<>(); - params.put("Test", _test == null ? null : _test.getMendixObject()); - Core.microflowCall("PushNotificationExampleImplementation.MicroflowWithContext").withParams(params).execute(context); - } - public static void microflowWithoutContext(IContext context) - { - Map params = new HashMap<>(); - Core.microflowCall("PushNotificationExampleImplementation.MicroflowWithoutContext").withParams(params).execute(context); - } public static void send(IContext context, pushnotifications.proxies.MessageView _messageView) { Map params = new HashMap<>(); diff --git a/test/javasource/system/UserActionsRegistrar.java b/test/javasource/system/UserActionsRegistrar.java index 8e6ab04..ceef67d 100755 --- a/test/javasource/system/UserActionsRegistrar.java +++ b/test/javasource/system/UserActionsRegistrar.java @@ -52,6 +52,7 @@ public void registerActions(IActionRegistrator registrator) registrator.registerUserAction(communitycommons.actions.GetImageDimensions.class); registrator.registerUserAction(communitycommons.actions.GetIntFromDateTime.class); registrator.registerUserAction(communitycommons.actions.getLastChangedByUser.class); + registrator.registerUserAction(communitycommons.actions.GetModelVersion.class); registrator.registerUserAction(communitycommons.actions.getOriginalValueAsString.class); registrator.registerUserAction(communitycommons.actions.GetRuntimeVersion.class); registrator.registerUserAction(communitycommons.actions.getTypeAsString.class); @@ -60,6 +61,7 @@ public void registerActions(IActionRegistrator registrator) registrator.registerUserAction(communitycommons.actions.HTMLToPlainText.class); registrator.registerUserAction(communitycommons.actions.IsInDevelopment.class); registrator.registerUserAction(communitycommons.actions.IsStringSimplified.class); + registrator.registerUserAction(communitycommons.actions.ListTop.class); registrator.registerUserAction(communitycommons.actions.LongToDateTime.class); registrator.registerUserAction(communitycommons.actions.memberHasChanged.class); registrator.registerUserAction(communitycommons.actions.MergeMultiplePdfs.class); diff --git a/test/resources/Design_header.png b/test/resources/Design_header.png new file mode 100644 index 0000000..8c439dc Binary files /dev/null and b/test/resources/Design_header.png differ diff --git a/test/resources/icon-bb.png b/test/resources/icon-bb.png new file mode 100644 index 0000000..5efe8ac Binary files /dev/null and b/test/resources/icon-bb.png differ diff --git a/test/resources/icon-list.png b/test/resources/icon-list.png new file mode 100644 index 0000000..e3b4d0f Binary files /dev/null and b/test/resources/icon-list.png differ diff --git a/test/resources/icon-list2.png b/test/resources/icon-list2.png new file mode 100644 index 0000000..6c80888 Binary files /dev/null and b/test/resources/icon-list2.png differ diff --git a/test/resources/icon-widget.png b/test/resources/icon-widget.png new file mode 100644 index 0000000..a0d3f85 Binary files /dev/null and b/test/resources/icon-widget.png differ diff --git a/test/theme/.prettierrc b/test/theme/.prettierrc deleted file mode 100755 index a46f75f..0000000 --- a/test/theme/.prettierrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "singleQuote": false, - "printWidth": 120, - "proseWrap": "always", - "tabWidth": 4, - "useTabs": false, - "trailingComma": "all", - "bracketSpacing": true, - "semi": true, - "arrowParens": "avoid" -} diff --git a/test/theme/.stylelintrc b/test/theme/.stylelintrc deleted file mode 100755 index 62c30a6..0000000 --- a/test/theme/.stylelintrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "extends": "stylelint-config-standard", - "rules": { - "indentation": 4, - "string-quotes": "double", - "no-duplicate-selectors": true, - "color-hex-case": "upper", - "color-hex-length": "short", - "selector-combinator-space-after": "always", - "selector-attribute-operator-space-before": "always", - "selector-attribute-operator-space-after": "always", - "selector-attribute-brackets-space-inside": "always", - "declaration-block-trailing-semicolon": "always", - "declaration-colon-space-before": "never", - "declaration-colon-space-after": "always", - "number-leading-zero": "never", - "function-url-quotes": "always", - "font-family-name-quotes": "always-unless-keyword", - "comment-whitespace-inside": "always", - "comment-empty-line-before": "always", - "rule-empty-line-before": "always-multi-line", - "selector-pseudo-element-colon-notation": "single", - "media-feature-range-operator-space-after": "always", - "media-feature-colon-space-after": "always", - "no-descending-specificity": null, - "declaration-colon-newline-after": null, - "value-list-comma-newline-after": null, - "at-rule-no-unknown": [true, { - "ignoreAtRules": ["function", "if", "each", "include", "mixin"] - }] - } -} diff --git a/test/theme/LICENSE b/test/theme/LICENSE deleted file mode 100755 index 476061e..0000000 --- a/test/theme/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Mendix - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/test/theme/README.md b/test/theme/README.md deleted file mode 100755 index e07d8b5..0000000 --- a/test/theme/README.md +++ /dev/null @@ -1,87 +0,0 @@ -# Mendix Atlas UI - -Mendix Atlas UI is the foundation of making beautiful apps with Mendix. For more information about the framework go to -[here](https://atlas.mendix.com/). - -#### Structure - -Mendix is capable of creating beautiful and user-friendly UI. Our Atlas UI framework demonstrates some of its -possibilities. Here you will find a basic overview of our framework. - -``` -theme/ -├── styles/ -| ├── native/ -| | ├── ts/ // Will not be in the Atlas UI Resources module -| | ├── js/ -| | ├── app/ -| | | ├── _custom-variables.js -| | | └── _custom.js -| | ├── core/ -| |     |   ├── base/ -| |     |   ├── helpers/ -| | | ├── widgets/ -| |    |  | _variables.js -| |    |  └── manifest.json -| | ├── ui_resources/ -| |     |   └── atlas_ui_resources/ -| |     |   ├── buildingblocks/ -| |     |   └── layouts/ -| | └── main.js -| └── web/ -| ├── css/ -| │ ├── * all output files -| └── sass/ -| ├── app/ -| | ├── _custom-variables.scss -| | └── _custom.scss -| ├── core/ -|       |   ├── _legacy/ -|       |   ├── base/ -|       |   ├── helpers/ -| | ├── widgets/ -| | ├── widgetscustom/ -|      |   | _variables.scss -|      |  └── manifest.json -| ├── ui_resources/ -|       |   └── atlas_ui_resources/ -|       |   ├── buildingblocks/ -|       |   └── layouts/ -| └── main.scss -├── * index files -├── * assets -├── * settings*.json (Design Properties) -└── styles.js -``` - -#### App - -The app folder contains all custom styling. We recommend users to only use this directory for any custom styling. - -When you want to customize something, you should first check if you can accomplish your goal by changing variables. -These variables can be found in _styles/web/sass/core/variables.scss_ or _styles/native/core/variables.js_. If you want -to change any core variable, copy it to _../app/\_custom-variables.(scss|js)_ and change it there. It will then -overwrite the core variable. This will make updating Atlas UI much easier in the future. - -#### Core - -The core folder is the heart of Atlas UI. This folder includes base styling, widget styling & additional helper classes. -The core widget styling is split in to two parts. The widget folder includes the default widget styling, as it will look -out of the box. The helpers folder will include design properties and extra classes to change that default styling. - -#### UI Resources - -THe UI Resources folder will contain any styling related to Building Blocks, Page Templates and Layouts. - -Building blocks are created with Widgets. For example _cards_ or _headers_ are building blocks. A building block could -be an image, a title, and a button, assembled together into one UI block. - -Page Templates are created with Building Blocks and Widgets. Page Templates are an example of how a page could look -like. - -Layouts are created with widgets. They are mainly used for navigation or user experiences which need to be consistent -between pages. - -## License - -MIT diff --git a/test/theme/com.mendix.charts.json b/test/theme/com.mendix.charts.json deleted file mode 100755 index 0967ef4..0000000 --- a/test/theme/com.mendix.charts.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/test/theme/components.json b/test/theme/components.json deleted file mode 100755 index df42ffa..0000000 --- a/test/theme/components.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "files": { - "css": ["styles/web/css/main.css"], - "js": ["mxclientsystem/mxui/mxui.js"] - }, - "cachebust": "{{cachebust}}" -} diff --git a/test/theme/favicon.ico b/test/theme/favicon.ico deleted file mode 100755 index dde3234..0000000 Binary files a/test/theme/favicon.ico and /dev/null differ diff --git a/test/theme/index-phone-preview.html b/test/theme/index-phone-preview.html deleted file mode 100755 index deeac7e..0000000 --- a/test/theme/index-phone-preview.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - Mendix - Phone preview - - {{themecss}} - - - - -
-
- -
- This is not a simulator but just a resized view surrounded with an image to give an impression of - what the app might look like on a phone. -
-
-
- - - - diff --git a/test/theme/index-rtl.html b/test/theme/index-rtl.html deleted file mode 100755 index e530044..0000000 --- a/test/theme/index-rtl.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Mendix - - - - {{themecss}} - - - -
- - - - diff --git a/test/theme/index-tablet-preview.html b/test/theme/index-tablet-preview.html deleted file mode 100755 index 196a0ac..0000000 --- a/test/theme/index-tablet-preview.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - Mendix - Tablet preview - - {{themecss}} - - - - -
-
- -
- This is not a simulator but just a resized view surrounded with an image to give an impression of - what the app might look like on a tablet. -
-
-
- - - - diff --git a/test/theme/index.html b/test/theme/index.html deleted file mode 100755 index e65839a..0000000 --- a/test/theme/index.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - Mendix - - - - {{themecss}} - - - - - - - - - - - -
- - - - - diff --git a/test/theme/native/custom-variables.js b/test/theme/native/custom-variables.js new file mode 100644 index 0000000..65a308a --- /dev/null +++ b/test/theme/native/custom-variables.js @@ -0,0 +1,583 @@ +import { Appearance, Platform } from "react-native"; +import { adjustFont, anyColorToRgbString, setContrastScale } from "../../themesource/atlas_core/native/api"; +import "./exclusion-variables"; +/* + +==> You can find a copy of the core variables below. (From styles/native/core/variables.js) +==> You can freely change any value in this file. +==> DO NOT change the core variable file (or any other file in core), as that makes updating Atlas a lot harder in the future. + +*/ +// == Global variables +// ## Variables to be used during styling +// -------------------------------------------------------------------------------------------------------------------// +// Brand Styles +export const brand = { + primary: "#264AE5", + success: "#3CB33D", + warning: "#ECA51C", + danger: "#E33F4E", + info: "#0086D9", + primaryLight: "#F3F5FF", + successLight: "#F1FCF1", + warningLight: "#FFF9E6", + dangerLight: "#FFEEF0", + infoLight: "#ECF9FF" +}; +// +// Dark Mode - Inherits OS theme if possible +export const darkMode = Appearance.getColorScheme() === "dark"; +// +// Background Colors +export const backgroundDefaults = { + primaryLight: "#FFF", + primaryDark: "#0A1325", + secondaryLight: "#F8F8F8", + secondaryDark: "#161F30" +}; +export const background = { + primary: darkMode ? backgroundDefaults.primaryDark : backgroundDefaults.primaryLight, + secondary: darkMode ? backgroundDefaults.secondaryDark : backgroundDefaults.secondaryLight, + brandPrimary: brand.primary, + brandSuccess: brand.success, + brandWarning: brand.warning, + brandDanger: brand.danger, + brandInfo: brand.info +}; +// +// Contrast (Gray) colors based on background.primary +export const contrast = { + highest: setContrastScale(0.95, background.primary), + higher: setContrastScale(0.8, background.primary), + high: setContrastScale(0.65, background.primary), + regular: setContrastScale(0.5, background.primary), + low: setContrastScale(0.35, background.primary), + lower: setContrastScale(0.2, background.primary), + lowest: setContrastScale(0.05, background.primary) +}; +// +// Border Style +export const border = { + color: darkMode ? "#3B4251" : "#CED0D3", + width: 1, + radiusSmall: 4, + radiusLarge: 8, + radiusLargest: 9999 +}; +// +// Font Styles +export const fontDefaults = { + colorTitleDark: "#0A1326", + colorTitleLight: "#FDFDFD", + colorParagraphDark: "#6C717E", + colorParagraphLight: "#E7E7E9", + colorDisabledDark: "#9DA1A8", + colorDisabledLight: "#9DA1A8" +}; +export const font = { + size: adjustFont(14), + sizeSmallest: adjustFont(10), + sizeSmall: adjustFont(12), + sizeLarge: adjustFont(16), + sizeLargest: adjustFont(18), + sizeH1: adjustFont(40), + sizeH2: adjustFont(34), + sizeH3: adjustFont(28), + sizeH4: adjustFont(24), + sizeH5: adjustFont(20), + sizeH6: adjustFont(16), + lineHeight: adjustFont(14) * 1.5, + lineHeightSmallest: adjustFont(10) * 1.5, + lineHeightSmall: adjustFont(12) * 1.5, + lineHeightLarge: adjustFont(16) * 1.5, + lineHeightLargest: adjustFont(18) * 1.5, + lineHeightH1: adjustFont(40) * 1.5, + lineHeightH2: adjustFont(34) * 1.5, + lineHeightH3: adjustFont(28) * 1.5, + lineHeightH4: adjustFont(24) * 1.5, + lineHeightH5: adjustFont(20) * 1.5, + lineHeightH6: adjustFont(16) * 1.5, + colorTitle: darkMode ? fontDefaults.colorTitleLight : fontDefaults.colorTitleDark, + colorParagraph: darkMode ? fontDefaults.colorParagraphLight : fontDefaults.colorParagraphDark, + colorDisabled: darkMode ? fontDefaults.colorDisabledLight : fontDefaults.colorDisabledDark, + weightLight: "100", + weightNormal: "normal", + weightSemiBold: "600", + weightBold: "bold", + family: Platform.select({ ios: "System", android: "normal" }) +}; +// +// Spacing +export const spacing = { + smallest: 2, + smaller: 4, + small: 8, + regular: 16, + large: 24, + larger: 32, + largest: 40 +}; +// +// Button Styles +export const button = { + // Start default styles + container: { + rippleColor: contrast.lowest, + borderRadius: border.radiusLarge, + minWidth: 48, + minHeight: 48, + paddingVertical: spacing.small, + paddingHorizontal: spacing.small + }, + containerDisabled: { + borderColor: border.color, + backgroundColor: border.color + }, + icon: { + size: font.sizeSmall + }, + iconDisabled: { + color: font.colorDisabled + }, + caption: { + fontSize: font.sizeSmall, + fontWeight: font.weightBold + }, + captionDisabled: { + color: font.colorDisabled + }, + // End default styles + header: { + color: contrast.highest, + borderColor: "transparent", + backgroundColor: "transparent", + fontSize: font.sizeSmall, + fontSizeIcon: font.sizeSmall, + paddingLeft: 0, + paddingRight: 10 + }, + primary: { + color: "#FFF", + borderColor: brand.primary, + backgroundColor: brand.primary + }, + secondary: { + color: brand.primary, + borderColor: brand.primary, + backgroundColor: "transparent", + inversedColor: "#FFF" + }, + success: { + color: "#FFF", + borderColor: brand.success, + backgroundColor: brand.success + }, + warning: { + color: "#FFF", + borderColor: brand.warning, + backgroundColor: brand.warning + }, + danger: { + color: "#FFF", + borderColor: brand.danger, + backgroundColor: brand.danger + } +}; +// +// Input Styles +export const input = { + label: { + numberOfLines: 1, + color: font.colorTitle, + fontSize: font.sizeSmall, + textAlign: "left" + }, + labelDisabled: { + color: font.colorTitle + }, + input: { + color: font.colorTitle, + borderColor: contrast.lower, + backgroundColor: background.primary, + selectionColor: contrast.lower, + placeholderTextColor: contrast.low, + fontSize: font.size, + lineHeight: font.lineHeight, + borderWidth: border.width, + borderRadius: border.radiusLarge, + minWidth: 48, + minHeight: 48, + paddingVertical: spacing.small, + paddingHorizontal: spacing.small + }, + inputContainer: { + underlayColor: `rgba(${anyColorToRgbString(contrast.low)},0.4)` + }, + inputDisabled: { + color: font.colorDisabled, + borderColor: border.color, + backgroundColor: background.secondary + }, + inputError: { + color: brand.danger, + borderColor: brand.danger, + placeholderTextColor: brand.danger, + backgroundColor: brand.dangerLight + }, + validationMessage: { + color: brand.danger, + fontSize: font.size + }, + // Only used for the DropDown & ReferenceSelector + valueContainer: { + rippleColor: contrast.lowest + }, + itemContainer: { + paddingVertical: 12, + paddingHorizontal: spacing.regular, + backgroundColor: background.primary + }, + item: { + color: font.colorTitle, + fontSize: font.size + }, + selectedItemContainer: { + borderWidth: border.width, + borderRadius: border.radiusLarge, + borderColor: brand.primary, + backgroundColor: "transparent" + }, + selectedItem: { + color: font.colorTitle, + fontSize: font.size + } +}; +export const image = { + image: { + small: 24, + medium: 40, + large: 56, + larger: 72 + }, + imageDisabled: { + opacity: 0.6 + }, + icon: 16 +}; +// +// Navigation Styles +export const navigation = { + statusBar: { + backgroundColor: background.primary, + barStyle: darkMode ? "light-content" : "dark-content" + }, + topBar: { + backgroundColor: brand.primary, + backButtonColor: "#FFF", + titleColor: "#FFF", + titleFontSize: font.sizeH6 + }, + bottomBar: { + color: contrast.high, + selectedTextColor: brand.primary, + selectedIconColor: brand.primary, + backgroundColor: background.primary, + fontSize: font.sizeSmall, + iconSize: font.sizeSmall + }, + progressOverlay: { + color: font.colorTitle, + activityIndicatorColor: font.colorTitle, + backgroundColor: "rgba(0, 0, 0, 0.5)", + containerBackgroundColor: background.secondary, + fontSize: font.size, + borderRadius: border.radiusSmall, + elevation: 1.5, + shadowColor: "#000", + shadowOpacity: 0.1, + shadowRadius: 10 // Only for iOS + } +}; +// +// Container Styles +export const container = { + containerDisabled: { + opacity: 0.6 + } +}; +// +// Accordion Styles +export const accordion = { + container: { + backgroundColor: background.primary, + borderColor: border.color + }, + groupHeader: { + container: { + paddingVertical: spacing.regular, + paddingHorizontal: spacing.regular + }, + heading: { + color: font.colorTitle + }, + icon: { + size: font.sizeLarge, + color: font.colorTitle + } + }, + groupContent: { + paddingTop: spacing.small, + paddingBottom: spacing.large, + paddingHorizontal: spacing.regular + } +}; +// +// Badge Styles +export const badge = { + fontWeight: font.weightNormal, + borderRadius: border.radiusLarge, + paddingVertical: spacing.smaller, + paddingHorizontal: spacing.small, + default: { + color: contrast.higher, + backgroundColor: contrast.lowest + }, + primary: { + color: brand.primary, + backgroundColor: brand.primaryLight + }, + success: { + color: brand.success, + backgroundColor: brand.successLight + }, + warning: { + color: brand.warning, + backgroundColor: brand.warningLight + }, + danger: { + color: brand.danger, + backgroundColor: brand.dangerLight + } +}; +// +// Tabcontainer Styles +export const tabContainer = { + tabBar: { + pressColor: contrast.lower, + backgroundColor: brand.primary + }, + tab: { + paddingVertical: 12 + }, + indicator: { + backgroundColor: fontDefaults.colorTitleLight, + height: Platform.select({ ios: 2, android: 2 }) + }, + label: { + color: fontDefaults.colorTitleLight, + fontSize: font.size, + fontWeight: font.weightSemiBold, + textTransform: "capitalize" + }, + activeLabel: { + color: fontDefaults.colorTitleLight, + fontSize: font.size, + fontWeight: font.weightSemiBold, + textTransform: "capitalize" + }, + badgeContainer: { + borderRadius: border.radiusLargest, + backgroundColor: badge.default.backgroundColor, + paddingVertical: spacing.smallest, + paddingHorizontal: spacing.small, + marginLeft: 8 + }, + badgeCaption: { + fontSize: font.size, + color: badge.default.color, + fontWeight: badge.fontWeight + } +}; +// +// ListView Styles +export const listView = { + listItemDisabled: { + opacity: 0.6 + }, + border: { + color: border.color, + width: border.width + } +}; +// +// Layoutgrid Styles +export const layoutGrid = { + gutterSize: 16 +}; +// +// +// Floating Action Button Styles +export const floatingActionButton = { + container: { + margin: 30 + }, + button: { + size: 50, + rippleColor: contrast.lowest, + borderColor: brand.primary, + backgroundColor: brand.primary + }, + buttonIcon: { + size: font.sizeLarge, + color: contrast.lowest + }, + secondaryButton: { + size: 30, + backgroundColor: background.secondary + }, + secondaryButtonIcon: { + size: font.sizeSmall, + color: contrast.high + }, + secondaryButtonCaption: { + color: contrast.high, + fontSize: font.sizeSmall + }, + secondaryButtonCaptionContainer: { + backgroundColor: background.primary + } +}; +// +// Intro Screen Styles +export const introScreen = { + fullscreenContainer: { + backgroundColor: background.primary + }, + popupContainer: { + paddingVertical: 150, + paddingHorizontal: 50, + backgroundColor: "rgba(0, 0, 0, 0.5)" + }, + pagination: { + text: { + color: font.colorTitle, + fontSize: font.size + }, + dotStyle: { + size: spacing.small, + backgroundColor: contrast.lower + }, + activeDotStyle: { + size: spacing.small, + backgroundColor: font.colorTitle + } + }, + button: { + icon: { + color: font.colorTitle, + size: button.icon.size + }, + caption: { + color: font.colorTitle, + fontSize: button.caption.fontSize, + fontWeight: font.weightBold, + textTransform: "uppercase", + paddingHorizontal: spacing.smallest + } + }, + buttonPaginationAbove: { + container: { + paddingVertical: spacing.regular, + backgroundColor: button.primary.backgroundColor + } + } +}; +// +// List View Swipe Styles +export const listViewSwipe = { + leftAction: { + panelSize: 160, + panelSizeSmall: 80, + panelSizeLarge: 240, + backgroundColor: background.primary + }, + rightAction: { + panelSize: 160, + panelSizeSmall: 80, + panelSizeLarge: 240, + backgroundColor: background.primary + } +}; +// +// Progress Bar Styles +export const progressBar = { + bar: { + height: 8, + heightSmall: 4, + heightLarge: 12, + backgroundColor: contrast.lowest + }, + fill: { + backgroundColor: brand.primary + } +}; +// +// Progress Circle Styles +export const progressCircle = { + circle: { + size: 64 + }, + fill: { + width: 4, + lineCapRounded: true, + backgroundColor: brand.primary + }, + text: { + color: contrast.regular, + fontSize: font.size, + fontWeight: font.weightSemiBold + } +}; +// +// Rating Styles +export const rating = { + containerDisabled: { + opacity: 0.5 + }, + icon: { + size: 24, + color: contrast.lower, + selectedColor: brand.warning + } +}; +// +// (Range)Slider styles +export const slider = { + track: { + height: 4, + backgroundColor: contrast.lowest + }, + trackDisabled: { + backgroundColor: contrast.lower, + opacity: 0.4 + }, + highlight: { + backgroundColor: brand.primary + }, + highlightDisabled: { + backgroundColor: brand.primary + }, + marker: { + size: 24, + borderColor: contrast.lowest, + backgroundColor: background.secondary + }, + markerActive: { + size: 32 + }, + markerDisabled: { + size: 24, + borderColor: contrast.lowest, + backgroundColor: background.secondary + } +}; diff --git a/test/theme/native/exclusion-variables.js b/test/theme/native/exclusion-variables.js new file mode 100644 index 0000000..e98959c --- /dev/null +++ b/test/theme/native/exclusion-variables.js @@ -0,0 +1,104 @@ +// == Variables to exclude files +// ## Reduce the amount of files imported from the Atlas_Core module +// -------------------------------------------------------------------------------------------------------------------// +// Accordion +export const excludeAccordion = false; +export const excludeAccordionHelpers = false; +// Activity Indicator +export const excludeActivityIndicator = false; +export const excludeActivityIndicatorHelpers = false; +// Animation +export const excludeAnimation = false; +// Background Image +export const excludeBackgroundImage = false; +// Badge +export const excludeBadge = false; +export const excludeBadgeHelpers = false; +// Bottom Sheet +export const excludeBottomSheet = false; +// Buttons +export const excludeButtons = false; +export const excludeButtonsHelpers = false; +// Carousel +export const excludeCarousel = false; +// CheckBox +export const excludeCheckBox = false; +// Color Picker +export const excludeColorPicker = false; +// Container +export const excludeContainer = false; +// Date Picker +export const excludeDatePicker = false; +// Drop Down +export const excludeDropDown = false; +// Feedback +export const excludeFeedback = false; +// Floating Action Button +export const excludeFAB = false; +export const excludeFABHelpers = false; +// Image +export const excludeImage = false; +export const excludeImageHelpers = false; +// Intro Screen +export const excludeIntroScreen = false; +export const excludeIntroScreenHelpers = false; +// Layout Grid +export const excludeLayoutGrid = false; +// Line Chart +export const excludeLineChart = false; +export const excludeLineChartHelpers = false; +// Bar Chart +export const excludeBarChart = false; +export const excludeBarChartHelpers = false; +// List View +export const excludeListView = false; +export const excludeListViewHelpers = false; +// List View Swipe +export const excludeListViewSwipe = false; +export const excludeListViewSwipeHelpers = false; +// Maps +export const excludeMaps = false; +export const excludeMapsHelpers = false; +// Page Title +export const excludePageTitle = false; +// Progress Bar +export const excludeProgressBar = false; +export const excludeProgressBarHelpers = false; +// Progress Circle +export const excludeProgressCircle = false; +export const excludeProgressCircleHelpers = false; +// Pop Up Menu +export const excludePopUpMenu = false; +// QR Code +export const excludeQRCode = false; +// Range Slider +export const excludeRangeSlider = false; +export const excludeRangeSliderHelpers = false; +// Rating +export const excludeRating = false; +// Reference Selector +export const excludeReferenceSelector = false; +// Safe Area View +export const excludeSafeAreaView = false; +// Slider +export const excludeSlider = false; +export const excludeSliderHelpers = false; +// Tab Container +export const excludeTabContainer = false; +export const excludeTabContainerHelpers = false; +// Text Area +export const excludeTextArea = false; +// Text Box +export const excludeTextBox = false; +export const excludeTextBoxHelpers = false; +// Toggle Buttons +export const excludeToggleButtons = false; +// Typography +export const excludeTypography = false; +export const excludeTypographyHelpers = false; +// VideoPlayer +export const excludeVideoPlayer = false; +// Web View +export const excludeWebView = false; +// Helper Classes +export const excludeHelpers = false; diff --git a/test/theme/native/main.js b/test/theme/native/main.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/test/theme/native/main.js @@ -0,0 +1 @@ +export {}; diff --git a/test/theme/package-lock.json b/test/theme/package-lock.json deleted file mode 100755 index c51fdd4..0000000 --- a/test/theme/package-lock.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "atlas-ui-framework", - "version": "2.5.3", - "lockfileVersion": 1 -} diff --git a/test/theme/package.json b/test/theme/package.json deleted file mode 100755 index d4b499c..0000000 --- a/test/theme/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "atlas-ui-framework", - "version": "2.5.5", - "description": "Mendix Atlas UI is the foundation of making beautiful apps with Mendix. For more information about the framework go to https://atlas.mendix.com.", - "main": "", - "scripts": { - "bump:patch": "node ./scripts/bump-patch.js", - "bump:minor": "node ./scripts/bump-minor.js", - "bump:major": "node ./scripts/bump-major.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mendix/Atlas-UI-Framework.git" - }, - "author": "Mendix", - "license": "MIT", - "bugs": { - "url": "https://github.com/mendix/Atlas-UI-Framework/issues" - }, - "homepage": "https://github.com/mendix/Atlas-UI-Framework#readme", - "devDependencies": {}, - "dependencies": {} -} \ No newline at end of file diff --git a/test/theme/resources/phone.png b/test/theme/resources/phone.png deleted file mode 100755 index 5146217..0000000 Binary files a/test/theme/resources/phone.png and /dev/null differ diff --git a/test/theme/resources/tablet.png b/test/theme/resources/tablet.png deleted file mode 100755 index a1aa0bf..0000000 Binary files a/test/theme/resources/tablet.png and /dev/null differ diff --git a/test/theme/scripts/bump-major.js b/test/theme/scripts/bump-major.js deleted file mode 100755 index 9350279..0000000 --- a/test/theme/scripts/bump-major.js +++ /dev/null @@ -1,12 +0,0 @@ -const { getVersionFilePaths, readVersionFiles } = require("./lib/readFile.js"); -const { writeVersionFiles } = require("./lib/writeFile.js"); - -(() => { - const paths = getVersionFilePaths(); - const files = readVersionFiles(paths); - const versionNumbers = files.pkg.version.split("."); - const majorNumber = Number(versionNumbers[1]) + 1; - const majorVersion = majorNumber + "." + 0 + "." + 0; - files.pkg.version = files.manifest.js.version = files.manifest.sass.version = majorVersion; - writeVersionFiles(files, paths); -})(); diff --git a/test/theme/scripts/bump-minor.js b/test/theme/scripts/bump-minor.js deleted file mode 100755 index 663fb0a..0000000 --- a/test/theme/scripts/bump-minor.js +++ /dev/null @@ -1,12 +0,0 @@ -const { getVersionFilePaths, readVersionFiles } = require("./lib/readFile.js"); -const { writeVersionFiles } = require("./lib/writeFile.js"); - -(() => { - const paths = getVersionFilePaths(); - const files = readVersionFiles(paths); - const versionNumbers = files.pkg.version.split("."); - const minorNumber = Number(versionNumbers[1]) + 1; - const minorVersion = versionNumbers[0] + "." + minorNumber + "." + 0; - files.pkg.version = files.manifest.js.version = files.manifest.sass.version = minorVersion; - writeVersionFiles(files, paths); -})(); diff --git a/test/theme/scripts/bump-patch.js b/test/theme/scripts/bump-patch.js deleted file mode 100755 index f198238..0000000 --- a/test/theme/scripts/bump-patch.js +++ /dev/null @@ -1,12 +0,0 @@ -const { getVersionFilePaths, readVersionFiles } = require("./lib/readFile.js"); -const { writeVersionFiles } = require("./lib/writeFile.js"); - -(() => { - const paths = getVersionFilePaths(); - const files = readVersionFiles(paths); - const versionNumbers = files.pkg.version.split("."); - const patchedNumber = Number(versionNumbers[2]) + 1; - const patchedVersion = versionNumbers[0] + "." + versionNumbers[1] + "." + patchedNumber; - files.pkg.version = files.manifest.js.version = files.manifest.sass.version = patchedVersion; - writeVersionFiles(files, paths); -})(); diff --git a/test/theme/scripts/lib/readFile.js b/test/theme/scripts/lib/readFile.js deleted file mode 100755 index 639c6c4..0000000 --- a/test/theme/scripts/lib/readFile.js +++ /dev/null @@ -1,18 +0,0 @@ -const path = require("path"); - -module.exports.getVersionFilePaths = () => ({ - pkg: path.join(process.cwd(), "package.json"), - manifest: { - js: path.join(process.cwd(), "styles", "native", "ts", "core", "manifest.json"), - sass: path.join(process.cwd(), "styles", "web", "sass", "core", "manifest.json"), - }, -}); - -module.exports.readVersionFiles = paths => ({ - pkg: require(paths.pkg), - manifest: { - js: require(paths.manifest.js), - sass: require(paths.manifest.sass), - }, -}); - diff --git a/test/theme/scripts/lib/writeFile.js b/test/theme/scripts/lib/writeFile.js deleted file mode 100755 index e647bf9..0000000 --- a/test/theme/scripts/lib/writeFile.js +++ /dev/null @@ -1,7 +0,0 @@ -const fs = require("fs"); - -module.exports.writeVersionFiles = (files, paths) => { - fs.writeFileSync(paths.pkg, JSON.stringify(files.pkg, null, 4)); - fs.writeFileSync(paths.manifest.js, JSON.stringify(files.manifest.js, null, 4)); - fs.writeFileSync(paths.manifest.sass, JSON.stringify(files.manifest.sass, null, 4)); -}; diff --git a/test/theme/settings-native.json b/test/theme/settings-native.json deleted file mode 100755 index 3ac7956..0000000 --- a/test/theme/settings-native.json +++ /dev/null @@ -1,1739 +0,0 @@ -{ - "designProperties": { - "Document": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - }, - { - "name": "Space evenly", - "class": "justifyContentSpaceEvenly" - } - ] - } - ], - "Widget": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterTopSmallest" - }, - { - "name": "Small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Large", - "class": "spacingOuterTopLarger" - }, - { - "name": "Largest", - "class": "spacingOuterTopLargest" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterBottomSmallest" - }, - { - "name": "Small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Large", - "class": "spacingOuterBottomLarger" - }, - { - "name": "Largest", - "class": "spacingOuterBottomLargest" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterLeftSmallest" - }, - { - "name": "Small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Large", - "class": "spacingOuterLeftLarger" - }, - { - "name": "Largest", - "class": "spacingOuterLeftLargest" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Smallest", - "class": "spacingOuterRightSmallest" - }, - { - "name": "Small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Large", - "class": "spacingOuterRightLarger" - }, - { - "name": "Largest", - "class": "spacingOuterRightLargest" - } - ] - } - ], - "DivContainer": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterRightLarger" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Change the size of the widget relative to its sibling(s).", - "options": [ - { - "name": "Maximum space", - "class": "flexMain" - }, - { - "name": "Minimum space", - "class": "flexItem" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - }, - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Baseline", - "class": "alignSelfBaseline" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - }, - { - "name": "Space evenly", - "class": "justifyContentSpaceEvenly" - } - ] - } - ], - "ScrollContainer": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterRightLarger" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Change the size of the widget relative to its sibling(s).", - "options": [ - { - "name": "Maximum space", - "class": "flexMain" - }, - { - "name": "Minimum space", - "class": "flexItem" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - }, - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Baseline", - "class": "alignSelfBaseline" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - } - ] - } - ], - "ActionButton": [ - { - "name": "Button style", - "type": "Dropdown", - "description": "Style of the button", - "options": [ - { - "name": "Secondary", - "class": "btnSecondary" - }, - { - "name": "Success", - "class": "btnSuccess" - }, - { - "name": "Warning", - "class": "btnWarning" - }, - { - "name": "Danger", - "class": "btnDanger" - }, - { - "name": "Inversed", - "class": "btnPrimaryInversed" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - }, - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Baseline", - "class": "alignSelfBaseline" - } - ] - } - ], - "Image": [ - { - "name": "Avatar", - "type": "Toggle", - "description": "Create an avatar image.", - "class": "avatar" - } - ], - "DynamicImage": [ - { - "name": "Avatar", - "type": "Toggle", - "description": "Create an avatar image.", - "class": "avatar" - } - ], - "DynamicText": [ - { - "name": "Color", - "type": "Dropdown", - "description": "Change the color of text.", - "options": [ - { - "name": "Brand primary", - "class": "textPrimary" - }, - { - "name": "Brand success", - "class": "textSuccess" - }, - { - "name": "Brand warning", - "class": "textWarning" - }, - { - "name": "Brand danger", - "class": "textDanger" - }, - { - "name": "White", - "class": "textWhite" - }, - { - "name": "Contrast lowest", - "class": "textContrastLowest" - }, - { - "name": "Contrast lower", - "class": "textContrastLower" - }, - { - "name": "Contrast low", - "class": "textContrastLow" - }, - { - "name": "Contrast default", - "class": "textContrastDefault" - }, - { - "name": "Contrast high", - "class": "textContrastHigh" - }, - { - "name": "Contrast higher", - "class": "textContrastHigher" - }, - { - "name": "Contrast highest", - "class": "textContrastHighest" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Make the text smaller or larger.", - "options": [ - { - "name": "Small", - "class": "textSmall" - }, - { - "name": "Large", - "class": "textLarge" - } - ] - }, - { - "name": "Weight", - "type": "Dropdown", - "description": "Emphasize the text with a heavier or lighter font weight", - "options": [ - { - "name": "Light", - "class": "textLight" - }, - { - "name": "Default", - "class": "textNormal" - }, - { - "name": "Semibold", - "class": "textSemiBold" - }, - { - "name": "Bold", - "class": "textBold" - } - ] - }, - { - "name": "Alignment", - "type": "Dropdown", - "description": "Align the text.", - "options": [ - { - "name": "Left", - "class": "textLeft" - }, - { - "name": "Center", - "class": "textCenter" - }, - { - "name": "Right", - "class": "textRight" - } - ] - } - ], - "ListView": [ - { - "name": "List item divider", - "type": "Dropdown", - "description": "Give each list item a border.", - "options": [ - { - "name": "Vertical", - "class": "listItemBorderBottom" - }, - { - "name": "Horizontal", - "class": "listItemBorderRight" - } - ] - } - ], - "TabContainer": [ - { - "name": "Tab bar scroll", - "type": "Toggle", - "description": "Enable horizontal scroll for the tab bar.", - "class": "tabContainerScroll" - } - ], - "TextBox": [ - { - "name": "Capitalize", - "type": "Dropdown", - "description": "Change the capitalization of the input.", - "options": [ - { - "name": "None", - "class": "textInputCapitalizeNone" - }, - { - "name": "Characters", - "class": "textInputCapitalizeCharacters" - }, - { - "name": "Words", - "class": "textInputCapitalizeWords" - }, - { - "name": "Sentences", - "class": "textInputCapitalizeSentences" - } - ] - } - ], - "TextArea": [ - { - "name": "Capitalize", - "type": "Dropdown", - "description": "Change the capitalization of the input.", - "options": [ - { - "name": "None", - "class": "textInputCapitalizeNone" - }, - { - "name": "Characters", - "class": "textInputCapitalizeCharacters" - }, - { - "name": "Words", - "class": "textInputCapitalizeWords" - }, - { - "name": "Sentences", - "class": "textInputCapitalizeSentences" - } - ] - } - ], - "com.mendix.widget.native.activityindicator.ActivityIndicator": [ - { - "name": "Activity indicator style", - "type": "Dropdown", - "description": "Style of the Activity indicator.", - "options": [ - { - "name": "Success", - "class": "activityIndicatorSuccess" - }, - { - "name": "Warning", - "class": "activityIndicatorWarning" - }, - { - "name": "Danger", - "class": "activityIndicatorDanger" - } - ] - } - ], - "com.mendix.widget.native.animation.Animation": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterTopSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterTopMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterBottomSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterBottomMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterLeftSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterLeftMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - }, - { - "name": "Outer small", - "class": "spacingOuterRightSmaller" - }, - { - "name": "Outer medium", - "class": "spacingOuterRightMedium" - }, - { - "name": "Outer large", - "class": "spacingOuterRightLarger" - } - ] - }, - { - "name": "Size", - "type": "Dropdown", - "description": "Change the size of the widget relative to its sibling(s).", - "options": [ - { - "name": "Maximum space", - "class": "flexMain" - }, - { - "name": "Minimum space", - "class": "flexItem" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Align", - "type": "Dropdown", - "description": "Aligns the element. This overrides 'Align children' of the parent.", - "options": [ - { - "name": "Stretch", - "class": "alignSelfStretch" - }, - { - "name": "Start", - "class": "alignSelfStart" - }, - { - "name": "Center", - "class": "alignSelfCenter" - }, - { - "name": "End", - "class": "alignSelfEnd" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - } - ] - }, - { - "name": "Justify children", - "type": "Dropdown", - "description": "Justify children in the active direction.", - "options": [ - { - "name": "Center", - "class": "justifyChildrenCenter" - }, - { - "name": "End", - "class": "justifyChildrenEnd" - }, - { - "name": "Space between", - "class": "justifyChildrenSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyChildrenSpaceAround" - } - ] - } - ], - "com.mendix.widget.native.badge.Badge": [ - { - "name": "Badge style", - "type": "Dropdown", - "description": "Style of the Badge.", - "options": [ - { - "name": "Primary", - "class": "badgePrimary" - }, - { - "name": "Success", - "class": "badgeSuccess" - }, - { - "name": "Warning", - "class": "badgeWarning" - }, - { - "name": "Danger", - "class": "badgeDanger" - } - ] - } - ], - "com.mendix.widget.native.floatingactionbutton.FloatingActionButton": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Style of the Floating Action Button.", - "options": [ - { - "name": "Success", - "class": "floatingActionButtonSuccess" - }, - { - "name": "Warning", - "class": "floatingActionButtonWarning" - }, - { - "name": "Danger", - "class": "floatingActionButtonDanger" - } - ] - } - ], - "com.mendix.widget.native.listviewswipe.ListViewSwipe": [ - { - "name": "Panel size", - "type": "Dropdown", - "description": "Size of the left and right panel.", - "options": [ - { - "name": "Small", - "class": "listViewSwipeSmallPanels" - }, - { - "name": "Large", - "class": "listViewSwipeLargePanels" - } - ] - } - ], - "com.mendix.widget.native.maps.Maps": [ - { - "name": "Maps size", - "type": "Dropdown", - "description": "Size of the maps.", - "options": [ - { - "name": "Square", - "class": "mapsSquare" - }, - { - "name": "Maximum space", - "class": "mapsMaxSpace" - } - ] - }, - { - "name": "Maps marker style", - "type": "Dropdown", - "description": "Style of the marker.", - "options": [ - { - "name": "Success", - "class": "mapsSuccess" - }, - { - "name": "Warning", - "class": "mapsWarning" - }, - { - "name": "Danger", - "class": "mapsDanger" - } - ] - } - ], - "com.mendix.widget.native.progressbar.ProgressBar": [ - { - "name": "Progress bar style", - "type": "Dropdown", - "description": "Style of the progress bar.", - "options": [ - { - "name": "Success", - "class": "progressBarSuccess" - }, - { - "name": "Warning", - "class": "progressBarWarning" - }, - { - "name": "Danger", - "class": "progressBarDanger" - } - ] - }, - { - "name": "Progress bar size", - "type": "Dropdown", - "description": "Size of the progress bar.", - "options": [ - { - "name": "Small", - "class": "progressBarSmall" - }, - { - "name": "Large", - "class": "progressBarLarge" - } - ] - } - ], - "com.mendix.widget.native.progresscircle.ProgressCircle": [ - { - "name": "Progress circle style", - "type": "Dropdown", - "description": "Style of the progress circle.", - "options": [ - { - "name": "Success", - "class": "progressCircleSuccess" - }, - { - "name": "Warning", - "class": "progressCircleWarning" - }, - { - "name": "Danger", - "class": "progressCircleDanger" - } - ] - } - ], - "com.mendix.widget.native.rangeslider.RangeSlider": [ - { - "name": "Range Slider style", - "type": "Dropdown", - "description": "Style of the range slider.", - "options": [ - { - "name": "Success", - "class": "rangeSliderSuccess" - }, - { - "name": "Warning", - "class": "rangeSliderWarning" - }, - { - "name": "Danger", - "class": "rangeSliderDanger" - } - ] - } - ], - "com.mendix.widget.native.safeareaview.SafeAreaView": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerTopSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerTopMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerTopLarger" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerBottomSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerBottomMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerBottomLarger" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerLeftSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerLeftMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerLeftLarger" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "Inner small", - "class": "spacingInnerRightSmaller" - }, - { - "name": "Inner medium", - "class": "spacingInnerRightMedium" - }, - { - "name": "Inner large", - "class": "spacingInnerRightLarger" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Primary", - "class": "backgroundPrimary" - }, - { - "name": "Secondary", - "class": "backgroundSecondary" - }, - { - "name": "Brand Primary", - "class": "backgroundBrandPrimary" - }, - { - "name": "Brand Success", - "class": "backgroundBrandSuccess" - }, - { - "name": "Brand Warning", - "class": "backgroundBrandWarning" - }, - { - "name": "Brand Danger", - "class": "backgroundBrandDanger" - } - ] - }, - { - "name": "Render children horizontal", - "type": "Toggle", - "description": "Determines the direction in which children are rendered.", - "class": "flexRow" - }, - { - "name": "Wrap children", - "type": "Toggle", - "description": "Determines if children can flow into multiple lines if they hit the end of the container.", - "class": "flexWrap" - }, - { - "name": "Align children", - "type": "Dropdown", - "description": "Align children in the opposite direction.", - "options": [ - { - "name": "Start", - "class": "alignChildrenStart" - }, - { - "name": "Center", - "class": "alignChildrenCenter" - }, - { - "name": "End", - "class": "alignChildrenEnd" - }, - { - "name": "Stretch", - "class": "alignChildrenStretch" - }, - { - "name": "Baseline", - "class": "alignChildrenBaseline" - } - ] - }, - { - "name": "Justify content", - "type": "Dropdown", - "description": "Justify content in the active direction.", - "options": [ - { - "name": "Start", - "class": "justifyContentStart" - }, - { - "name": "Center", - "class": "justifyContentCenter" - }, - { - "name": "End", - "class": "justifyContentEnd" - }, - { - "name": "Space between", - "class": "justifyContentSpaceBetween" - }, - { - "name": "Space around", - "class": "justifyContentSpaceAround" - }, - { - "name": "Space evenly", - "class": "justifyContentSpaceEvenly" - } - ] - } - ], - "com.mendix.widget.native.slider.Slider": [ - { - "name": "Slider style", - "type": "Dropdown", - "description": "Style of the slider.", - "options": [ - { - "name": "Success", - "class": "sliderSuccess" - }, - { - "name": "Warning", - "class": "sliderWarning" - }, - { - "name": "Danger", - "class": "sliderDanger" - } - ] - } - ] - } -} diff --git a/test/theme/settings.json b/test/theme/settings.json deleted file mode 100755 index d969353..0000000 --- a/test/theme/settings.json +++ /dev/null @@ -1,753 +0,0 @@ -{ - "pageTemplates": "WebModeler", - "cssFiles": [ - "styles/web/css/main.css" - ], - "designProperties": { - "Widget": [ - { - "name": "Spacing top", - "type": "Dropdown", - "description": "The spacing above this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-top-none" - }, - { - "name": "Small", - "class": "spacing-outer-top" - }, - { - "name": "Medium", - "class": "spacing-outer-top-medium" - }, - { - "name": "Large", - "class": "spacing-outer-top-large" - } - ] - }, - { - "name": "Spacing bottom", - "type": "Dropdown", - "description": "The spacing below this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-bottom-none" - }, - { - "name": "Small", - "class": "spacing-outer-bottom" - }, - { - "name": "Medium", - "class": "spacing-outer-bottom-medium" - }, - { - "name": "Large", - "class": "spacing-outer-bottom-large" - } - ] - }, - { - "name": "Spacing left", - "type": "Dropdown", - "description": "The spacing to the left of this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-left-none" - }, - { - "name": "Small", - "class": "spacing-outer-left" - }, - { - "name": "Medium", - "class": "spacing-outer-left-medium" - }, - { - "name": "Large", - "class": "spacing-outer-left-large" - } - ] - }, - { - "name": "Spacing right", - "type": "Dropdown", - "description": "The spacing to the right of this element.", - "options": [ - { - "name": "None", - "class": "spacing-outer-right-none" - }, - { - "name": "Small", - "class": "spacing-outer-right" - }, - { - "name": "Medium", - "class": "spacing-outer-right-medium" - }, - { - "name": "Large", - "class": "spacing-outer-right-large" - } - ] - }, - { - "name": "Align self", - "oldNames": [ - "Align Self" - ], - "type": "Dropdown", - "description": "Float the element to the left or to the right.", - "options": [ - { - "name": "Left", - "class": "pull-left" - }, - { - "name": "Right", - "class": "pull-right" - } - ] - }, - { - "name": "Hide on phone", - "oldNames": [ - "Hide On Phone" - ], - "type": "Toggle", - "description": "Hide element on phone.", - "class": "hide-phone" - }, - { - "name": "Hide on tablet", - "oldNames": [ - "Hide On Tablet" - ], - "type": "Toggle", - "description": "Hide element on tablet.", - "class": "hide-tablet" - }, - { - "name": "Hide on desktop", - "oldNames": [ - "Hide On Desktop" - ], - "type": "Toggle", - "description": "Hide element on desktop.", - "class": "hide-desktop" - } - ], - "DivContainer": [ - { - "name": "Align content", - "type": "Dropdown", - "description": "Align content of this element left, right or center it. Align elements inside the container as a row or as a column.", - "options": [ - { - "name": "Left align as a row", - "oldNames": [ - "Left align as row" - ], - "class": "row-left" - }, - { - "name": "Center align as a row", - "oldNames": [ - "Center align as row" - ], - "class": "row-center" - }, - { - "name": "Right align as a row", - "oldNames": [ - "Right align as row" - ], - "class": "row-right" - }, - { - "name": "Left align as a column", - "oldNames": [ - "Left align as column" - ], - "class": "col-left" - }, - { - "name": "Center align as a column", - "oldNames": [ - "Center align as column" - ], - "class": "col-center" - }, - { - "name": "Right align as a column", - "oldNames": [ - "Right align as column" - ], - "class": "col-right" - } - ] - }, - { - "name": "Background color", - "type": "Dropdown", - "description": "Change the background color of the container.", - "options": [ - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "background-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "background-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "background-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "background-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "background-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "background-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "background-danger" - }, - { - "name": "Background Default", - "class": "background-main" - }, - { - "name": "Background Dashboard", - "class": "background-secondary" - } - ] - } - ], - "Button": [ - { - "name": "Size", - "type": "Dropdown", - "description": "Size of the buttons", - "options": [ - { - "name": "Small", - "class": "btn-sm" - }, - { - "name": "Large", - "class": "btn-lg" - } - ] - }, - { - "name": "Full width", - "type": "Toggle", - "description": "Extend the button to the full width of the container it is placed in.", - "class": "btn-block" - }, - { - "name": "Border", - "oldNames": [ - "Bordered" - ], - "type": "Toggle", - "description": "Style the button with a transparent background, a colored border, and colored text.", - "class": "btn-bordered" - }, - { - "name": "Align icon", - "type": "Dropdown", - "description": "Place the icon to the left or on top of the button.", - "options": [ - { - "name": "Right", - "class": "btn-icon-right" - }, - { - "name": "Top", - "class": "btn-icon-top" - } - ] - } - ], - "ListView": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Change the appearance of rows in the list view.", - "options": [ - { - "name": "Striped", - "class": "listview-striped" - }, - { - "name": "Bordered", - "class": "listview-bordered" - }, - { - "name": "Lined", - "class": "listview-lined" - }, - { - "name": "No Styling", - "class": "listview-stylingless" - } - ] - }, - { - "name": "Hover style", - "type": "Toggle", - "description": "Highlight a row when hovering over it. Only useful when the row is clickable.", - "class": "listview-hover" - }, - { - "name": "Row Size", - "type": "Dropdown", - "description": "Change the row spacing of the list view.", - "options": [ - { - "name": "Small", - "class": "listview-sm" - }, - { - "name": "Large", - "class": "listview-lg" - } - ] - } - ], - "DataGrid": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose one of the following styles to change the appearance of the data grid.", - "options": [ - { - "name": "Striped", - "class": "datagrid-striped" - }, - { - "name": "Bordered", - "class": "datagrid-bordered" - }, - { - "name": "Lined", - "class": "datagrid-lined" - } - ] - }, - { - "name": "Hover style", - "type": "Toggle", - "description": "Enable data grid hover to make the rows hoverable.", - "class": "datagrid-hover" - }, - { - "name": "Row size", - "type": "Dropdown", - "description": "Increase or decrease the row spacing of the data grid row.", - "options": [ - { - "name": "Small", - "class": "datagrid-sm" - }, - { - "name": "Large", - "class": "datagrid-lg" - } - ] - } - ], - "TemplateGrid": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose one of the following styles to change the appearance of the template grid.", - "options": [ - { - "name": "Striped", - "class": "templategrid-striped" - }, - { - "name": "Bordered", - "class": "templategrid-bordered" - }, - { - "name": "Lined", - "class": "templategrid-lined" - }, - { - "name": "No styling", - "class": "templategrid-stylingless" - } - ] - }, - { - "name": "Hover style", - "type": "Toggle", - "description": "Enable template grid hover to make the rows hoverable.", - "class": "templategrid-hover" - } - ], - "GroupBox": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose one of the following styles to change the appearance of the groupbox.", - "options": [ - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "groupbox-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "groupbox-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "groupbox-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "groupbox-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "groupbox-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "groupbox-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "groupbox-danger" - }, - { - "name": "Transparent", - "class": "groupbox-transparent" - } - ] - }, - { - "name": "Callout style", - "type": "Toggle", - "description": "Enable the groupbox callout functionality to highlight the importance of the groupbox.", - "class": "groupbox-callout" - } - ], - "StaticImageViewer": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose the style of your image.", - "options": [ - { - "name": "Rounded", - "class": "img-rounded" - }, - { - "name": "Thumbnail", - "class": "img-thumbnail" - }, - { - "name": "Circle", - "class": "img-circle" - } - ] - }, - { - "name": "Center", - "type": "Toggle", - "description": "Align the image in the center of an element.", - "class": "img-center" - } - ], - "DynamicImageViewer": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Choose the style of your image.", - "options": [ - { - "name": "Rounded", - "class": "img-rounded" - }, - { - "name": "Thumbnail", - "class": "img-thumbnail" - }, - { - "name": "Circle", - "class": "img-circle" - } - ] - }, - { - "name": "Center", - "type": "Toggle", - "description": "Align the image in the center of an element.", - "class": "img-center" - } - ], - "Label": [ - { - "name": "Style", - "type": "Dropdown", - "description": "Change the appearance of a label.", - "options": [ - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "label-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "label-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "label-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "label-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "label-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "label-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "label-danger" - } - ] - } - ], - "DynamicText": [ - { - "name": "Font Weight", - "oldNames": [ - "Weight" - ], - "type": "Dropdown", - "description": "Emphasize the text with a heavier or lighter font weight", - "options": [ - { - "name": "Light", - "class": "text-light" - }, - { - "name": "Normal", - "class": "text-normal" - }, - { - "name": "Semibold", - "class": "text-semibold" - }, - { - "name": "Bold", - "class": "text-bold" - } - ] - }, - { - "name": "Color", - "type": "Dropdown", - "description": "Change the color of text.", - "options": [ - { - "name": "Header color", - "class": "text-header" - }, - { - "name": "Detail color", - "class": "text-detail" - }, - { - "name": "Brand Default", - "oldNames": [ - "Default" - ], - "class": "text-default" - }, - { - "name": "Brand Primary", - "oldNames": [ - "Primary" - ], - "class": "text-primary" - }, - { - "name": "Brand Inverse", - "oldNames": [ - "Inverse" - ], - "class": "text-inverse" - }, - { - "name": "Brand Info", - "oldNames": [ - "Info" - ], - "class": "text-info" - }, - { - "name": "Brand Success", - "oldNames": [ - "Success" - ], - "class": "text-success" - }, - { - "name": "Brand Warning", - "oldNames": [ - "Warning" - ], - "class": "text-warning" - }, - { - "name": "Brand Danger", - "oldNames": [ - "Danger" - ], - "class": "text-danger" - } - ] - }, - { - "name": "Alignment", - "type": "Dropdown", - "description": "Align the text.", - "options": [ - { - "name": "Left", - "class": "text-left d-block" - }, - { - "name": "Center", - "class": "text-center d-block" - }, - { - "name": "Right", - "class": "text-right d-block" - } - ] - }, - { - "name": "Transform", - "type": "Dropdown", - "description": "Change the letter case of the text.", - "options": [ - { - "name": "Lowercase", - "class": "text-lowercase" - }, - { - "name": "Uppercase", - "class": "text-uppercase" - }, - { - "name": "Capitalize", - "class": "text-capitalize" - } - ] - }, - { - "name": "Wrap options", - "type": "Dropdown", - "description": "Break long words and sentences into multiple lines.", - "options": [ - { - "name": "Wrap", - "class": "text-break" - }, - { - "name": "No Wrap", - "class": "text-nowrap" - } - ] - } - ] - } -} diff --git a/test/theme/styles.js b/test/theme/styles.js deleted file mode 100755 index fcd5bc2..0000000 --- a/test/theme/styles.js +++ /dev/null @@ -1,12 +0,0 @@ -import * as custom from "./styles/native/js/app/custom"; -import mergeobjects from "./styles/native/js/core/helpers/_functions/mergeobjects"; -import * as main from "./styles/native/js/main"; - -Object.keys(custom).forEach(key => { - if (main[key]) { - Object.assign(main[key], mergeobjects(main[key], custom[key])); - delete custom[key]; - } -}); - -module.exports = { ...main, ...custom }; diff --git a/test/theme/styles/native/js/app/custom-variables.js b/test/theme/styles/native/js/app/custom-variables.js deleted file mode 100755 index 329ab57..0000000 --- a/test/theme/styles/native/js/app/custom-variables.js +++ /dev/null @@ -1,257 +0,0 @@ -import { NativeModules, Platform } from "react-native"; -import adjustFont from "../core/helpers/_functions/adjustfont"; -import { anyColorToRgbString, setColorBasedOnBackground, setContrastScale, } from "../core/helpers/_functions/convertcolors"; -/* - -==> You can find a copy of the core variables below. (From styles/native/core/variables.js) -==> You can freely change any value in this file. -==> DO NOT change the core variable file (or any other file in core), as that makes updating Atlas a lot harder in the future. - -*/ -//== Global variables -//## Variables to be used during styling -//-------------------------------------------------------------------------------------------------------------------// -// Brand Style -export const brand = { - primary: "#0595DB", - success: "#76CA02", - warning: "#f99b1d", - danger: "#ed1c24", - primaryLight: `rgba(${anyColorToRgbString("#0595DB")}, 0.14)`, - successLight: `rgba(${anyColorToRgbString("#76CA02")}, 0.14)`, - warningLight: `rgba(${anyColorToRgbString("#f99b1d")}, 0.14)`, - dangerLight: `rgba(${anyColorToRgbString("#ed1c24")}, 0.14)`, -}; -// -// Dark Mode - Inherits OS theme if possible -export const darkMode = NativeModules && NativeModules.RNDarkMode && NativeModules.RNDarkMode.initialMode - ? NativeModules.RNDarkMode.initialMode === "dark" - : false; -// -// Background Colors -const backgroundColor = darkMode ? "#000" : "#FFF"; -const backgroundSecondaryContrast = darkMode ? 0.11 : 0.03; -// -export const background = { - primary: backgroundColor, - secondary: setContrastScale(backgroundSecondaryContrast, backgroundColor), - gray: "#c6c6cc", - brandPrimary: brand.primary, - brandSuccess: brand.success, - brandWarning: brand.warning, - brandDanger: brand.danger, -}; -// -// Contrast (Gray) colors based on background.primary -export const contrast = { - highest: setContrastScale(0.95, background.primary), - higher: setContrastScale(0.8, background.primary), - high: setContrastScale(0.65, background.primary), - regular: setContrastScale(0.5, background.primary), - low: setContrastScale(0.35, background.primary), - lower: setContrastScale(0.2, background.primary), - lowest: setContrastScale(0.05, background.primary), -}; -// -// Border Style -export const border = { - color: setContrastScale(0.17, background.primary), - width: 1, - radius: 5, -}; -// -// Font Styles -export const font = { - size: adjustFont(14), - sizeSmall: adjustFont(12), - sizeLarge: adjustFont(18), - sizeH1: adjustFont(31), - sizeH2: adjustFont(26), - sizeH3: adjustFont(24), - sizeH4: adjustFont(18), - sizeH5: adjustFont(14), - sizeH6: adjustFont(12), - color: setColorBasedOnBackground(background.primary), - weightLight: "100", - weightNormal: "normal", - weightSemiBold: "600", - weightBold: "bold", - family: Platform.select({ ios: "System", android: "normal" }), -}; -// -// Spacing -export const spacing = { - smallest: 5, - smaller: 10, - small: 15, - regular: 20, - large: 25, - larger: 30, - largest: 40, -}; -// -// Button Styles -export const button = { - fontSize: font.sizeSmall, - fontSizeLarge: font.size, - fontWeight: font.weightBold, - fontSizeIcon: font.sizeSmall, - fontSizeIconLarge: font.size, - borderRadius: border.radius, - paddingVertical: spacing.smaller, - paddingHorizontal: spacing.regular, - header: { - color: contrast.highest, - borderColor: "transparent", - backgroundColor: "transparent", - fontSize: font.sizeSmall, - fontSizeIcon: font.sizeSmall, - paddingLeft: 0, - paddingRight: 10, - }, - primary: { - color: "#FFF", - borderColor: brand.primary, - backgroundColor: brand.primary, - }, - secondary: { - color: brand.primary, - borderColor: brand.primary, - backgroundColor: "transparent", - inversedColor: "#FFF", - }, - success: { - color: "#FFF", - borderColor: brand.success, - backgroundColor: brand.success, - }, - warning: { - color: "#FFF", - borderColor: brand.warning, - backgroundColor: brand.warning, - }, - danger: { - color: "#FFF", - borderColor: brand.danger, - backgroundColor: brand.danger, - }, -}; -// -// Input Styles -export const input = { - // Colors - color: font.color, - errorColor: brand.danger, - labelColor: font.color, - borderColor: contrast.lower, - backgroundColor: background.primary, - disabledBackgroundColor: contrast.lowest, - selectionColor: contrast.lower, - placeholderTextColor: contrast.regular, - underlineColorAndroid: "transparent", - // Sizes - fontSize: font.size, - fontFamily: font.family, - borderWidth: border.width, - borderRadius: border.radius, - // Alignment - textAlign: "left", - paddingHorizontal: spacing.smaller, - paddingVertical: spacing.small, -}; -// -// Navigation Styles -export const navigation = { - statusBar: { - backgroundColor: background.primary, - barStyle: darkMode ? "light-content" : "dark-content", - }, - topBar: { - backgroundColor: background.primary, - backButtonColor: contrast.highest, - titleColor: contrast.highest, - titleFontSize: Platform.select({ android: font.sizeH4, ios: font.sizeH5 }), - }, - bottomBar: { - color: contrast.high, - selectedTextColor: contrast.high, - selectedIconColor: brand.primary, - backgroundColor: background.primary, - fontSize: font.sizeSmall, - iconSize: font.sizeSmall, - }, - progressOverlay: { - color: font.color, - activityIndicatorColor: font.color, - backgroundColor: `rgba(0, 0, 0, 0.5)`, - containerBackgroundColor: background.secondary, - shadowColor: "#000", - fontSize: font.size, - }, -}; -// -// Tabcontainer Styles -export const tabContainer = { - tabBar: { - pressColor: contrast.lower, - backgroundColor: background.primary, - }, - indicator: { - backgroundColor: brand.primary, - height: Platform.select({ ios: 2, android: 2 }), - }, - label: { - color: contrast.highest, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, - activeLabel: { - color: brand.primary, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, -}; -// -// ListView Styles -export const listView = { - border: { - color: border.color, - width: border.width, - }, -}; -// -// Layoutgrid Styles -export const layoutGrid = { - gutterSize: 15, -}; -// -// -//== Pluggable Widgets -//-------------------------------------------------------------------------------------------------------------------// -// Badge Styles -export const badge = { - fontWeight: font.weightBold, - borderRadius: 30, - paddingVertical: 3, - paddingHorizontal: spacing.smaller, - default: { - color: contrast.higher, - backgroundColor: contrast.lower, - }, - primary: { - color: brand.primary, - backgroundColor: brand.primaryLight, - }, - success: { - color: brand.success, - backgroundColor: brand.successLight, - }, - warning: { - color: brand.warning, - backgroundColor: brand.warningLight, - }, - danger: { - color: brand.danger, - backgroundColor: brand.dangerLight, - }, -}; diff --git a/test/theme/styles/native/js/core/helpers/_functions/shadeblendconvert.js b/test/theme/styles/native/js/core/helpers/_functions/shadeblendconvert.js deleted file mode 100755 index aeb99be..0000000 --- a/test/theme/styles/native/js/core/helpers/_functions/shadeblendconvert.js +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Blend two colors or add a shade to color - * Colors can be: - * HEX => (#FFFFFF / #FFF) - * RGB => rgb(255,255,255) - * RGBA => rgba(255,255,255, 0.8) - * - * Usage: - * shade => shadeBlendConvert(-0.5, "#FFF") // Makes #FFF 50% darker - * shade => shadeBlendConvert(0.5, "#000") // Makes #000 50% lighter - * shade => shadeBlendConvert(0.5, "#000", "c") // Makes #000 50% lighter and converts HEX to RGB - * blend => shadeBlendConvert(0.2, "rgb(0,0,0)", "rgb(0,200,0)") // rgb(0,0,0) + rgb(0,200,0) + 20% Blend will become rgb(0,40,0) - * blend => shadeBlendConvert(-0.2, "rgb(0,0,0)", "rgb(0,200,0)") // rgb(0,0,0) + rgb(0,200,0) + -20% Blend will become rgb(0,160,0) - * blend => shadeBlendConvert(0.75, "rgb(200,60,20)", "#67DAF0") // rgb(200,60,20) + #67DAF0 + 75% Blend will become #7fb3b9 - * - * - * @param {number} c Amount of change. Value between -1 and 1 - * @param {string} fromValue HEX / RGB / RGBA Color - * @param {string} toValue HEX / RGB / RGBA Color to blend with. If (to === 'c') return value will be RGB Color - * - * @return {string} Returns HEX color or RGB color if parameter to === 'c' - * - */ -export function shadeBlendConvert(c, fromValue, toValue = undefined) { - if (typeof c != "number" || - c < -1 || - c > 1 || - typeof fromValue != "string" || - (fromValue[0] != "r" && fromValue[0] != "#") || - (toValue && typeof toValue != "string")) - return "red"; //ErrorCheck - const sbcRip = (value) => { - const l = value.length, RGB = []; - if (l > 9) { - const d = value.split(","); - if (d.length < 3 || d.length > 4) - return null; //ErrorCheck - (RGB[0] = i(d[0].split("(")[1])), - (RGB[1] = i(d[1])), - (RGB[2] = i(d[2])), - (RGB[3] = d[3] ? parseFloat(d[3]) : -1); - } - else { - let hex = ""; - if (l == 8 || l == 6 || l < 4) - return null; //ErrorCheck - if (l == 4 || l == 5) - hex = "#" + value[1] + value[1] + value[2] + value[2] + value[3] + value[3] + (l > 4 ? value[4] + "" + value[4] : ""); //3 or 4 digit - let d = i(hex.slice(1), 16); - RGB[0] = (d >> 16) & 255; - RGB[1] = (d >> 8) & 255; - RGB[2] = d & 255; - RGB[3] = -1; - if (l == 9 || l == 5) { - RGB[3] = r((RGB[2] / 255) * 10000) / 10000; - RGB[2] = RGB[1]; - RGB[1] = RGB[0]; - RGB[0] = (d >> 24) & 255; - } - } - return RGB; - }; - let i = parseInt, r = Math.round, th = fromValue.length > 9, h = typeof toValue == "string" ? (toValue.length > 9 ? true : toValue == "c" ? !th : false) : th, b = c < 0, p = b ? c * -1 : c, to = toValue && toValue != "c" ? toValue : b ? "#000000" : "#FFFFFF", f = sbcRip(fromValue), t = sbcRip(to); - if (!f || !t) - return "red"; //ErrorCheck - if (h) - return ("rgb" + - (f[3] > -1 || t[3] > -1 ? "a(" : "(") + - r((t[0] - f[0]) * p + f[0]) + - "," + - r((t[1] - f[1]) * p + f[1]) + - "," + - r((t[2] - f[2]) * p + f[2]) + - (f[3] < 0 && t[3] < 0 - ? ")" - : "," + - (f[3] > -1 && t[3] > -1 ? r(((t[3] - f[3]) * p + f[3]) * 10000) / 10000 : t[3] < 0 ? f[3] : t[3]) + - ")")); - else - return ("#" + - (0x100000000 + - r((t[0] - f[0]) * p + f[0]) * 0x1000000 + - r((t[1] - f[1]) * p + f[1]) * 0x10000 + - r((t[2] - f[2]) * p + f[2]) * 0x100 + - (f[3] > -1 && t[3] > -1 - ? r(((t[3] - f[3]) * p + f[3]) * 255) - : t[3] > -1 - ? r(t[3] * 255) - : f[3] > -1 - ? r(f[3] * 255) - : 255)) - .toString(16) - .slice(1, f[3] > -1 || t[3] > -1 ? undefined : -2)); -} diff --git a/test/theme/styles/native/js/core/helpers/helperclasses.js b/test/theme/styles/native/js/core/helpers/helperclasses.js deleted file mode 100755 index 50ba7fb..0000000 --- a/test/theme/styles/native/js/core/helpers/helperclasses.js +++ /dev/null @@ -1,73 +0,0 @@ -import { Platform } from "react-native"; -import { background, border } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -*/ -// Hide on Android -export const hideOnAndroid = { - container: { - display: Platform.select({ ios: "flex", android: "none" }), - }, -}; -// Hide on iOS -export const hideOnIos = { - container: { - display: Platform.select({ ios: "none", android: "flex" }), - }, -}; -// -//== Background Colors -export const backgroundPrimary = { - container: { - backgroundColor: background.primary, - }, -}; -export const backgroundSecondary = { - container: { - backgroundColor: background.secondary, - }, -}; -export const backgroundBrandPrimary = { - container: { - backgroundColor: background.brandPrimary, - }, -}; -export const backgroundBrandSuccess = { - container: { - backgroundColor: background.brandSuccess, - }, -}; -export const backgroundBrandWarning = { - container: { - backgroundColor: background.brandWarning, - }, -}; -export const backgroundBrandDanger = { - container: { - backgroundColor: background.brandDanger, - }, -}; -export const backgroundGray = { - container: { - backgroundColor: background.gray, - }, -}; -// -// borders -export const borderTop = { - container: { - borderColor: border.color, - borderTopWidth: border.width, - }, -}; -export const borderBottom = { - container: { - borderColor: border.color, - borderBottomWidth: border.width, - }, -}; diff --git a/test/theme/styles/native/js/core/helpers/images.js b/test/theme/styles/native/js/core/helpers/images.js deleted file mode 100755 index cdfaaa2..0000000 --- a/test/theme/styles/native/js/core/helpers/images.js +++ /dev/null @@ -1,55 +0,0 @@ -import { border } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Image - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -// Image Sizes -export const thumbnail = { - image: { - width: "100%", - height: "auto", - aspectRatio: 1, - borderRadius: border.radius, - }, -}; -export const avatarSmall = { - image: { - width: 60, - height: 60, - borderRadius: 30, - }, -}; -export const avatarMedium = { - image: { - width: 80, - height: 80, - borderRadius: 40, - }, -}; -export const avatarLarge = { - image: { - width: 120, - height: 120, - borderRadius: 60, - }, -}; -export const inputIcon = { - image: { - width: 30, - height: 30, - }, -}; diff --git a/test/theme/styles/native/js/core/helpers/progressbar.js b/test/theme/styles/native/js/core/helpers/progressbar.js deleted file mode 100755 index 92298fc..0000000 --- a/test/theme/styles/native/js/core/helpers/progressbar.js +++ /dev/null @@ -1,58 +0,0 @@ -import { Platform } from "react-native"; -import { anyColorToRgbString } from "./_functions/convertcolors"; -import { brand } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Progress Bar - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Progress Bar Color -export const progressBarSuccess = { - bar: { - borderColor: Platform.select({ ios: brand.success }), - backgroundColor: Platform.select({ android: `rgba(${anyColorToRgbString(brand.success)},0.2)` }), - }, - fill: { - backgroundColor: brand.success, - }, -}; -export const progressBarWarning = { - bar: { - borderColor: Platform.select({ ios: brand.warning }), - backgroundColor: Platform.select({ android: `rgba(${anyColorToRgbString(brand.warning)},0.2)` }), - }, - fill: { - backgroundColor: brand.warning, - }, -}; -export const progressBarDanger = { - bar: { - borderColor: Platform.select({ ios: brand.danger }), - backgroundColor: Platform.select({ android: `rgba(${anyColorToRgbString(brand.danger)},0.2)` }), - }, - fill: { - backgroundColor: brand.danger, - }, -}; -// -// Progress Bar Size -export const progressBarSmall = { - bar: { - height: 3, - borderRadius: Platform.select({ ios: 2 }), - }, -}; -export const progressBarLarge = { - bar: { - height: 10, - borderRadius: Platform.select({ ios: 8 }), - }, -}; diff --git a/test/theme/styles/native/js/core/helpers/typography.js b/test/theme/styles/native/js/core/helpers/typography.js deleted file mode 100755 index b960e00..0000000 --- a/test/theme/styles/native/js/core/helpers/typography.js +++ /dev/null @@ -1,150 +0,0 @@ -import { brand, contrast, font } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text - -//== Design Properties -//## Helper classes to change the look and feel of the widget -========================================================================== */ -// Text Colors -export const textPrimary = { - text: { - color: brand.primary, - }, -}; -export const textSuccess = { - text: { - color: brand.success, - }, -}; -export const textWarning = { - text: { - color: brand.warning, - }, -}; -export const textDanger = { - text: { - color: brand.danger, - }, -}; -export const textWhite = { - text: { - color: "#FFF", - }, -}; -// -export const textContrastLowest = { - text: { - color: contrast.lowest, - }, -}; -export const textContrastLower = { - text: { - color: contrast.lower, - }, -}; -export const textContrastLow = { - text: { - color: contrast.low, - }, -}; -export const textContrastDefault = { - text: { - color: contrast.regular, - }, -}; -export const textContrastHigh = { - text: { - color: contrast.high, - }, -}; -export const textContrastHigher = { - text: { - color: contrast.higher, - }, -}; -export const textContrastHighest = { - text: { - color: contrast.highest, - }, -}; -// -// Text Alignment -export const textLeft = { - text: { - textAlign: "left", - }, -}; -export const textCenter = { - text: { - textAlign: "center", - }, -}; -export const textRight = { - text: { - textAlign: "right", - }, -}; -// -// Text Weights -export const textLight = { - text: { - fontWeight: font.weightLight, - }, -}; -export const textNormal = { - text: { - fontWeight: font.weightNormal, - }, -}; -export const textSemiBold = { - text: { - fontWeight: font.weightSemiBold, - }, -}; -export const textBold = { - text: { - fontWeight: font.weightBold, - }, -}; -// -// Text Sizes -export const textSmall = { - text: { - fontSize: font.sizeSmall, - lineHeight: font.sizeSmall + 2, - }, -}; -export const textLarge = { - text: { - fontSize: font.sizeLarge, - lineHeight: font.sizeLarge + 2, - }, -}; -// -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -// -// Text Transformations -export const textLowercase = { - text: { - textTransform: "lowercase", - }, -}; -export const textUppercase = { - text: { - textTransform: "uppercase", - }, -}; -export const textCapitalize = { - text: { - textTransform: "capitalize", - }, -}; diff --git a/test/theme/styles/native/js/core/variables.js b/test/theme/styles/native/js/core/variables.js deleted file mode 100755 index e557c06..0000000 --- a/test/theme/styles/native/js/core/variables.js +++ /dev/null @@ -1,264 +0,0 @@ -import { Platform } from "react-native"; -import * as custom from "../app/custom-variables"; -import adjustFont, { height, width } from "./helpers/_functions/adjustfont"; -import { anyColorToRgbString, setColorBasedOnBackground, setContrastScale } from "./helpers/_functions/convertcolors"; -import merge from "./helpers/_functions/mergeobjects"; -// -// -//== Global variables -//## Variables to be used during styling -//-------------------------------------------------------------------------------------------------------------------// -// System defined read-only values -export const deviceHeight = height; -export const deviceWidth = width; -// -// Brand Style -let brand = { - primary: "#0595DB", - success: "#76CA02", - warning: "#f99b1d", - danger: "#ed1c24", - primaryLight: `rgba(${anyColorToRgbString("#0595DB")}, 0.14)`, - successLight: `rgba(${anyColorToRgbString("#76CA02")}, 0.14)`, - warningLight: `rgba(${anyColorToRgbString("#f99b1d")}, 0.14)`, - dangerLight: `rgba(${anyColorToRgbString("#ed1c24")}, 0.14)`, -}; -brand = merge(brand, custom.brand || {}); -// -// Background colors -let background = { - primary: "#FFF", - secondary: setContrastScale(0.03, "#FFF"), - gray: "#c6c6cc", - brandPrimary: brand.primary, - brandSuccess: brand.success, - brandWarning: brand.warning, - brandDanger: brand.danger, -}; -background = merge(background, custom.background || {}); -// -// Contrast (Gray) colors based on background.primary -let contrast = { - highest: setContrastScale(0.95, background.primary), - higher: setContrastScale(0.8, background.primary), - high: setContrastScale(0.65, background.primary), - regular: setContrastScale(0.5, background.primary), - low: setContrastScale(0.35, background.primary), - lower: setContrastScale(0.2, background.primary), - lowest: setContrastScale(0.05, background.primary), -}; -contrast = merge(contrast, custom.contrast || {}); -// -// Border Style -let border = { - color: setContrastScale(0.17, background.primary), - width: 1, - radius: 5, -}; -border = merge(border, custom.border || {}); -// -// Font Styles -let font = { - size: adjustFont(14), - sizeSmall: adjustFont(12), - sizeLarge: adjustFont(18), - sizeH1: adjustFont(31), - sizeH2: adjustFont(26), - sizeH3: adjustFont(24), - sizeH4: adjustFont(18), - sizeH5: adjustFont(14), - sizeH6: adjustFont(12), - color: setColorBasedOnBackground(background.primary), - weightLight: "100", - weightNormal: "normal", - weightSemiBold: "600", - weightBold: "bold", - family: Platform.select({ ios: "System", android: "normal" }), -}; -font = merge(font, custom.font || {}); -// -// Spacing -let spacing = { - smallest: 5, - smaller: 10, - small: 15, - regular: 20, - large: 25, - larger: 30, - largest: 40, -}; -spacing = merge(spacing, custom.spacing || {}); -// -// Button Styles -let button = { - fontSize: font.sizeSmall, - fontSizeLarge: font.size, - fontWeight: font.weightBold, - fontSizeIcon: font.sizeSmall, - fontSizeIconLarge: font.size, - borderRadius: border.radius, - paddingVertical: spacing.smaller, - paddingHorizontal: spacing.regular, - header: { - color: contrast.highest, - borderColor: "transparent", - backgroundColor: "transparent", - fontSize: font.sizeSmall, - fontSizeIcon: font.sizeSmall, - paddingLeft: 0, - paddingRight: 10, - }, - primary: { - color: "#FFF", - borderColor: brand.primary, - backgroundColor: brand.primary, - }, - secondary: { - color: brand.primary, - borderColor: brand.primary, - backgroundColor: "transparent", - inversedColor: "#FFF", - }, - success: { - color: "#FFF", - borderColor: brand.success, - backgroundColor: brand.success, - }, - warning: { - color: "#FFF", - borderColor: brand.warning, - backgroundColor: brand.warning, - }, - danger: { - color: "#FFF", - borderColor: brand.danger, - backgroundColor: brand.danger, - }, -}; -button = merge(button, custom.button || {}); -// -//Input Styles -let input = { - // Colors - color: font.color, - errorColor: brand.danger, - labelColor: font.color, - borderColor: contrast.lower, - backgroundColor: background.primary, - disabledBackgroundColor: contrast.lowest, - selectionColor: contrast.lower, - placeholderTextColor: contrast.regular, - underlineColorAndroid: "transparent", - // Sizes - fontSize: font.size, - fontFamily: font.family, - borderWidth: border.width, - borderRadius: border.radius, - // Alignment - textAlign: "left", - paddingHorizontal: spacing.smaller, - paddingVertical: spacing.small, -}; -input = merge(input, custom.input || {}); -// -// Navigation Styles -let navigation = { - statusBar: { - backgroundColor: background.primary, - barStyle: custom.darkMode ? "light-content" : "dark-content", - }, - topBar: { - backgroundColor: background.primary, - backButtonColor: contrast.highest, - titleColor: contrast.highest, - titleFontSize: Platform.select({ android: font.sizeH4, ios: font.sizeH5 }), - }, - bottomBar: { - color: contrast.high, - selectedTextColor: contrast.high, - selectedIconColor: brand.primary, - backgroundColor: background.primary, - fontSize: font.sizeSmall, - iconSize: font.sizeSmall, - }, - progressOverlay: { - color: font.color, - activityIndicatorColor: font.color, - backgroundColor: `rgba(0, 0, 0, 0.5)`, - containerBackgroundColor: background.secondary, - shadowColor: "#000", - fontSize: font.size, - }, -}; -navigation = merge(navigation, custom.navigation || {}); -// -// Tabcontainer Styles -let tabContainer = { - tabBar: { - pressColor: contrast.lower, - backgroundColor: background.primary, - }, - indicator: { - backgroundColor: brand.primary, - height: Platform.select({ ios: 2, android: 2 }), - }, - label: { - color: contrast.highest, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, - activeLabel: { - color: brand.primary, - fontWeight: font.weightBold, - textTransform: "uppercase", - }, -}; -tabContainer = merge(tabContainer, custom.tabContainer || {}); -// -// Listview Styles -let listView = { - border: { - color: border.color, - width: border.width, - }, -}; -listView = merge(listView, custom.listView || {}); -// -// Layoutgrid Styles -let layoutGrid = { - gutterSize: 15, -}; -layoutGrid = merge(layoutGrid, custom.layoutGrid || {}); -// -//## Pluggable Widgets -//-------------------------------------------------------------------------------------------------------------------// -// Badge Styles -let badge = { - fontWeight: font.weightBold, - borderRadius: 30, - paddingVertical: 3, - paddingHorizontal: spacing.smaller, - default: { - color: contrast.higher, - backgroundColor: contrast.lower, - }, - primary: { - color: brand.primary, - backgroundColor: brand.primaryLight, - }, - success: { - color: brand.success, - backgroundColor: brand.successLight, - }, - warning: { - color: brand.warning, - backgroundColor: brand.warningLight, - }, - danger: { - color: brand.danger, - backgroundColor: brand.dangerLight, - }, -}; -badge = merge(badge, custom.badge || {}); -// -export { brand, background, border, contrast, font, spacing, button, input, navigation, tabContainer, listView, layoutGrid, badge, }; diff --git a/test/theme/styles/native/js/core/widgets/checkbox.js b/test/theme/styles/native/js/core/widgets/checkbox.js deleted file mode 100755 index fdc6636..0000000 --- a/test/theme/styles/native/js/core/widgets/checkbox.js +++ /dev/null @@ -1,42 +0,0 @@ -import { Platform } from "react-native"; -import { background, brand, contrast, spacing } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - CheckBox - - Default Class For Mendix CheckBox Widget -========================================================================== */ -export const CheckBox = { - container: Object.assign(Object.assign({}, TextBox.container), { paddingVertical: spacing.smallest, justifyContent: "center" }), - label: Object.assign({}, TextBox.label), - input: { - // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed - backgroundColor: "transparent", - marginRight: Platform.select({ android: -3 }), - thumbColorOn: background.primary, - trackColorOn: brand.success, - thumbColorOff: contrast.regular, - trackColorOff: contrast.lower, - }, - inputDisabled: { - // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed - opacity: Platform.select({ android: 0.5 }), - }, - inputError: Object.assign(Object.assign({}, TextBox.inputError), { thumbColorOn: background.primary, trackColorOn: brand.danger, thumbColorOff: contrast.regular, trackColorOff: brand.danger }), - validationMessage: Object.assign(Object.assign({}, TextBox.validationMessage), { alignSelf: "stretch" }), -}; -export const CheckBoxVertical = { - container: TextBoxVertical.container, - label: Object.assign({}, TextBoxVertical.label), - input: Object.assign(Object.assign({}, CheckBox.input), { alignSelf: "flex-start" }), - inputDisabled: CheckBox.inputDisabled, - inputError: Object.assign(Object.assign({}, TextBoxVertical.inputError), { thumbColorOn: background.primary, trackColorOn: brand.danger, thumbColorOff: contrast.regular, trackColorOff: brand.danger }), - validationMessage: Object.assign(Object.assign({}, TextBoxVertical.validationMessage), { alignSelf: "stretch" }), -}; diff --git a/test/theme/styles/native/js/core/widgets/datepicker.js b/test/theme/styles/native/js/core/widgets/datepicker.js deleted file mode 100755 index 936163e..0000000 --- a/test/theme/styles/native/js/core/widgets/datepicker.js +++ /dev/null @@ -1,81 +0,0 @@ -import { NativeModules } from "react-native"; -import { darkMode } from "../../app/custom-variables"; -import { font, input } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Date Picker - - Default Class For Mendix Date Picker Widget -========================================================================== */ -// Font color of native iOS datepicker can not be changed. -// To fix this we change the background color of the picker if OS theme is dark and app theme is light (And the other way around). -const isOSDarkMode = NativeModules && NativeModules.RNDarkMode && NativeModules.RNDarkMode.initialMode && NativeModules.RNDarkMode.initialMode === "dark"; -const pickerBackgroundColor = !darkMode && isOSDarkMode ? - "rgba(0, 0, 0, 1)" : - darkMode && !isOSDarkMode ? "rgba(255, 255, 255, 1)" : input.backgroundColor; -// -export const DatePicker = { - container: Object.assign({}, TextBox.container), - label: Object.assign({}, TextBox.label), - pickerIOS: { - // All ViewStyle properties are allowed - backgroundColor: pickerBackgroundColor, - }, - pickerBackdropIOS: { - // All ViewStyle properties are allowed - }, - pickerTopIOS: { - // All ViewStyle properties are allowed - backgroundColor: pickerBackgroundColor, - }, - value: { - // All TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - fontSize: input.fontSize, - fontFamily: font.family, - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - valueDisabled: { - // All TextStyle properties are allowed - backgroundColor: input.disabledBackgroundColor, - }, - placeholder: { - // All TextStyle properties are allowed - color: input.placeholderTextColor, - }, - placeholderDisabled: { - // All TextStyle properties are allowed - }, - validationMessage: Object.assign({}, TextBox.validationMessage), -}; -export const DatePickerVertical = { - container: TextBoxVertical.container, - label: TextBoxVertical.label, - value: { - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - fontSize: input.fontSize, - fontFamily: font.family, - borderRadius: input.borderRadius, - borderWidth: input.borderWidth, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - placeholder: { - color: input.placeholderTextColor, - }, - validationMessage: TextBoxVertical.validationMessage, -}; diff --git a/test/theme/styles/native/js/core/widgets/dropdown.js b/test/theme/styles/native/js/core/widgets/dropdown.js deleted file mode 100755 index 1da3441..0000000 --- a/test/theme/styles/native/js/core/widgets/dropdown.js +++ /dev/null @@ -1,59 +0,0 @@ -import { input } from "../variables"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Drop Down - - Default Class For Mendix Drop Down Widget -========================================================================== */ -export const DropDown = { - container: Object.assign({}, TextBox.container), - label: Object.assign({}, TextBox.label), - pickerIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, - pickerItemIOS: { - // All TextStyle properties are allowed - }, - pickerBackdropIOS: { - // All ViewStyle properties are allowed - }, - pickerTopIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, - value: { - // All TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - valueDisabled: { - // All TextStyle properties are allowed - backgroundColor: input.disabledBackgroundColor, - }, - validationMessage: Object.assign({}, TextBox.validationMessage), -}; -export const DropDownVertical = { - container: TextBoxVertical.container, - label: TextBoxVertical.label, - pickerIOS: DropDown.pickerIOS, - pickerItemIOS: DropDown.pickerItemIOS, - pickerBackdropIOS: DropDown.pickerBackdropIOS, - pickerTopIOS: DropDown.pickerTopIOS, - value: DropDown.value, - validationMessage: TextBoxVertical.validationMessage, -}; diff --git a/test/theme/styles/native/js/core/widgets/referenceselector.js b/test/theme/styles/native/js/core/widgets/referenceselector.js deleted file mode 100755 index 9af9402..0000000 --- a/test/theme/styles/native/js/core/widgets/referenceselector.js +++ /dev/null @@ -1,60 +0,0 @@ -import { input } from "../variables"; -import { DropDown } from "./dropdown.js"; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Reference Selector - - Default Class For Mendix Reference Selector Widget -========================================================================== */ -export const ReferenceSelector = { - container: Object.assign({}, TextBox.container), - label: Object.assign({}, TextBox.label), - pickerIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, - pickerItemIOS: { - // All TextStyle properties are allowed - }, - pickerBackdropIOS: { - // All ViewStyle properties are allowed - }, - pickerTopIOS: { - // All ViewStyle properties are allowed - backgroundColor: input.backgroundColor, - }, - value: { - // All TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - valueDisabled: { - // All TextStyle properties are allowed - backgroundColor: input.disabledBackgroundColor, - }, - validationMessage: Object.assign({}, TextBox.validationMessage), -}; -export const ReferenceSelectorVertical = { - container: TextBoxVertical.container, - label: TextBoxVertical.label, - pickerIOS: ReferenceSelector.pickerIOS, - pickerItemIOS: ReferenceSelector.pickerItemIOS, - pickerBackdropIOS: ReferenceSelector.pickerBackdropIOS, - pickerTopIOS: ReferenceSelector.pickerTopIOS, - value: DropDown.value, - validationMessage: TextBoxVertical.validationMessage, -}; diff --git a/test/theme/styles/native/js/core/widgets/slider.js b/test/theme/styles/native/js/core/widgets/slider.js deleted file mode 100755 index dcbe8c3..0000000 --- a/test/theme/styles/native/js/core/widgets/slider.js +++ /dev/null @@ -1,88 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, brand, contrast, font, input } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Slider - - Default Class For Mendix Slider Widget -========================================================================== */ -export const com_mendix_widget_native_slider_Slider = { - container: { - // All ViewStyle properties are allowed - alignSelf: "stretch", - }, - track: { - // All ViewStyle properties are allowed - backgroundColor: contrast.lower, - }, - trackDisabled: { - // All ViewStyle properties are allowed - backgroundColor: contrast.lower, - opacity: Platform.select({ ios: 0.4 }), - }, - highlight: { - // All ViewStyle properties are allowed - backgroundColor: brand.primary, - }, - highlightDisabled: { - // All ViewStyle properties are allowed - backgroundColor: Platform.select({ ios: brand.primary, android: contrast.low }), - }, - marker: Object.assign({ - // All ViewStyle properties are allowed - backgroundColor: background.secondary }, Platform.select({ - ios: { - width: 30, - height: 30, - shadowColor: "#000", - shadowOpacity: 0.2, - borderColor: contrast.lowest, - shadowOffset: { width: 0, height: 1 }, - }, - android: { - width: 20, - height: 20, - borderRadius: 10, - elevation: 3, - borderColor: border.color, - }, - })), - markerActive: Object.assign({}, Platform.select({ - android: { - borderWidth: 0, - width: 34, - height: 34, - borderRadius: 17, - }, - })), - markerDisabled: Object.assign({}, Platform.select({ - ios: { - borderColor: contrast.lowest, - backgroundColor: background.secondary, - shadowColor: "#000", - shadowOpacity: 0.2, - shadowOffset: { width: 0, height: 1 }, - }, - android: { - marginTop: 1, - borderColor: background.primary, - backgroundColor: contrast.low, - borderWidth: 3, - width: 14, - height: 14, - borderRadius: 7, - }, - })), - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; diff --git a/test/theme/styles/native/js/core/widgets/textarea.js b/test/theme/styles/native/js/core/widgets/textarea.js deleted file mode 100755 index 494c7a8..0000000 --- a/test/theme/styles/native/js/core/widgets/textarea.js +++ /dev/null @@ -1,32 +0,0 @@ -var _a, _b, _c; -import { TextBox, TextBoxVertical } from "./textbox"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text Area - - Default Class For Mendix Text Area Widget -========================================================================== */ -export const TextArea = { - container: Object.assign({}, TextBox.container), - label: Object.assign(Object.assign({}, TextBox.label), { height: "100%", textAlignVertical: "top", paddingVertical: (_a = TextBox.input) === null || _a === void 0 ? void 0 : _a.paddingVertical }), - input: Object.assign(Object.assign({}, TextBox.input), { textAlignVertical: "top", paddingTop: (_b = TextBox.input) === null || _b === void 0 ? void 0 : _b.paddingVertical }), - inputDisabled: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - backgroundColor: (_c = TextBox.inputDisabled) === null || _c === void 0 ? void 0 : _c.backgroundColor, - }, - inputError: Object.assign({}, TextBox.inputError), - validationMessage: Object.assign({}, TextBox.validationMessage), -}; -export const TextAreaVertical = { - container: TextBoxVertical.container, - label: Object.assign(Object.assign({}, TextBoxVertical.label), { height: undefined, paddingVertical: undefined, textAlignVertical: undefined }), - input: TextBoxVertical.input, - inputError: TextBoxVertical.inputError, - validationMessage: TextBoxVertical.validationMessage, -}; diff --git a/test/theme/styles/native/js/core/widgets/textbox.js b/test/theme/styles/native/js/core/widgets/textbox.js deleted file mode 100755 index da186c7..0000000 --- a/test/theme/styles/native/js/core/widgets/textbox.js +++ /dev/null @@ -1,84 +0,0 @@ -import { font, input, spacing } from "../variables"; -/* - -DISCLAIMER: -Do not change this file because it is core styling. -Customizing core files will make updating Atlas much more difficult in the future. -To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. - -========================================================================== - Text Box - - Default Class For Mendix Text Box Widget -========================================================================== */ -export const TextBox = { - container: { - // All ViewStyle properties are allowed - }, - label: { - // numberOfLines and all TextStyle properties are allowed - numberOfLines: 1, - color: input.labelColor, - fontSize: input.fontSize, - fontFamily: font.family, - textAlign: input.textAlign, - marginRight: spacing.small, - }, - input: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - selectionColor: input.selectionColor, - placeholderTextColor: input.placeholderTextColor, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderWidth: input.borderWidth, - borderRadius: input.borderRadius, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - inputDisabled: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - backgroundColor: input.disabledBackgroundColor, - }, - inputError: { - // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed - color: input.errorColor, - borderColor: input.errorColor, - placeholderTextColor: input.errorColor, - underlineColorAndroid: input.underlineColorAndroid, - }, - validationMessage: { - // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, -}; -export const TextBoxVertical = { - container: {}, - label: { - numberOfLines: 1, - color: input.labelColor, - fontSize: input.fontSize, - fontFamily: font.family, - textAlign: input.textAlign, - marginBottom: spacing.smallest, - }, - input: { - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - selectionColor: input.selectionColor, - placeholderTextColor: input.placeholderTextColor, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderRadius: input.borderRadius, - borderWidth: input.borderWidth, - paddingHorizontal: input.paddingHorizontal, - paddingVertical: input.paddingVertical, - }, - inputError: TextBox.inputError, - validationMessage: TextBox.validationMessage, -}; diff --git a/test/theme/styles/native/js/main.js b/test/theme/styles/native/js/main.js deleted file mode 100755 index d7d7cc1..0000000 --- a/test/theme/styles/native/js/main.js +++ /dev/null @@ -1,80 +0,0 @@ -//================================== CORE ==================================\\ -// -// -// Base -export * from "./core/base/flex"; -export * from "./core/base/spacing"; -// -// -// Components -export * from "./core/widgets/activityindicator"; -export * from "./core/helpers/activityindicator"; -export * from "./core/widgets/animation"; -export * from "./core/widgets/backgroundimage"; -export * from "./core/widgets/badge"; -export * from "./core/helpers/badge"; -export * from "./core/widgets/bottomsheet"; -export * from "./core/widgets/buttons"; -export * from "./core/helpers/buttons"; -export * from "./core/widgets/carousel"; -export * from "./core/widgets/checkbox"; -export * from "./core/widgets/colorpicker"; -export * from "./core/widgets/container"; -export * from "./core/widgets/datepicker"; -export * from "./core/widgets/dropdown"; -export * from "./core/widgets/feedback"; -export * from "./core/widgets/floatingactionbutton"; -export * from "./core/helpers/floatingactionbutton"; -export * from "./core/widgets/images"; -export * from "./core/helpers/images"; -export * from "./core/widgets/introscreen"; -export * from "./core/widgets/layoutgrid"; -export * from "./core/widgets/listviews"; -export * from "./core/helpers/listviews"; -export * from "./core/widgets/listviewswipe"; -export * from "./core/helpers/listviewswipe"; -export * from "./core/widgets/maps"; -export * from "./core/helpers/maps"; -export * from "./core/widgets/navigation"; -export * from "./core/widgets/pagetitle"; -export * from "./core/widgets/progressbar"; -export * from "./core/helpers/progressbar"; -export * from "./core/widgets/progresscircle"; -export * from "./core/helpers/progresscircle"; -export * from "./core/widgets/popupmenu"; -export * from "./core/widgets/qrcode"; -export * from "./core/widgets/rangeslider"; -export * from "./core/helpers/rangeslider"; -export * from "./core/widgets/rating"; -export * from "./core/widgets/referenceselector"; -export * from "./core/widgets/safeareaview"; -export * from "./core/widgets/slider"; -export * from "./core/helpers/slider"; -export * from "./core/widgets/tabcontainer"; -export * from "./core/helpers/tabcontainer"; -export * from "./core/widgets/textarea"; -export * from "./core/widgets/textbox"; -export * from "./core/helpers/textbox"; -export * from "./core/widgets/togglebuttons"; -export * from "./core/widgets/typography"; -export * from "./core/helpers/typography"; -export * from "./core/widgets/videoplayer"; -export * from "./core/widgets/webview"; -export * from "./core/helpers/helperclasses"; -// -// -//================================= CUSTOM =================================\\ -// -// Layouts -export * from "./ui_resources/atlas_ui_resources/layouts/layout"; -// -// -// Page Templates -export * from "./ui_resources/atlas_ui_resources/pagetemplates/page"; -export * from "./ui_resources/atlas_ui_resources/pagetemplates/maps"; -export * from "./ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails"; -// -// -// Building blocks -export * from "./ui_resources/atlas_ui_resources/buildingblocks/card"; -export * from "./ui_resources/atlas_ui_resources/buildingblocks/header"; diff --git a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/buildingblocks/card.js b/test/theme/styles/native/js/ui_resources/atlas_ui_resources/buildingblocks/card.js deleted file mode 100755 index 4ea9b76..0000000 --- a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/buildingblocks/card.js +++ /dev/null @@ -1,86 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, contrast, spacing } from "../../../core/variables"; -/* -========================================================================== - Cards - -========================================================================== -*/ -export const card = { - container: Object.assign(Object.assign({ borderRadius: border.radius, backgroundColor: background.primary, marginBottom: spacing.regular }, Platform.select({ - android: { - borderWidth: 1, - borderColor: contrast.lowest, - }, - })), { elevation: 1.5, shadowColor: "#000", shadowOpacity: 0.1, shadowRadius: 10, shadowOffset: { - width: 0, - height: 2, - } }), -}; -// -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -export const cardImage = { - container: { - overflow: "hidden", - borderTopLeftRadius: border.radius, - borderTopRightRadius: border.radius, - }, - image: { - width: "100%", - height: 200, - resizeMode: "cover", - }, -}; -export const cardImageFull = { - container: Object.assign(Object.assign({}, cardImage.container), { borderBottomLeftRadius: border.radius, borderBottomRightRadius: border.radius }), - image: { - width: "100%", - height: 300, - resizeMode: "cover", - }, -}; -export const cardBody = { - container: { - position: "absolute", - end: 0, - start: 0, - bottom: 0, - backgroundColor: "transparent", - }, -}; -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -// Card Action -export const cardAction = { - container: { - maxWidth: "100%", - aspectRatio: 1, - borderWidth: 1, - borderColor: border.color, - borderRadius: border.radius, - padding: spacing.regular, - alignItems: "center", - }, -}; -export const cardActionImage = { - image: { - maxHeight: 70, - resizeMode: "contain", - }, -}; -// -//-------------------------------------------------------------------------------------------------------------------// -// Card Payment -export const cardPaymentImage = { - container: { - flex: -1, - maxHeight: 250, - }, - image: { - width: "100%", - maxHeight: 250, - resizeMode: "contain", - }, -}; diff --git a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/buildingblocks/header.js b/test/theme/styles/native/js/ui_resources/atlas_ui_resources/buildingblocks/header.js deleted file mode 100755 index cb27375..0000000 --- a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/buildingblocks/header.js +++ /dev/null @@ -1,50 +0,0 @@ -import { Platform } from "react-native"; -import { background, border, contrast, spacing } from "../../../core/variables"; -/* -========================================================================== - Cards - -========================================================================== -*/ -export const header = { - container: Object.assign({ borderRadius: border.radius, backgroundColor: background.primary, marginBottom: spacing.regular }, Platform.select({ - android: { - borderWidth: 1, - borderColor: contrast.lowest, - }, - })), -}; -// -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -export const headerImageFull = { - container: { - overflow: "hidden", - }, - image: { - width: "100%", - height: 250, - resizeMode: "cover", - }, -}; -export const headerImageOverlay = { - container: { - zIndex: 10, - width: "100%", - height: "100%", - position: "absolute", - backgroundColor: "rgba(0,0,0,0.4)", - }, -}; -export const headerBody = { - container: { - bottom: 0, - zIndex: 11, - width: "100%", - position: "absolute", - backgroundColor: "transparent", - }, -}; -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// diff --git a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/pagetemplates/page.js b/test/theme/styles/native/js/ui_resources/atlas_ui_resources/pagetemplates/page.js deleted file mode 100755 index 0e3bcc2..0000000 --- a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/pagetemplates/page.js +++ /dev/null @@ -1,39 +0,0 @@ -/* -========================================================================== - Page - -========================================================================== -*/ -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -// -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -// -export const pageHeaderBorderNone = { - sidebar: { - // All ViewStyle properties are allowed - }, - statusBar: { - // Only backgroundColor and barStyle are allowed - }, - header: { - container: { - // All ViewStyle properties are allowed - elevation: 0, - borderBottomWidth: undefined, - }, - title: { - // All TextStyle properties are allowed - }, - backButtonText: { - // All TextStyle properties are allowed - }, - backButtonIcon: { - // All ImageStyle properties are allowed - }, - }, - container: { - // All ViewStyle properties are allowed - }, -}; diff --git a/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.eot b/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.eot deleted file mode 100755 index b93a495..0000000 Binary files a/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.svg b/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.svg deleted file mode 100755 index 94fb549..0000000 --- a/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.ttf b/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.ttf deleted file mode 100755 index 1413fc6..0000000 Binary files a/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/test/theme/styles/web/css/main.css b/test/theme/styles/web/css/main.css deleted file mode 100755 index a1249b3..0000000 --- a/test/theme/styles/web/css/main.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.3.4 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{margin:0.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type='button'],input[type='reset'],input[type='submit']{-webkit-appearance:button;cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type='checkbox'],input[type='radio']{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type='number']::-webkit-inner-spin-button,input[type='number']::-webkit-outer-spin-button{height:auto}input[type='search']{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type='search']::-webkit-search-cancel-button,input[type='search']::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:0.35em 0.625em 0.75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{color:#000 !important;text-shadow:none !important;background:transparent !important;-webkit-box-shadow:none !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^='#']:after,a[href^='javascript:']:after{content:''}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url("./fonts/glyphicons-halflings-regular.eot");src:url("./fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"),url("./fonts/glyphicons-halflings-regular.woff2") format("woff2"),url("./fonts/glyphicons-halflings-regular.woff") format("woff"),url("./fonts/glyphicons-halflings-regular.ttf") format("truetype"),url("./fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:'\2a'}.glyphicon-plus:before{content:'\2b'}.glyphicon-euro:before,.glyphicon-eur:before{content:'\20ac'}.glyphicon-minus:before{content:'\2212'}.glyphicon-cloud:before{content:'\2601'}.glyphicon-envelope:before{content:'\2709'}.glyphicon-pencil:before{content:'\270f'}.glyphicon-glass:before{content:'\e001'}.glyphicon-music:before{content:'\e002'}.glyphicon-search:before{content:'\e003'}.glyphicon-heart:before{content:'\e005'}.glyphicon-star:before{content:'\e006'}.glyphicon-star-empty:before{content:'\e007'}.glyphicon-user:before{content:'\e008'}.glyphicon-film:before{content:'\e009'}.glyphicon-th-large:before{content:'\e010'}.glyphicon-th:before{content:'\e011'}.glyphicon-th-list:before{content:'\e012'}.glyphicon-ok:before{content:'\e013'}.glyphicon-remove:before{content:'\e014'}.glyphicon-zoom-in:before{content:'\e015'}.glyphicon-zoom-out:before{content:'\e016'}.glyphicon-off:before{content:'\e017'}.glyphicon-signal:before{content:'\e018'}.glyphicon-cog:before{content:'\e019'}.glyphicon-trash:before{content:'\e020'}.glyphicon-home:before{content:'\e021'}.glyphicon-file:before{content:'\e022'}.glyphicon-time:before{content:'\e023'}.glyphicon-road:before{content:'\e024'}.glyphicon-download-alt:before{content:'\e025'}.glyphicon-download:before{content:'\e026'}.glyphicon-upload:before{content:'\e027'}.glyphicon-inbox:before{content:'\e028'}.glyphicon-play-circle:before{content:'\e029'}.glyphicon-repeat:before{content:'\e030'}.glyphicon-refresh:before{content:'\e031'}.glyphicon-list-alt:before{content:'\e032'}.glyphicon-lock:before{content:'\e033'}.glyphicon-flag:before{content:'\e034'}.glyphicon-headphones:before{content:'\e035'}.glyphicon-volume-off:before{content:'\e036'}.glyphicon-volume-down:before{content:'\e037'}.glyphicon-volume-up:before{content:'\e038'}.glyphicon-qrcode:before{content:'\e039'}.glyphicon-barcode:before{content:'\e040'}.glyphicon-tag:before{content:'\e041'}.glyphicon-tags:before{content:'\e042'}.glyphicon-book:before{content:'\e043'}.glyphicon-bookmark:before{content:'\e044'}.glyphicon-print:before{content:'\e045'}.glyphicon-camera:before{content:'\e046'}.glyphicon-font:before{content:'\e047'}.glyphicon-bold:before{content:'\e048'}.glyphicon-italic:before{content:'\e049'}.glyphicon-text-height:before{content:'\e050'}.glyphicon-text-width:before{content:'\e051'}.glyphicon-align-left:before{content:'\e052'}.glyphicon-align-center:before{content:'\e053'}.glyphicon-align-right:before{content:'\e054'}.glyphicon-align-justify:before{content:'\e055'}.glyphicon-list:before{content:'\e056'}.glyphicon-indent-left:before{content:'\e057'}.glyphicon-indent-right:before{content:'\e058'}.glyphicon-facetime-video:before{content:'\e059'}.glyphicon-picture:before{content:'\e060'}.glyphicon-map-marker:before{content:'\e062'}.glyphicon-adjust:before{content:'\e063'}.glyphicon-tint:before{content:'\e064'}.glyphicon-edit:before{content:'\e065'}.glyphicon-share:before{content:'\e066'}.glyphicon-check:before{content:'\e067'}.glyphicon-move:before{content:'\e068'}.glyphicon-step-backward:before{content:'\e069'}.glyphicon-fast-backward:before{content:'\e070'}.glyphicon-backward:before{content:'\e071'}.glyphicon-play:before{content:'\e072'}.glyphicon-pause:before{content:'\e073'}.glyphicon-stop:before{content:'\e074'}.glyphicon-forward:before{content:'\e075'}.glyphicon-fast-forward:before{content:'\e076'}.glyphicon-step-forward:before{content:'\e077'}.glyphicon-eject:before{content:'\e078'}.glyphicon-chevron-left:before{content:'\e079'}.glyphicon-chevron-right:before{content:'\e080'}.glyphicon-plus-sign:before{content:'\e081'}.glyphicon-minus-sign:before{content:'\e082'}.glyphicon-remove-sign:before{content:'\e083'}.glyphicon-ok-sign:before{content:'\e084'}.glyphicon-question-sign:before{content:'\e085'}.glyphicon-info-sign:before{content:'\e086'}.glyphicon-screenshot:before{content:'\e087'}.glyphicon-remove-circle:before{content:'\e088'}.glyphicon-ok-circle:before{content:'\e089'}.glyphicon-ban-circle:before{content:'\e090'}.glyphicon-arrow-left:before{content:'\e091'}.glyphicon-arrow-right:before{content:'\e092'}.glyphicon-arrow-up:before{content:'\e093'}.glyphicon-arrow-down:before{content:'\e094'}.glyphicon-share-alt:before{content:'\e095'}.glyphicon-resize-full:before{content:'\e096'}.glyphicon-resize-small:before{content:'\e097'}.glyphicon-exclamation-sign:before{content:'\e101'}.glyphicon-gift:before{content:'\e102'}.glyphicon-leaf:before{content:'\e103'}.glyphicon-fire:before{content:'\e104'}.glyphicon-eye-open:before{content:'\e105'}.glyphicon-eye-close:before{content:'\e106'}.glyphicon-warning-sign:before{content:'\e107'}.glyphicon-plane:before{content:'\e108'}.glyphicon-calendar:before{content:'\e109'}.glyphicon-random:before{content:'\e110'}.glyphicon-comment:before{content:'\e111'}.glyphicon-magnet:before{content:'\e112'}.glyphicon-chevron-up:before{content:'\e113'}.glyphicon-chevron-down:before{content:'\e114'}.glyphicon-retweet:before{content:'\e115'}.glyphicon-shopping-cart:before{content:'\e116'}.glyphicon-folder-close:before{content:'\e117'}.glyphicon-folder-open:before{content:'\e118'}.glyphicon-resize-vertical:before{content:'\e119'}.glyphicon-resize-horizontal:before{content:'\e120'}.glyphicon-hdd:before{content:'\e121'}.glyphicon-bullhorn:before{content:'\e122'}.glyphicon-bell:before{content:'\e123'}.glyphicon-certificate:before{content:'\e124'}.glyphicon-thumbs-up:before{content:'\e125'}.glyphicon-thumbs-down:before{content:'\e126'}.glyphicon-hand-right:before{content:'\e127'}.glyphicon-hand-left:before{content:'\e128'}.glyphicon-hand-up:before{content:'\e129'}.glyphicon-hand-down:before{content:'\e130'}.glyphicon-circle-arrow-right:before{content:'\e131'}.glyphicon-circle-arrow-left:before{content:'\e132'}.glyphicon-circle-arrow-up:before{content:'\e133'}.glyphicon-circle-arrow-down:before{content:'\e134'}.glyphicon-globe:before{content:'\e135'}.glyphicon-wrench:before{content:'\e136'}.glyphicon-tasks:before{content:'\e137'}.glyphicon-filter:before{content:'\e138'}.glyphicon-briefcase:before{content:'\e139'}.glyphicon-fullscreen:before{content:'\e140'}.glyphicon-dashboard:before{content:'\e141'}.glyphicon-paperclip:before{content:'\e142'}.glyphicon-heart-empty:before{content:'\e143'}.glyphicon-link:before{content:'\e144'}.glyphicon-phone:before{content:'\e145'}.glyphicon-pushpin:before{content:'\e146'}.glyphicon-usd:before{content:'\e148'}.glyphicon-gbp:before{content:'\e149'}.glyphicon-sort:before{content:'\e150'}.glyphicon-sort-by-alphabet:before{content:'\e151'}.glyphicon-sort-by-alphabet-alt:before{content:'\e152'}.glyphicon-sort-by-order:before{content:'\e153'}.glyphicon-sort-by-order-alt:before{content:'\e154'}.glyphicon-sort-by-attributes:before{content:'\e155'}.glyphicon-sort-by-attributes-alt:before{content:'\e156'}.glyphicon-unchecked:before{content:'\e157'}.glyphicon-expand:before{content:'\e158'}.glyphicon-collapse-down:before{content:'\e159'}.glyphicon-collapse-up:before{content:'\e160'}.glyphicon-log-in:before{content:'\e161'}.glyphicon-flash:before{content:'\e162'}.glyphicon-log-out:before{content:'\e163'}.glyphicon-new-window:before{content:'\e164'}.glyphicon-record:before{content:'\e165'}.glyphicon-save:before{content:'\e166'}.glyphicon-open:before{content:'\e167'}.glyphicon-saved:before{content:'\e168'}.glyphicon-import:before{content:'\e169'}.glyphicon-export:before{content:'\e170'}.glyphicon-send:before{content:'\e171'}.glyphicon-floppy-disk:before{content:'\e172'}.glyphicon-floppy-saved:before{content:'\e173'}.glyphicon-floppy-remove:before{content:'\e174'}.glyphicon-floppy-save:before{content:'\e175'}.glyphicon-floppy-open:before{content:'\e176'}.glyphicon-credit-card:before{content:'\e177'}.glyphicon-transfer:before{content:'\e178'}.glyphicon-cutlery:before{content:'\e179'}.glyphicon-header:before{content:'\e180'}.glyphicon-compressed:before{content:'\e181'}.glyphicon-earphone:before{content:'\e182'}.glyphicon-phone-alt:before{content:'\e183'}.glyphicon-tower:before{content:'\e184'}.glyphicon-stats:before{content:'\e185'}.glyphicon-sd-video:before{content:'\e186'}.glyphicon-hd-video:before{content:'\e187'}.glyphicon-subtitles:before{content:'\e188'}.glyphicon-sound-stereo:before{content:'\e189'}.glyphicon-sound-dolby:before{content:'\e190'}.glyphicon-sound-5-1:before{content:'\e191'}.glyphicon-sound-6-1:before{content:'\e192'}.glyphicon-sound-7-1:before{content:'\e193'}.glyphicon-copyright-mark:before{content:'\e194'}.glyphicon-registration-mark:before{content:'\e195'}.glyphicon-cloud-download:before{content:'\e197'}.glyphicon-cloud-upload:before{content:'\e198'}.glyphicon-tree-conifer:before{content:'\e199'}.glyphicon-tree-deciduous:before{content:'\e200'}.glyphicon-cd:before{content:'\e201'}.glyphicon-save-file:before{content:'\e202'}.glyphicon-open-file:before{content:'\e203'}.glyphicon-level-up:before{content:'\e204'}.glyphicon-copy:before{content:'\e205'}.glyphicon-paste:before{content:'\e206'}.glyphicon-alert:before{content:'\e209'}.glyphicon-equalizer:before{content:'\e210'}.glyphicon-king:before{content:'\e211'}.glyphicon-queen:before{content:'\e212'}.glyphicon-pawn:before{content:'\e213'}.glyphicon-bishop:before{content:'\e214'}.glyphicon-knight:before{content:'\e215'}.glyphicon-baby-formula:before{content:'\e216'}.glyphicon-tent:before{content:'\26fa'}.glyphicon-blackboard:before{content:'\e218'}.glyphicon-bed:before{content:'\e219'}.glyphicon-apple:before{content:'\f8ff'}.glyphicon-erase:before{content:'\e221'}.glyphicon-hourglass:before{content:'\231b'}.glyphicon-lamp:before{content:'\e223'}.glyphicon-duplicate:before{content:'\e224'}.glyphicon-piggy-bank:before{content:'\e225'}.glyphicon-scissors:before{content:'\e226'}.glyphicon-bitcoin:before{content:'\e227'}.glyphicon-btc:before{content:'\e227'}.glyphicon-xbt:before{content:'\e227'}.glyphicon-yen:before{content:'\00a5'}.glyphicon-jpy:before{content:'\00a5'}.glyphicon-ruble:before{content:'\20bd'}.glyphicon-rub:before{content:'\20bd'}.glyphicon-scale:before{content:'\e230'}.glyphicon-ice-lolly:before{content:'\e231'}.glyphicon-ice-lolly-tasted:before{content:'\e232'}.glyphicon-education:before{content:'\e233'}.glyphicon-option-horizontal:before{content:'\e234'}.glyphicon-option-vertical:before{content:'\e235'}.glyphicon-menu-hamburger:before{content:'\e236'}.glyphicon-modal-window:before{content:'\e237'}.glyphicon-oil:before{content:'\e238'}.glyphicon-grain:before{content:'\e239'}.glyphicon-sunglasses:before{content:'\e240'}.glyphicon-text-size:before{content:'\e241'}.glyphicon-text-color:before{content:'\e242'}.glyphicon-text-background:before{content:'\e243'}.glyphicon-object-align-top:before{content:'\e244'}.glyphicon-object-align-bottom:before{content:'\e245'}.glyphicon-object-align-horizontal:before{content:'\e246'}.glyphicon-object-align-left:before{content:'\e247'}.glyphicon-object-align-vertical:before{content:'\e248'}.glyphicon-object-align-right:before{content:'\e249'}.glyphicon-triangle-right:before{content:'\e250'}.glyphicon-triangle-left:before{content:'\e251'}.glyphicon-triangle-bottom:before{content:'\e252'}.glyphicon-triangle-top:before{content:'\e253'}.glyphicon-console:before{content:'\e254'}.glyphicon-superscript:before{content:'\e255'}.glyphicon-subscript:before{content:'\e256'}.glyphicon-menu-left:before{content:'\e257'}.glyphicon-menu-right:before{content:'\e258'}.glyphicon-menu-down:before{content:'\e259'}.glyphicon-menu-up:before{content:'\e260'}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role='button']{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:0.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo, Monaco, Consolas, 'Courier New', monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width: 768px){.container{width:750px}}@media (min-width: 992px){.container{width:970px}}@media (min-width: 1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*='col-']{position:static;display:table-column;float:none}table td[class*='col-'],table th[class*='col-']{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{min-height:0.01%;overflow-x:auto}@media screen and (max-width: 767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type='search']{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type='radio'],input[type='checkbox']{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type='file']{display:block}input[type='range']{display:block;width:100%}select[multiple],select[size]{height:auto}input[type='file']:focus,input[type='radio']:focus,input[type='checkbox']:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type='radio'],.radio-inline input[type='radio'],.checkbox input[type='checkbox'],.checkbox-inline input[type='checkbox']{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type='radio'][disabled],input[type='checkbox'][disabled],input[type='radio'].disabled,input[type='checkbox'].disabled,fieldset[disabled] input[type='radio'],fieldset[disabled] input[type='checkbox']{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static,.form-group div[class*='textBox']>.control-label,.form-group div[class*='textArea']>.control-label,.form-group div[class*='datePicker']>.control-label{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-group div[class*='textBox']>.input-lg.control-label,.form-group div[class*='textArea']>.input-lg.control-label,.form-group div[class*='datePicker']>.input-lg.control-label,.form-control-static.input-sm,.form-group div[class*='textBox']>.input-sm.control-label,.form-group div[class*='textArea']>.input-sm.control-label,.form-group div[class*='datePicker']>.input-sm.control-label{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}textarea.form-group-sm .form-control,select[multiple].form-group-sm .form-control{height:auto}.form-group-sm .form-control-static,.form-group-sm .form-group div[class*='textBox']>.control-label,.form-group .form-group-sm div[class*='textBox']>.control-label,.form-group-sm .form-group div[class*='textArea']>.control-label,.form-group .form-group-sm div[class*='textArea']>.control-label,.form-group-sm .form-group div[class*='datePicker']>.control-label,.form-group .form-group-sm div[class*='datePicker']>.control-label{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}textarea.form-group-lg .form-control,select[multiple].form-group-lg .form-control{height:auto}.form-group-lg .form-control-static,.form-group-lg .form-group div[class*='textBox']>.control-label,.form-group .form-group-lg div[class*='textBox']>.control-label,.form-group-lg .form-group div[class*='textArea']>.control-label,.form-group .form-group-lg div[class*='textArea']>.control-label,.form-group-lg .form-group div[class*='datePicker']>.control-label,.form-group .form-group-lg div[class*='datePicker']>.control-label{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label ~ .form-control-feedback{top:25px}.has-feedback label.sr-only ~ .form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width: 768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static,.form-inline .form-group div[class*='textBox']>.control-label,.form-group .form-inline div[class*='textBox']>.control-label,.form-inline .form-group div[class*='textArea']>.control-label,.form-group .form-inline div[class*='textArea']>.control-label,.form-inline .form-group div[class*='datePicker']>.control-label,.form-group .form-inline div[class*='datePicker']>.control-label{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type='radio'],.form-inline .checkbox input[type='checkbox']{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width: 768px){.form-horizontal .form-group-lg .control-label{padding-top:14.333333px}}@media (min-width: 768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:0.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary,.datagrid-fullsearch.mx-grid .mx-grid-search-button{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button:hover,.btn-primary:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button:focus,.btn-primary.focus,.datagrid-fullsearch.mx-grid .focus.mx-grid-search-button,.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.dropdown-toggle.btn-primary,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.dropdown-toggle.btn-primary,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{background-image:none}.btn-primary.disabled,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button,.btn-primary[disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled],fieldset[disabled] .btn-primary,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button,.btn-primary.disabled:hover,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:hover,.btn-primary[disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:hover,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button:hover,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button:hover,.btn-primary.disabled:focus,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:focus,.btn-primary[disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button:focus,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button:focus,.btn-primary.disabled.focus,.datagrid-fullsearch.mx-grid .disabled.focus.mx-grid-search-button,.btn-primary[disabled].focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled].focus,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .datagrid-fullsearch.mx-grid .focus.mx-grid-search-button,.datagrid-fullsearch.mx-grid fieldset[disabled] .focus.mx-grid-search-button,.btn-primary.disabled:active,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:active,.btn-primary[disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.datagrid-fullsearch.mx-grid fieldset[disabled] .mx-grid-search-button:active,.btn-primary.disabled.active,.datagrid-fullsearch.mx-grid .disabled.active.mx-grid-search-button,.btn-primary[disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled].active,fieldset[disabled] .btn-primary.active,fieldset[disabled] .datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.datagrid-fullsearch.mx-grid fieldset[disabled] .active.mx-grid-search-button{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge,.datagrid-fullsearch.mx-grid .mx-grid-search-button .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:normal;color:#337ab7;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type='submit'].btn-block,input[type='reset'].btn-block,input[type='button'].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:'';border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width: 768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle='buttons']>.btn input[type='radio'],[data-toggle='buttons']>.btn-group>.btn input[type='radio'],[data-toggle='buttons']>.btn input[type='checkbox'],[data-toggle='buttons']>.btn-group>.btn input[type='checkbox']{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*='col-']{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type='radio'],.input-group-addon input[type='checkbox']{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width: 768px){.navbar{border-radius:4px}}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width: 480px) and (orientation: landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width: 768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media (min-width: 768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static,.navbar-form .form-group div[class*='textBox']>.control-label,.form-group .navbar-form div[class*='textBox']>.control-label,.navbar-form .form-group div[class*='textArea']>.control-label,.form-group .navbar-form div[class*='textArea']>.control-label,.navbar-form .form-group div[class*='datePicker']>.control-label,.form-group .navbar-form div[class*='datePicker']>.control-label{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type='radio'],.navbar-form .checkbox input[type='checkbox']{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width: 767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width: 768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width: 768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width: 768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right ~ .navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:'/\00a0'}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:0.2em 0.6em 0.3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:0.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width: 768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border 0.2s ease-in-out;-o-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:0.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:0.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:transparent;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out;-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%)}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:0.5}.modal-header{min-height:16.42857143px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:12px;font-weight:normal;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:0.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:'';border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:' ';border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:' ';border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:' ';border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:' ';border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d), (-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform 0.6s ease-in-out;-o-transition:-o-transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{left:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{left:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{left:0;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);filter:alpha(opacity=50);opacity:0.5}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:0.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width: 768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:' '}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width: 767px){.visible-xs-block{display:block !important}}@media (max-width: 767px){.visible-xs-inline{display:inline !important}}@media (max-width: 767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width: 1200px){.visible-lg-block{display:block !important}}@media (min-width: 1200px){.visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}[dir='rtl'] .flip.text-left{text-align:right}[dir='rtl'] .flip.text-right{text-align:left}[dir='rtl'] .list-unstyled{padding-right:0;padding-left:initial}[dir='rtl'] .list-inline{padding-right:0;padding-left:initial;margin-right:-5px;margin-left:0}[dir='rtl'] dd{margin-right:0;margin-left:initial}@media (min-width: 768px){[dir='rtl'] .dl-horizontal dt{float:right;clear:right;text-align:left}[dir='rtl'] .dl-horizontal dd{margin-right:180px;margin-left:0}}[dir='rtl'] blockquote{border-right:5px solid #eeeeee;border-left:0}[dir='rtl'] .blockquote-reverse,[dir='rtl'] blockquote.pull-left{padding-left:15px;padding-right:0;border-left:5px solid #eeeeee;border-right:0;text-align:left}[dir='rtl'] .col-xs-1,[dir='rtl'] .col-sm-1,[dir='rtl'] .col-md-1,[dir='rtl'] .col-lg-1,[dir='rtl'] .col-xs-2,[dir='rtl'] .col-sm-2,[dir='rtl'] .col-md-2,[dir='rtl'] .col-lg-2,[dir='rtl'] .col-xs-3,[dir='rtl'] .col-sm-3,[dir='rtl'] .col-md-3,[dir='rtl'] .col-lg-3,[dir='rtl'] .col-xs-4,[dir='rtl'] .col-sm-4,[dir='rtl'] .col-md-4,[dir='rtl'] .col-lg-4,[dir='rtl'] .col-xs-5,[dir='rtl'] .col-sm-5,[dir='rtl'] .col-md-5,[dir='rtl'] .col-lg-5,[dir='rtl'] .col-xs-6,[dir='rtl'] .col-sm-6,[dir='rtl'] .col-md-6,[dir='rtl'] .col-lg-6,[dir='rtl'] .col-xs-7,[dir='rtl'] .col-sm-7,[dir='rtl'] .col-md-7,[dir='rtl'] .col-lg-7,[dir='rtl'] .col-xs-8,[dir='rtl'] .col-sm-8,[dir='rtl'] .col-md-8,[dir='rtl'] .col-lg-8,[dir='rtl'] .col-xs-9,[dir='rtl'] .col-sm-9,[dir='rtl'] .col-md-9,[dir='rtl'] .col-lg-9,[dir='rtl'] .col-xs-10,[dir='rtl'] .col-sm-10,[dir='rtl'] .col-md-10,[dir='rtl'] .col-lg-10,[dir='rtl'] .col-xs-11,[dir='rtl'] .col-sm-11,[dir='rtl'] .col-md-11,[dir='rtl'] .col-lg-11,[dir='rtl'] .col-xs-12,[dir='rtl'] .col-sm-12,[dir='rtl'] .col-md-12,[dir='rtl'] .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}[dir='rtl'] .col-xs-1,[dir='rtl'] .col-xs-2,[dir='rtl'] .col-xs-3,[dir='rtl'] .col-xs-4,[dir='rtl'] .col-xs-5,[dir='rtl'] .col-xs-6,[dir='rtl'] .col-xs-7,[dir='rtl'] .col-xs-8,[dir='rtl'] .col-xs-9,[dir='rtl'] .col-xs-10,[dir='rtl'] .col-xs-11,[dir='rtl'] .col-xs-12{float:right}[dir='rtl'] .col-xs-12{width:100%}[dir='rtl'] .col-xs-11{width:91.66666667%}[dir='rtl'] .col-xs-10{width:83.33333333%}[dir='rtl'] .col-xs-9{width:75%}[dir='rtl'] .col-xs-8{width:66.66666667%}[dir='rtl'] .col-xs-7{width:58.33333333%}[dir='rtl'] .col-xs-6{width:50%}[dir='rtl'] .col-xs-5{width:41.66666667%}[dir='rtl'] .col-xs-4{width:33.33333333%}[dir='rtl'] .col-xs-3{width:25%}[dir='rtl'] .col-xs-2{width:16.66666667%}[dir='rtl'] .col-xs-1{width:8.33333333%}[dir='rtl'] .col-xs-pull-12{left:100%;right:auto}[dir='rtl'] .col-xs-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-xs-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-xs-pull-9{left:75%;right:auto}[dir='rtl'] .col-xs-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-xs-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-xs-pull-6{left:50%;right:auto}[dir='rtl'] .col-xs-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-xs-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-xs-pull-3{left:25%;right:auto}[dir='rtl'] .col-xs-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-xs-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-xs-pull-0{left:auto;right:auto}[dir='rtl'] .col-xs-push-12{right:100%;left:0}[dir='rtl'] .col-xs-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-xs-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-xs-push-9{right:75%;left:0}[dir='rtl'] .col-xs-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-xs-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-xs-push-6{right:50%;left:0}[dir='rtl'] .col-xs-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-xs-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-xs-push-3{right:25%;left:0}[dir='rtl'] .col-xs-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-xs-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-xs-push-0{right:auto;left:0}[dir='rtl'] .col-xs-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-xs-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-xs-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-xs-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-xs-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-xs-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-xs-offset-0{margin-right:0%;margin-left:0}@media (min-width: 768px){[dir='rtl'] .col-sm-1,[dir='rtl'] .col-sm-2,[dir='rtl'] .col-sm-3,[dir='rtl'] .col-sm-4,[dir='rtl'] .col-sm-5,[dir='rtl'] .col-sm-6,[dir='rtl'] .col-sm-7,[dir='rtl'] .col-sm-8,[dir='rtl'] .col-sm-9,[dir='rtl'] .col-sm-10,[dir='rtl'] .col-sm-11,[dir='rtl'] .col-sm-12{float:right}[dir='rtl'] .col-sm-12{width:100%}[dir='rtl'] .col-sm-11{width:91.66666667%}[dir='rtl'] .col-sm-10{width:83.33333333%}[dir='rtl'] .col-sm-9{width:75%}[dir='rtl'] .col-sm-8{width:66.66666667%}[dir='rtl'] .col-sm-7{width:58.33333333%}[dir='rtl'] .col-sm-6{width:50%}[dir='rtl'] .col-sm-5{width:41.66666667%}[dir='rtl'] .col-sm-4{width:33.33333333%}[dir='rtl'] .col-sm-3{width:25%}[dir='rtl'] .col-sm-2{width:16.66666667%}[dir='rtl'] .col-sm-1{width:8.33333333%}[dir='rtl'] .col-sm-pull-12{left:100%;right:auto}[dir='rtl'] .col-sm-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-sm-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-sm-pull-9{left:75%;right:auto}[dir='rtl'] .col-sm-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-sm-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-sm-pull-6{left:50%;right:auto}[dir='rtl'] .col-sm-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-sm-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-sm-pull-3{left:25%;right:auto}[dir='rtl'] .col-sm-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-sm-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-sm-pull-0{left:auto;right:auto}[dir='rtl'] .col-sm-push-12{right:100%;left:0}[dir='rtl'] .col-sm-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-sm-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-sm-push-9{right:75%;left:0}[dir='rtl'] .col-sm-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-sm-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-sm-push-6{right:50%;left:0}[dir='rtl'] .col-sm-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-sm-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-sm-push-3{right:25%;left:0}[dir='rtl'] .col-sm-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-sm-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-sm-push-0{right:auto;left:0}[dir='rtl'] .col-sm-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-sm-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-sm-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-sm-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-sm-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-sm-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-sm-offset-0{margin-right:0%;margin-left:0}}@media (min-width: 992px){[dir='rtl'] .col-md-1,[dir='rtl'] .col-md-2,[dir='rtl'] .col-md-3,[dir='rtl'] .col-md-4,[dir='rtl'] .col-md-5,[dir='rtl'] .col-md-6,[dir='rtl'] .col-md-7,[dir='rtl'] .col-md-8,[dir='rtl'] .col-md-9,[dir='rtl'] .col-md-10,[dir='rtl'] .col-md-11,[dir='rtl'] .col-md-12{float:right}[dir='rtl'] .col-md-12{width:100%}[dir='rtl'] .col-md-11{width:91.66666667%}[dir='rtl'] .col-md-10{width:83.33333333%}[dir='rtl'] .col-md-9{width:75%}[dir='rtl'] .col-md-8{width:66.66666667%}[dir='rtl'] .col-md-7{width:58.33333333%}[dir='rtl'] .col-md-6{width:50%}[dir='rtl'] .col-md-5{width:41.66666667%}[dir='rtl'] .col-md-4{width:33.33333333%}[dir='rtl'] .col-md-3{width:25%}[dir='rtl'] .col-md-2{width:16.66666667%}[dir='rtl'] .col-md-1{width:8.33333333%}[dir='rtl'] .col-md-pull-12{left:100%;right:auto}[dir='rtl'] .col-md-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-md-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-md-pull-9{left:75%;right:auto}[dir='rtl'] .col-md-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-md-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-md-pull-6{left:50%;right:auto}[dir='rtl'] .col-md-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-md-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-md-pull-3{left:25%;right:auto}[dir='rtl'] .col-md-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-md-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-md-pull-0{left:auto;right:auto}[dir='rtl'] .col-md-push-12{right:100%;left:0}[dir='rtl'] .col-md-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-md-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-md-push-9{right:75%;left:0}[dir='rtl'] .col-md-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-md-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-md-push-6{right:50%;left:0}[dir='rtl'] .col-md-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-md-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-md-push-3{right:25%;left:0}[dir='rtl'] .col-md-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-md-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-md-push-0{right:auto;left:0}[dir='rtl'] .col-md-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-md-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-md-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-md-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-md-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-md-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-md-offset-0{margin-right:0%;margin-left:0}}@media (min-width: 1200px){[dir='rtl'] .col-lg-1,[dir='rtl'] .col-lg-2,[dir='rtl'] .col-lg-3,[dir='rtl'] .col-lg-4,[dir='rtl'] .col-lg-5,[dir='rtl'] .col-lg-6,[dir='rtl'] .col-lg-7,[dir='rtl'] .col-lg-8,[dir='rtl'] .col-lg-9,[dir='rtl'] .col-lg-10,[dir='rtl'] .col-lg-11,[dir='rtl'] .col-lg-12{float:right}[dir='rtl'] .col-lg-12{width:100%}[dir='rtl'] .col-lg-11{width:91.66666667%}[dir='rtl'] .col-lg-10{width:83.33333333%}[dir='rtl'] .col-lg-9{width:75%}[dir='rtl'] .col-lg-8{width:66.66666667%}[dir='rtl'] .col-lg-7{width:58.33333333%}[dir='rtl'] .col-lg-6{width:50%}[dir='rtl'] .col-lg-5{width:41.66666667%}[dir='rtl'] .col-lg-4{width:33.33333333%}[dir='rtl'] .col-lg-3{width:25%}[dir='rtl'] .col-lg-2{width:16.66666667%}[dir='rtl'] .col-lg-1{width:8.33333333%}[dir='rtl'] .col-lg-pull-12{left:100%;right:auto}[dir='rtl'] .col-lg-pull-11{left:91.66666667%;right:auto}[dir='rtl'] .col-lg-pull-10{left:83.33333333%;right:auto}[dir='rtl'] .col-lg-pull-9{left:75%;right:auto}[dir='rtl'] .col-lg-pull-8{left:66.66666667%;right:auto}[dir='rtl'] .col-lg-pull-7{left:58.33333333%;right:auto}[dir='rtl'] .col-lg-pull-6{left:50%;right:auto}[dir='rtl'] .col-lg-pull-5{left:41.66666667%;right:auto}[dir='rtl'] .col-lg-pull-4{left:33.33333333%;right:auto}[dir='rtl'] .col-lg-pull-3{left:25%;right:auto}[dir='rtl'] .col-lg-pull-2{left:16.66666667%;right:auto}[dir='rtl'] .col-lg-pull-1{left:8.33333333%;right:auto}[dir='rtl'] .col-lg-pull-0{left:auto;right:auto}[dir='rtl'] .col-lg-push-12{right:100%;left:0}[dir='rtl'] .col-lg-push-11{right:91.66666667%;left:0}[dir='rtl'] .col-lg-push-10{right:83.33333333%;left:0}[dir='rtl'] .col-lg-push-9{right:75%;left:0}[dir='rtl'] .col-lg-push-8{right:66.66666667%;left:0}[dir='rtl'] .col-lg-push-7{right:58.33333333%;left:0}[dir='rtl'] .col-lg-push-6{right:50%;left:0}[dir='rtl'] .col-lg-push-5{right:41.66666667%;left:0}[dir='rtl'] .col-lg-push-4{right:33.33333333%;left:0}[dir='rtl'] .col-lg-push-3{right:25%;left:0}[dir='rtl'] .col-lg-push-2{right:16.66666667%;left:0}[dir='rtl'] .col-lg-push-1{right:8.33333333%;left:0}[dir='rtl'] .col-lg-push-0{right:auto;left:0}[dir='rtl'] .col-lg-offset-12{margin-right:100%;margin-left:0}[dir='rtl'] .col-lg-offset-11{margin-right:91.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-10{margin-right:83.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-9{margin-right:75%;margin-left:0}[dir='rtl'] .col-lg-offset-8{margin-right:66.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-7{margin-right:58.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-6{margin-right:50%;margin-left:0}[dir='rtl'] .col-lg-offset-5{margin-right:41.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-4{margin-right:33.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-3{margin-right:25%;margin-left:0}[dir='rtl'] .col-lg-offset-2{margin-right:16.66666667%;margin-left:0}[dir='rtl'] .col-lg-offset-1{margin-right:8.33333333%;margin-left:0}[dir='rtl'] .col-lg-offset-0{margin-right:0%;margin-left:0}}[dir='rtl'] caption{text-align:right}[dir='rtl'] th:not(.mx-left-aligned){text-align:right}@media screen and (max-width: 767px){[dir='rtl'] .table-responsive>.table-bordered{border:0}[dir='rtl'] .table-responsive>.table-bordered>thead>tr>th:first-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>th:first-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>th:first-child,[dir='rtl'] .table-responsive>.table-bordered>thead>tr>td:first-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>td:first-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>td:first-child{border-right:0;border-left:initial}[dir='rtl'] .table-responsive>.table-bordered>thead>tr>th:last-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>th:last-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>th:last-child,[dir='rtl'] .table-responsive>.table-bordered>thead>tr>td:last-child,[dir='rtl'] .table-responsive>.table-bordered>tbody>tr>td:last-child,[dir='rtl'] .table-responsive>.table-bordered>tfoot>tr>td:last-child{border-left:0;border-right:initial}}[dir='rtl'] .radio label,[dir='rtl'] .checkbox label{padding-right:20px;padding-left:initial}[dir='rtl'] .radio input[type='radio'],[dir='rtl'] .radio-inline input[type='radio'],[dir='rtl'] .checkbox input[type='checkbox'],[dir='rtl'] .checkbox-inline input[type='checkbox']{margin-right:-20px;margin-left:auto}[dir='rtl'] .radio-inline,[dir='rtl'] .checkbox-inline{padding-right:20px;padding-left:0}[dir='rtl'] .radio-inline+.radio-inline,[dir='rtl'] .checkbox-inline+.checkbox-inline{margin-right:10px;margin-left:0}[dir='rtl'] .has-feedback .form-control{padding-left:42.5px;padding-right:12px}[dir='rtl'] .form-control-feedback{left:0;right:auto}@media (min-width: 768px){[dir='rtl'] .form-inline label{padding-right:0;padding-left:initial}[dir='rtl'] .form-inline .radio input[type='radio'],[dir='rtl'] .form-inline .checkbox input[type='checkbox']{margin-right:0;margin-left:auto}}@media (min-width: 768px){[dir='rtl'] .form-horizontal .control-label{text-align:left}}[dir='rtl'] .form-horizontal .has-feedback .form-control-feedback{left:15px;right:auto}[dir='rtl'] .caret{margin-right:2px;margin-left:0}[dir='rtl'] .dropdown-menu{right:0;left:auto;float:left;text-align:right}[dir='rtl'] .dropdown-menu.pull-right{left:0;right:auto;float:right}[dir='rtl'] .dropdown-menu-right{left:auto;right:0}[dir='rtl'] .dropdown-menu-left{left:0;right:auto}@media (min-width: 768px){[dir='rtl'] .navbar-right .dropdown-menu{left:auto;right:0}[dir='rtl'] .navbar-right .dropdown-menu-left{left:0;right:auto}}[dir='rtl'] .btn-group>.btn,[dir='rtl'] .btn-group-vertical>.btn{float:right}[dir='rtl'] .btn-group .btn+.btn,[dir='rtl'] .btn-group .btn+.btn-group,[dir='rtl'] .btn-group .btn-group+.btn,[dir='rtl'] .btn-group .btn-group+.btn-group{margin-right:-1px;margin-left:0px}[dir='rtl'] .btn-toolbar{margin-right:-5px;margin-left:0px}[dir='rtl'] .btn-toolbar .btn-group,[dir='rtl'] .btn-toolbar .input-group{float:right}[dir='rtl'] .btn-toolbar>.btn,[dir='rtl'] .btn-toolbar>.btn-group,[dir='rtl'] .btn-toolbar>.input-group{margin-right:5px;margin-left:0px}[dir='rtl'] .btn-group>.btn:first-child{margin-right:0}[dir='rtl'] .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .btn-group>.btn:last-child:not(:first-child),[dir='rtl'] .btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:4px;border-bottom-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .btn-group>.btn-group{float:right}[dir='rtl'] .btn-group.btn-group-justified>.btn,[dir='rtl'] .btn-group.btn-group-justified>.btn-group{float:none}[dir='rtl'] .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}[dir='rtl'] .btn-group>.btn-group:first-child>.btn:last-child,[dir='rtl'] .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .btn .caret{margin-right:0}[dir='rtl'] .btn-group-vertical>.btn+.btn,[dir='rtl'] .btn-group-vertical>.btn+.btn-group,[dir='rtl'] .btn-group-vertical>.btn-group+.btn,[dir='rtl'] .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-right:0}[dir='rtl'] .input-group .form-control{float:right}[dir='rtl'] .input-group .form-control:first-child,[dir='rtl'] .input-group-addon:first-child,[dir='rtl'] .input-group-btn:first-child>.btn,[dir='rtl'] .input-group-btn:first-child>.btn-group>.btn,[dir='rtl'] .input-group-btn:first-child>.dropdown-toggle,[dir='rtl'] .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),[dir='rtl'] .input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .input-group-addon:first-child{border-left:0px;border-right:1px solid}[dir='rtl'] .input-group .form-control:last-child,[dir='rtl'] .input-group-addon:last-child,[dir='rtl'] .input-group-btn:last-child>.btn,[dir='rtl'] .input-group-btn:last-child>.btn-group>.btn,[dir='rtl'] .input-group-btn:last-child>.dropdown-toggle,[dir='rtl'] .input-group-btn:first-child>.btn:not(:first-child),[dir='rtl'] .input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .input-group-addon:last-child{border-left-width:1px;border-left-style:solid;border-right:0px}[dir='rtl'] .input-group-btn>.btn+.btn{margin-right:-1px;margin-left:auto}[dir='rtl'] .input-group-btn:first-child>.btn,[dir='rtl'] .input-group-btn:first-child>.btn-group{margin-left:-1px;margin-right:auto}[dir='rtl'] .input-group-btn:last-child>.btn,[dir='rtl'] .input-group-btn:last-child>.btn-group{margin-right:-1px;margin-left:auto}[dir='rtl'] .nav{padding-right:0;padding-left:initial}[dir='rtl'] .nav-tabs>li{float:right}[dir='rtl'] .nav-tabs>li>a{margin-left:auto;margin-right:-2px;border-radius:4px 4px 0 0}[dir='rtl'] .nav-pills>li{float:right}[dir='rtl'] .nav-pills>li>a{border-radius:4px}[dir='rtl'] .nav-pills>li+li{margin-right:2px;margin-left:auto}[dir='rtl'] .nav-stacked>li{float:none}[dir='rtl'] .nav-stacked>li+li{margin-right:0;margin-left:auto}[dir='rtl'] .nav-justified>.dropdown .dropdown-menu{right:auto}[dir='rtl'] .nav-tabs-justified>li>a{margin-left:0;margin-right:auto}@media (min-width: 768px){[dir='rtl'] .nav-tabs-justified>li>a{border-radius:4px 4px 0 0}}@media (min-width: 768px){[dir='rtl'] .navbar-header{float:right}}[dir='rtl'] .navbar-collapse{padding-right:15px;padding-left:15px}[dir='rtl'] .navbar-brand{float:right}@media (min-width: 768px){[dir='rtl'] .navbar>.container .navbar-brand,[dir='rtl'] .navbar>.container-fluid .navbar-brand{margin-right:-15px;margin-left:auto}}[dir='rtl'] .navbar-toggle{float:left;margin-left:15px;margin-right:auto}@media (max-width: 767px){[dir='rtl'] .navbar-nav .open .dropdown-menu>li>a,[dir='rtl'] .navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 25px 5px 15px}}@media (min-width: 768px){[dir='rtl'] .navbar-nav{float:right}[dir='rtl'] .navbar-nav>li{float:right}}@media (min-width: 768px){[dir='rtl'] .navbar-left.flip{float:right !important}[dir='rtl'] .navbar-right:last-child{margin-left:-15px;margin-right:auto}[dir='rtl'] .navbar-right.flip{float:left !important;margin-left:-15px;margin-right:auto}[dir='rtl'] .navbar-right .dropdown-menu{left:0;right:auto}}@media (min-width: 768px){[dir='rtl'] .navbar-text{float:right}[dir='rtl'] .navbar-text.navbar-right:last-child{margin-left:0;margin-right:auto}}[dir='rtl'] .pagination{padding-right:0}[dir='rtl'] .pagination>li>a,[dir='rtl'] .pagination>li>span{float:right;margin-right:-1px;margin-left:0px}[dir='rtl'] .pagination>li:first-child>a,[dir='rtl'] .pagination>li:first-child>span{margin-left:0;border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-left-radius:0;border-top-left-radius:0}[dir='rtl'] .pagination>li:last-child>a,[dir='rtl'] .pagination>li:last-child>span{margin-right:-1px;border-bottom-left-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-top-right-radius:0}[dir='rtl'] .pager{padding-right:0;padding-left:initial}[dir='rtl'] .pager .next>a,[dir='rtl'] .pager .next>span{float:left}[dir='rtl'] .pager .previous>a,[dir='rtl'] .pager .previous>span{float:right}[dir='rtl'] .nav-pills>li>a>.badge{margin-left:0px;margin-right:3px}[dir='rtl'] .list-group-item>.badge{float:left}[dir='rtl'] .list-group-item>.badge+.badge{margin-left:5px;margin-right:auto}[dir='rtl'] .alert-dismissable,[dir='rtl'] .alert-dismissible{padding-left:35px;padding-right:15px}[dir='rtl'] .alert-dismissable .close,[dir='rtl'] .alert-dismissible .close{right:auto;left:-21px}[dir='rtl'] .progress-bar{float:right}[dir='rtl'] .media>.pull-left{margin-right:10px}[dir='rtl'] .media>.pull-left.flip{margin-right:0;margin-left:10px}[dir='rtl'] .media>.pull-right{margin-left:10px}[dir='rtl'] .media>.pull-right.flip{margin-left:0;margin-right:10px}[dir='rtl'] .media-right,[dir='rtl'] .media>.pull-right{padding-right:10px;padding-left:initial}[dir='rtl'] .media-left,[dir='rtl'] .media>.pull-left{padding-left:10px;padding-right:initial}[dir='rtl'] .media-list{padding-right:0;padding-left:initial;list-style:none}[dir='rtl'] .list-group{padding-right:0;padding-left:initial}[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child th:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-right-radius:3px;border-top-left-radius:0}[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,[dir='rtl'] .panel>.table:first-child>thead:first-child>tr:first-child th:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,[dir='rtl'] .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,[dir='rtl'] .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-left-radius:3px;border-top-right-radius:0}[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px;border-top-right-radius:0}[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,[dir='rtl'] .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,[dir='rtl'] .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,[dir='rtl'] .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px;border-top-left-radius:0}[dir='rtl'] .panel>.table-bordered>thead>tr>th:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>th:first-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>th:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>th:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,[dir='rtl'] .panel>.table-bordered>thead>tr>td:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>td:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>td:first-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-right:0;border-left:none}[dir='rtl'] .panel>.table-bordered>thead>tr>th:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>th:last-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>th:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>th:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,[dir='rtl'] .panel>.table-bordered>thead>tr>td:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,[dir='rtl'] .panel>.table-bordered>tbody>tr>td:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,[dir='rtl'] .panel>.table-bordered>tfoot>tr>td:last-child,[dir='rtl'] .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:none;border-left:0}[dir='rtl'] .embed-responsive .embed-responsive-item,[dir='rtl'] .embed-responsive iframe,[dir='rtl'] .embed-responsive embed,[dir='rtl'] .embed-responsive object{right:0;left:auto}[dir='rtl'] .close{float:left}[dir='rtl'] .modal-footer{text-align:left}[dir='rtl'] .modal-footer.flip{text-align:right}[dir='rtl'] .modal-footer .btn+.btn{margin-left:auto;margin-right:5px}[dir='rtl'] .modal-footer .btn-group .btn+.btn{margin-right:-1px;margin-left:auto}[dir='rtl'] .modal-footer .btn-block+.btn-block{margin-right:0;margin-left:auto}[dir='rtl'] .popover{left:auto;text-align:right}[dir='rtl'] .popover.top>.arrow{right:50%;left:auto;margin-right:-11px;margin-left:auto}[dir='rtl'] .popover.top>.arrow:after{margin-right:-10px;margin-left:auto}[dir='rtl'] .popover.bottom>.arrow{right:50%;left:auto;margin-right:-11px;margin-left:auto}[dir='rtl'] .popover.bottom>.arrow:after{margin-right:-10px;margin-left:auto}[dir='rtl'] .carousel-control{right:0;bottom:0}[dir='rtl'] .carousel-control.left{right:auto;left:0;background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.5) 0%), color-stop(rgba(0,0,0,0.0001) 100%));background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}[dir='rtl'] .carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.0001) 0%), color-stop(rgba(0,0,0,0.5) 100%));background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}[dir='rtl'] .carousel-control .icon-prev,[dir='rtl'] .carousel-control .glyphicon-chevron-left{left:50%;right:auto;margin-right:-10px}[dir='rtl'] .carousel-control .icon-next,[dir='rtl'] .carousel-control .glyphicon-chevron-right{right:50%;left:auto;margin-left:-10px}[dir='rtl'] .carousel-indicators{right:50%;left:0;margin-right:-30%;margin-left:0;padding-left:0}@media screen and (min-width: 768px){[dir='rtl'] .carousel-control .glyphicon-chevron-left,[dir='rtl'] .carousel-control .icon-prev{margin-left:0;margin-right:-15px}[dir='rtl'] .carousel-control .glyphicon-chevron-right,[dir='rtl'] .carousel-control .icon-next{margin-left:0;margin-right:-15px}[dir='rtl'] .carousel-caption{left:20%;right:20%;padding-bottom:30px}}[dir='rtl'] .pull-right.flip{float:left !important}[dir='rtl'] .pull-left.flip{float:right !important}.dijitReset{margin:0;border:0;padding:0;font:inherit;line-height:normal;color:inherit}.dj_a11y .dijitReset{-moz-appearance:none}.dijitInline{display:inline-block;border:0;padding:0;vertical-align:middle}table.dijitInline{display:inline-table;box-sizing:content-box;-moz-box-sizing:content-box}.dijitHidden{position:absolute;visibility:hidden}.dijitHidden *{visibility:hidden !important}.dijitVisible{display:block !important;position:relative;visibility:visible}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer{overflow:hidden;float:none !important;position:relative}.dj_ie7 .dijitInputContainer{float:left !important;clear:left;display:inline-block !important}.dj_ie .dijitSelect input,.dj_ie input.dijitTextBox,.dj_ie .dijitTextBox input{font-size:100%}.dijitSelect .dijitButtonText{float:left;vertical-align:top}TABLE.dijitSelect{padding:0 !important;border-collapse:separate}.dijitTextBox .dijitSpinnerButtonContainer,.dijitTextBox .dijitArrowButtonContainer,.dijitValidationTextBox .dijitValidationContainer{float:right;text-align:center}.dijitSelect input.dijitInputField,.dijitTextBox input.dijitInputField{padding-left:0 !important;padding-right:0 !important}.dijitValidationTextBox .dijitValidationContainer{display:none}.dijitTeeny{font-size:1px;line-height:1px}.dijitOffScreen{position:absolute !important;left:-10000px !important;top:-10000px !important}.dijitPopup{position:absolute;background-color:transparent;margin:0;border:0;padding:0;-webkit-overflow-scrolling:touch}.dijitPositionOnly{padding:0 !important;border:0 !important;background-color:transparent !important;background-image:none !important;height:auto !important;width:auto !important}.dijitNonPositionOnly{float:none !important;position:static !important;margin:0 0 0 0 !important;vertical-align:middle !important}.dijitBackgroundIframe{position:absolute;left:0;top:0;width:100%;height:100%;z-index:-1;border:0;padding:0;margin:0}.dijitDisplayNone{display:none !important}.dijitContainer{overflow:hidden}.dj_a11y .dijitIcon,.dj_a11y div.dijitArrowButtonInner,.dj_a11y span.dijitArrowButtonInner,.dj_a11y img.dijitArrowButtonInner,.dj_a11y .dijitCalendarIncrementControl,.dj_a11y .dijitTreeExpando{display:none}.dijitSpinner div.dijitArrowButtonInner{display:block}.dj_a11y .dijitA11ySideArrow{display:inline !important;cursor:pointer}.dj_a11y .dijitCalendarDateLabel{padding:1px;border:0px !important}.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel{border-style:solid !important;border-width:1px !important;padding:0}.dj_a11y .dijitCalendarDateTemplate{padding-bottom:0.1em !important;border:0px !important}.dj_a11y .dijitButtonNode{border:black outset medium !important;padding:0 !important}.dj_a11y .dijitArrowButton{padding:0 !important}.dj_a11y .dijitButtonContents{margin:0.15em}.dj_a11y .dijitTextBoxReadOnly .dijitInputField,.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode{border-style:outset !important;border-width:medium !important;border-color:#999 !important;color:#999 !important}.dijitButtonNode *{vertical-align:middle}.dijitSelect .dijitArrowButtonInner,.dijitButtonNode .dijitArrowButtonInner{background:no-repeat center;width:12px;height:12px;direction:ltr}.dijitLeft{background-position:left top;background-repeat:no-repeat}.dijitStretch{white-space:nowrap;background-repeat:repeat-x}.dijitRight{background-position:right top;background-repeat:no-repeat}.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode{opacity:0.5}.dijitToggleButton,.dijitButton,.dijitDropDownButton,.dijitComboButton{margin:0.2em;vertical-align:middle}.dijitButtonContents{display:block}td.dijitButtonContents{display:table-cell}.dijitButtonNode img{vertical-align:middle}.dijitToolbar .dijitComboButton{border-collapse:separate}.dijitToolbar .dijitToggleButton,.dijitToolbar .dijitButton,.dijitToolbar .dijitDropDownButton,.dijitToolbar .dijitComboButton{margin:0}.dijitToolbar .dijitButtonContents{padding:1px 2px}.dj_webkit .dijitToolbar .dijitDropDownButton{padding-left:0.3em}.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner{padding:0}.dijitSelect{border:1px solid gray}.dijitButtonNode{border:1px solid gray;margin:0;line-height:normal;vertical-align:middle;text-align:center;white-space:nowrap}.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer{line-height:inherit}.dijitTextBox .dijitButtonNode{border-width:0}.dijitSelect,.dijitSelect *,.dijitButtonNode,.dijitButtonNode *{cursor:pointer;-webkit-tap-highlight-color:transparent}.dj_ie .dijitButtonNode{zoom:1}.dj_ie .dijitButtonNode button{overflow:visible}div.dijitArrowButton{float:right}.dijitTextBox{border:solid black 1px;width:15em;vertical-align:middle}.dijitTextBoxReadOnly,.dijitTextBoxDisabled{color:gray}.dj_safari .dijitTextBoxDisabled input{color:#B0B0B0}.dj_safari textarea.dijitTextAreaDisabled{color:#333}.dj_gecko .dijitTextBoxReadOnly input.dijitInputField,.dj_gecko .dijitTextBoxDisabled input{-moz-user-input:none}.dijitPlaceHolder{color:#AAAAAA;font-style:italic;position:absolute;top:0;left:0;white-space:nowrap;pointer-events:none}.dijitTimeTextBox{width:8em}.dijitTextBox input:focus{outline:none}.dijitTextBoxFocused{outline:5px -webkit-focus-ring-color}.dijitSelect input,.dijitTextBox input{float:left}.dj_ie6 input.dijitTextBox,.dj_ie6 .dijitTextBox input{float:none}.dijitInputInner{border:0 !important;background-color:transparent !important;width:100% !important;padding-left:0 !important;padding-right:0 !important;margin-left:0 !important;margin-right:0 !important}.dj_a11y .dijitTextBox input{margin:0 !important}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner{text-indent:-2em !important;direction:ltr !important;text-align:left !important;height:auto !important}.dj_ie .dijitSelect input,.dj_ie .dijitTextBox input,.dj_ie input.dijitTextBox{overflow-y:visible;line-height:normal}.dijitSelect .dijitSelectLabel span{line-height:100%}.dj_ie .dijitSelect .dijitSelectLabel{line-height:normal}.dj_ie6 .dijitSelect .dijitSelectLabel,.dj_ie7 .dijitSelect .dijitSelectLabel,.dj_ie8 .dijitSelect .dijitSelectLabel,.dj_iequirks .dijitSelect .dijitSelectLabel,.dijitSelect td,.dj_ie6 .dijitSelect input,.dj_iequirks .dijitSelect input,.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie6 .dijitTextBox input,.dj_ie6 input.dijitTextBox,.dj_iequirks .dijitTextBox input.dijitValidationInner,.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,.dj_iequirks .dijitTextBox input.dijitInputInner,.dj_iequirks input.dijitTextBox{line-height:100%}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner{text-indent:0 !important;width:1em !important;color:black !important}.dijitValidationTextBoxError .dijitValidationContainer{display:inline;cursor:default}.dijitSpinner .dijitSpinnerButtonContainer,.dijitComboBox .dijitArrowButtonContainer{border-width:0 0 0 1px !important}.dj_a11y .dijitSelect .dijitArrowButtonContainer,.dijitToolbar .dijitComboBox .dijitArrowButtonContainer{border-width:0 !important}.dijitComboBoxMenu{list-style-type:none}.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode{border-width:0}.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode{clear:both}.dj_ie .dijitToolbar .dijitComboBox{vertical-align:middle}.dijitTextBox .dijitSpinnerButtonContainer{width:1em;position:relative !important;overflow:hidden}.dijitSpinner .dijitSpinnerButtonInner{width:1em;visibility:hidden !important;overflow-x:hidden}.dijitComboBox .dijitButtonNode,.dijitSpinnerButtonContainer .dijitButtonNode{border-width:0}.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode{border-width:0px !important;border-style:solid !important}.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,.dj_a11y .dijitSpinner .dijitArrowButtonInner,.dj_a11y .dijitSpinnerButtonContainer input{width:1em !important}.dj_a11y .dijitSpinner .dijitArrowButtonInner{margin:0 auto !important}.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{padding-left:0.3em !important;padding-right:0.3em !important;margin-left:0.3em !important;margin-right:0.3em !important;width:1.4em !important}.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{padding-left:0 !important;padding-right:0 !important;width:1em !important}.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{margin-left:0.1em !important;margin-right:0.1em !important;width:1em !important}.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{margin-left:0 !important;margin-right:0 !important;width:2em !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{padding:0;position:absolute !important;right:0;float:none;height:50%;width:100%;bottom:auto;left:0;right:auto}.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{width:auto}.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton{overflow:visible !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton{top:50%;border-top-width:1px !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton{top:0}.dijitSpinner .dijitArrowButtonInner{margin:auto;overflow-x:hidden;height:100% !important}.dj_iequirks .dijitSpinner .dijitArrowButtonInner{height:auto !important}.dijitSpinner .dijitArrowButtonInner .dijitInputField{-moz-transform:scale(0.5);-moz-transform-origin:center top;-webkit-transform:scale(0.5);-webkit-transform-origin:center top;-o-transform:scale(0.5);-o-transform-origin:center top;transform:scale(0.5);transform-origin:left top;padding-top:0;padding-bottom:0;padding-left:0 !important;padding-right:0 !important;width:100%;visibility:hidden}.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField{zoom:50%}.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner{overflow:hidden}.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{width:100%}.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton{width:1em}.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField{vertical-align:top;visibility:visible}.dj_a11y .dijitSpinnerButtonContainer{width:1em}.dijitCheckBox,.dijitRadio,.dijitCheckBoxInput{padding:0;border:0;width:16px;height:16px;background-position:center center;background-repeat:no-repeat;overflow:hidden}.dijitCheckBox input,.dijitRadio input{margin:0;padding:0;display:block}.dijitCheckBoxInput{opacity:0}.dj_ie .dijitCheckBoxInput{filter:alpha(opacity=0)}.dj_a11y .dijitCheckBox,.dj_a11y .dijitRadio{width:auto !important;height:auto !important}.dj_a11y .dijitCheckBoxInput{opacity:1;filter:none;width:auto;height:auto}.dj_a11y .dijitFocusedLabel{border:1px dotted;outline:0px !important}.dijitProgressBar{z-index:0}.dijitProgressBarEmpty{position:relative;overflow:hidden;border:1px solid black;z-index:0}.dijitProgressBarFull{position:absolute;overflow:hidden;z-index:-1;top:0;width:100%}.dj_ie6 .dijitProgressBarFull{height:1.6em}.dijitProgressBarTile{position:absolute;overflow:hidden;top:0;left:0;bottom:0;right:0;margin:0;padding:0;width:100%;height:auto;background-color:#aaa;background-attachment:fixed}.dj_a11y .dijitProgressBarTile{border-width:2px;border-style:solid;background-color:transparent !important}.dj_ie6 .dijitProgressBarTile{position:static;height:1.6em}.dijitProgressBarIndeterminateHighContrastImage{display:none}.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage{display:block;position:absolute;top:0;bottom:0;margin:0;padding:0;width:100%;height:auto}.dijitProgressBarLabel{display:block;position:static;width:100%;text-align:center;background-color:transparent !important}.dijitTooltip{position:absolute;z-index:2000;display:block;left:0;top:-10000px;overflow:visible}.dijitTooltipContainer{border:solid black 2px;background:#b8b5b5;color:black;font-size:small}.dijitTooltipFocusNode{padding:2px 2px 2px 2px}.dijitTooltipConnector{position:absolute}.dj_a11y .dijitTooltipConnector{display:none}.dijitTooltipData{display:none}.dijitLayoutContainer{position:relative;display:block;overflow:hidden}.dijitAlignTop,.dijitAlignBottom,.dijitAlignLeft,.dijitAlignRight{position:absolute;overflow:hidden}body .dijitAlignClient{position:absolute}.dijitBorderContainer,.dijitBorderContainerNoGutter{position:relative;overflow:hidden;z-index:0}.dijitBorderContainerPane,.dijitBorderContainerNoGutterPane{position:absolute !important;z-index:2}.dijitBorderContainer>.dijitTextArea{resize:none}.dijitGutter{position:absolute;font-size:1px}.dijitSplitter{position:absolute;overflow:hidden;z-index:10;background-color:#fff;border-color:gray;border-style:solid;border-width:0}.dj_ie .dijitSplitter{z-index:1}.dijitSplitterActive{z-index:11 !important}.dijitSplitterCover{position:absolute;z-index:-1;top:0;left:0;width:100%;height:100%}.dijitSplitterCoverActive{z-index:3 !important}.dj_ie .dijitSplitterCover{background:white;opacity:0}.dj_ie6 .dijitSplitterCover,.dj_ie7 .dijitSplitterCover,.dj_ie8 .dijitSplitterCover{filter:alpha(opacity=0)}.dijitSplitterH{height:7px;border-top:1px;border-bottom:1px;cursor:row-resize;-webkit-tap-highlight-color:transparent}.dijitSplitterV{width:7px;border-left:1px;border-right:1px;cursor:col-resize;-webkit-tap-highlight-color:transparent}.dijitSplitContainer{position:relative;overflow:hidden;display:block}.dijitSplitPane{position:absolute}.dijitSplitContainerSizerH,.dijitSplitContainerSizerV{position:absolute;font-size:1px;background-color:ThreeDFace;border:1px solid;border-color:ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;margin:0}.dijitSplitContainerSizerH .thumb,.dijitSplitterV .dijitSplitterThumb{overflow:hidden;position:absolute;top:49%}.dijitSplitContainerSizerV .thumb,.dijitSplitterH .dijitSplitterThumb{position:absolute;left:49%}.dijitSplitterShadow,.dijitSplitContainerVirtualSizerH,.dijitSplitContainerVirtualSizerV{font-size:1px;background-color:ThreeDShadow;-moz-opacity:0.5;opacity:0.5;filter:Alpha(Opacity=50);margin:0}.dijitSplitContainerSizerH,.dijitSplitContainerVirtualSizerH{cursor:col-resize}.dijitSplitContainerSizerV,.dijitSplitContainerVirtualSizerV{cursor:row-resize}.dj_a11y .dijitSplitterH{border-top:1px solid #d3d3d3 !important;border-bottom:1px solid #d3d3d3 !important}.dj_a11y .dijitSplitterV{border-left:1px solid #d3d3d3 !important;border-right:1px solid #d3d3d3 !important}.dijitContentPane{display:block;overflow:auto;-webkit-overflow-scrolling:touch}.dijitContentPaneSingleChild{overflow:hidden}.dijitContentPaneLoading .dijitIconLoading,.dijitContentPaneError .dijitIconError{margin-right:9px}.dijitTitlePane{display:block;overflow:hidden}.dijitFieldset{border:1px solid gray}.dijitTitlePaneTitle,.dijitFieldsetTitle{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitTitlePaneTitleFixedOpen,.dijitTitlePaneTitleFixedClosed,.dijitFieldsetTitleFixedOpen,.dijitFieldsetTitleFixedClosed{cursor:default}.dijitTitlePaneTitle *{vertical-align:middle}.dijitTitlePane .dijitArrowNodeInner,.dijitFieldset .dijitArrowNodeInner{display:none}.dj_a11y .dijitTitlePane .dijitArrowNodeInner,.dj_a11y .dijitFieldset .dijitArrowNodeInner{display:inline;font-family:monospace}.dj_a11y .dijitTitlePane .dijitArrowNode,.dj_a11y .dijitFieldset .dijitArrowNode{display:none}.dijitTitlePaneTitleFixedOpen .dijitArrowNode,.dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner,.dijitTitlePaneTitleFixedClosed .dijitArrowNode,.dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner,.dijitFieldsetTitleFixedOpen .dijitArrowNode,.dijitFieldsetTitleFixedOpen .dijitArrowNodeInner,.dijitFieldsetTitleFixedClosed .dijitArrowNode,.dijitFieldsetTitleFixedClosed .dijitArrowNodeInner{display:none !important}.dj_ie6 .dijitTitlePaneContentOuter,.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle{zoom:1}.dijitColorPalette{border:1px solid #999;background:#fff;position:relative}.dijitColorPalette .dijitPaletteTable{padding:2px 3px 3px 3px;position:relative;overflow:hidden;outline:0;border-collapse:separate}.dj_ie6 .dijitColorPalette .dijitPaletteTable,.dj_ie7 .dijitColorPalette .dijitPaletteTable,.dj_iequirks .dijitColorPalette .dijitPaletteTable{padding:0;margin:2px 3px 3px 3px}.dijitColorPalette .dijitPaletteCell{font-size:1px;vertical-align:middle;text-align:center;background:none}.dijitColorPalette .dijitPaletteImg{padding:1px;border:1px solid #999;margin:2px 1px;cursor:default;font-size:1px}.dj_gecko .dijitColorPalette .dijitPaletteImg{padding-bottom:0}.dijitColorPalette .dijitColorPaletteSwatch{width:14px;height:12px}.dijitPaletteTable td{padding:0}.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg{border:1px solid #000}.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg{border:2px solid #000;margin:1px 0}.dj_a11y .dijitColorPalette .dijitPaletteTable,.dj_a11y .dijitColorPalette .dijitPaletteTable *{background-color:transparent !important}.dijitAccordionContainer{border:1px solid #b7b7b7;border-top:0 !important}.dijitAccordionTitle{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitAccordionTitleSelected{cursor:default}.dijitAccordionTitle .arrowTextUp,.dijitAccordionTitle .arrowTextDown{display:none;font-size:0.65em;font-weight:normal !important}.dj_a11y .dijitAccordionTitle .arrowTextUp,.dj_a11y .dijitAccordionTitleSelected .arrowTextDown{display:inline}.dj_a11y .dijitAccordionTitleSelected .arrowTextUp{display:none}.dijitAccordionChildWrapper{overflow:hidden}.dijitCalendarContainer table{width:auto;clear:both}.dijitCalendarContainer th,.dijitCalendarContainer td{padding:0;vertical-align:middle}.dijitCalendarMonthContainer{text-align:center}.dijitCalendarDecrementArrow{float:left}.dijitCalendarIncrementArrow{float:right}.dijitCalendarYearLabel{white-space:nowrap}.dijitCalendarNextYear{margin:0 0 0 0.55em}.dijitCalendarPreviousYear{margin:0 0.55em 0 0}.dijitCalendarIncrementControl{vertical-align:middle}.dijitCalendarIncrementControl,.dijitCalendarDateTemplate,.dijitCalendarMonthLabel,.dijitCalendarPreviousYear,.dijitCalendarNextYear{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitCalendarDisabledDate{color:gray;text-decoration:line-through;cursor:default}.dijitSpacer{position:relative;height:1px;overflow:hidden;visibility:hidden}.dijitCalendarMonthMenu .dijitCalendarMonthLabel{text-align:center}.dijitMenu{border:1px solid black;background-color:white}.dijitMenuTable{border-collapse:collapse;border-width:0;background-color:white}.dj_webkit .dijitMenuTable td[colspan="2"]{border-right:hidden}.dijitMenuItem{text-align:left;white-space:nowrap;padding:.1em .2em;cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitMenuItem:focus{outline:none}.dijitMenuPassive .dijitMenuItemHover,.dijitMenuItemSelected{background-color:black;color:white}.dijitMenuItemIcon,.dijitMenuExpand{background-repeat:no-repeat}.dijitMenuItemDisabled *{opacity:0.5;cursor:default}.dj_ie .dj_a11y .dijitMenuItemDisabled,.dj_ie .dj_a11y .dijitMenuItemDisabled *,.dj_ie .dijitMenuItemDisabled *{color:gray;filter:alpha(opacity=35)}.dijitMenuItemLabel{vertical-align:middle}.dj_a11y .dijitMenuItemSelected{border:1px dotted black !important}.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel{border-width:1px;border-style:solid}.dj_ie8 .dj_a11y .dijitMenuItemLabel{position:static}.dijitMenuExpandA11y{display:none}.dj_a11y .dijitMenuExpandA11y{display:inline}.dijitMenuSeparator td{border:0;padding:0}.dijitMenuSeparatorTop{height:50%;margin:0;margin-top:3px;font-size:1px}.dijitMenuSeparatorBottom{height:50%;margin:0;margin-bottom:3px;font-size:1px}.dijitMenuItemIconChar{display:none;visibility:hidden}.dj_a11y .dijitMenuItemIconChar{display:inline}.dijitCheckedMenuItemChecked .dijitMenuItemIconChar,.dijitRadioMenuItemChecked .dijitMenuItemIconChar{visibility:visible}.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem{margin:0}.dijitStackController .dijitToggleButtonChecked *{cursor:default}.dijitTabContainer{z-index:0;overflow:visible}.dj_ie6 .dijitTabContainer{overflow:hidden}.dijitTabContainerNoLayout{width:100%}.dijitTabContainerBottom-tabs,.dijitTabContainerTop-tabs,.dijitTabContainerLeft-tabs,.dijitTabContainerRight-tabs{z-index:1;overflow:visible !important}.dijitTabController{z-index:1}.dijitTabContainerBottom-container,.dijitTabContainerTop-container,.dijitTabContainerLeft-container,.dijitTabContainerRight-container{z-index:0;overflow:hidden;border:1px solid black}.nowrapTabStrip{width:50000px;display:block;position:relative;text-align:left;z-index:1}.dijitTabListWrapper{overflow:hidden;z-index:1}.dj_a11y .tabStripButton img{display:none}.dijitTabContainerTop-tabs{border-bottom:1px solid black}.dijitTabContainerTop-container{border-top:0}.dijitTabContainerLeft-tabs{border-right:1px solid black;float:left}.dijitTabContainerLeft-container{border-left:0}.dijitTabContainerBottom-tabs{border-top:1px solid black}.dijitTabContainerBottom-container{border-bottom:0}.dijitTabContainerRight-tabs{border-left:1px solid black;float:left}.dijitTabContainerRight-container{border-right:0}div.dijitTabDisabled,.dj_ie div.dijitTabDisabled{cursor:auto}.dijitTab{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;z-index:3}.dijitTab *{vertical-align:middle}.dijitTabChecked{cursor:default}.dijitTabContainerTop-tabs .dijitTab{top:1px}.dijitTabContainerBottom-tabs .dijitTab{top:-1px}.dijitTabContainerLeft-tabs .dijitTab{left:1px}.dijitTabContainerRight-tabs .dijitTab{left:-1px}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab{display:inline-block}.tabStripButton{z-index:12}.dijitTabButtonDisabled .tabStripButton{display:none}.dijitTabCloseButton{margin-left:1em}.dijitTabCloseText{display:none}.dijitTab .tabLabel{min-height:15px;display:inline-block}.dijitNoIcon{display:none}.dj_ie6 .dijitTab .dijitNoIcon{display:inline;height:15px;width:1px}.dj_a11y .dijitTabCloseButton{background-image:none !important;width:auto !important;height:auto !important}.dj_a11y .dijitTabCloseText{display:inline}.dijitTabPane,.dijitStackContainer-child,.dijitAccordionContainer-child{border:none !important}.dijitInlineEditBoxDisplayMode{border:1px solid transparent;cursor:text}.dj_a11y .dijitInlineEditBoxDisplayMode,.dj_ie6 .dijitInlineEditBoxDisplayMode{border:none}.dijitInlineEditBoxDisplayModeHover,.dj_a11y .dijitInlineEditBoxDisplayModeHover,.dj_ie6 .dijitInlineEditBoxDisplayModeHover{background-color:#e2ebf2;border:solid 1px black}.dijitInlineEditBoxDisplayModeDisabled{cursor:default}.dijitTree{overflow:auto;-webkit-tap-highlight-color:transparent}.dijitTreeContainer{float:left}.dijitTreeIndent{width:19px}.dijitTreeRow,.dijitTreeContent{white-space:nowrap}.dj_ie .dijitTreeLabel:focus{outline:1px dotted black}.dijitTreeRow img{vertical-align:middle}.dijitTreeContent{cursor:default}.dijitExpandoText{display:none}.dj_a11y .dijitExpandoText{display:inline;padding-left:10px;padding-right:10px;font-family:monospace;border-style:solid;border-width:thin;cursor:pointer}.dijitTreeLabel{margin:0 4px}.dijitDialog{position:absolute;z-index:999;overflow:hidden}.dijitDialogTitleBar{cursor:move}.dijitDialogFixed .dijitDialogTitleBar{cursor:default}.dijitDialogCloseIcon{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitDialogPaneContent{-webkit-overflow-scrolling:touch}.dijitDialogUnderlayWrapper{position:absolute;left:0;top:0;z-index:998;display:none;background:transparent !important}.dijitDialogUnderlay{background:#eee;opacity:0.5}.dj_ie .dijitDialogUnderlay{filter:alpha(opacity=50)}.dj_a11y .dijitSpinnerButtonContainer,.dj_a11y .dijitDialog{opacity:1 !important;background-color:white !important}.dijitDialog .closeText{display:none;position:absolute}.dj_a11y .dijitDialog .closeText{display:inline}.dijitSliderMoveable{z-index:99;position:absolute !important;display:block;vertical-align:middle}.dijitSliderMoveableH{right:0}.dijitSliderMoveableV{right:50%}.dj_a11y div.dijitSliderImageHandle,.dijitSliderImageHandle{margin:0;padding:0;position:relative !important;border:8px solid gray;width:0;height:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.dj_iequirks .dj_a11y .dijitSliderImageHandle{font-size:0}.dj_ie7 .dijitSliderImageHandle{overflow:hidden}.dj_ie7 .dj_a11y .dijitSliderImageHandle{overflow:visible}.dj_a11y .dijitSliderFocused .dijitSliderImageHandle{border:4px solid #000;height:8px;width:8px}.dijitSliderImageHandleV{top:-8px;right:-50%}.dijitSliderImageHandleH{left:50%;top:-5px;vertical-align:top}.dijitSliderBar{border-style:solid;border-color:black;cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitSliderBarContainerV{position:relative;height:100%;z-index:1}.dijitSliderBarContainerH{position:relative;z-index:1}.dijitSliderBarH{height:4px;border-width:1px 0}.dijitSliderBarV{width:4px;border-width:0 1px}.dijitSliderProgressBar{background-color:red;z-index:1}.dijitSliderProgressBarV{position:static !important;height:0;vertical-align:top;text-align:left}.dijitSliderProgressBarH{position:absolute !important;width:0;vertical-align:middle;overflow:visible}.dijitSliderRemainingBar{overflow:hidden;background-color:transparent;z-index:1}.dijitSliderRemainingBarV{height:100%;text-align:left}.dijitSliderRemainingBarH{width:100% !important}.dijitSliderBumper{overflow:hidden;z-index:1}.dijitSliderBumperV{width:4px;height:8px;border-width:0 1px}.dijitSliderBumperH{width:8px;height:4px;border-width:1px 0}.dijitSliderBottomBumper,.dijitSliderLeftBumper{background-color:red}.dijitSliderTopBumper,.dijitSliderRightBumper{background-color:transparent}.dijitSliderDecoration{text-align:center}.dijitSliderDecorationC,.dijitSliderDecorationV{position:relative}.dijitSliderDecorationH{width:100%}.dijitSliderDecorationV{height:100%;white-space:nowrap}.dijitSliderButton{font-family:monospace;margin:0;padding:0;display:block}.dj_a11y .dijitSliderButtonInner{visibility:visible !important}.dijitSliderButtonContainer{text-align:center;height:0}.dijitSliderButtonContainer *{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitSlider .dijitButtonNode{padding:0;display:block}.dijitRuleContainer{position:relative;overflow:visible}.dijitRuleContainerV{height:100%;line-height:0;float:left;text-align:left}.dj_opera .dijitRuleContainerV{line-height:2%}.dj_ie .dijitRuleContainerV{line-height:normal}.dj_gecko .dijitRuleContainerV{margin:0 0 1px 0}.dijitRuleMark{position:absolute;border:1px solid black;line-height:0;height:100%}.dijitRuleMarkH{width:0;border-top-width:0 !important;border-bottom-width:0 !important;border-left-width:0 !important}.dijitRuleLabelContainer{position:absolute}.dijitRuleLabelContainerH{text-align:center;display:inline-block}.dijitRuleLabelH{position:relative;left:-50%}.dijitRuleLabelV{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dijitRuleMarkV{height:0;border-right-width:0 !important;border-bottom-width:0 !important;border-left-width:0 !important;width:100%;left:0}.dj_ie .dijitRuleLabelContainerV{margin-top:-.55em}.dj_a11y .dijitSliderReadOnly,.dj_a11y .dijitSliderDisabled{opacity:0.6}.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar{filter:alpha(opacity=40)}.dj_a11y .dijitSlider .dijitSliderButtonContainer div{font-family:monospace;font-size:1em;line-height:1em;height:auto;width:auto;margin:0 4px}.dj_a11y .dijitButtonContents .dijitButtonText,.dj_a11y .dijitTab .tabLabel{display:inline !important}.dj_a11y .dijitSelect .dijitButtonText{display:inline-block !important}.dijitTextArea{width:100%;overflow-y:auto}.dijitTextArea[cols]{width:auto}.dj_ie .dijitTextAreaCols{width:auto}.dijitExpandingTextArea{resize:none}.dijitToolbarSeparator{height:18px;width:5px;padding:0 1px;margin:0}.dijitIEFixedToolbar{position:absolute;top:expression(eval((document.documentElement||document.body).scrollTop))}.dijitEditor{display:block}.dijitEditorDisabled,.dijitEditorReadOnly{color:gray}.dijitTimePicker{background-color:white}.dijitTimePickerItem{cursor:pointer;-webkit-tap-highlight-color:transparent}.dijitTimePickerItemHover{background-color:gray;color:white}.dijitTimePickerItemSelected{font-weight:bold;color:#333;background-color:#b7cdee}.dijitTimePickerItemDisabled{color:gray;text-decoration:line-through}.dijitTimePickerItemInner{text-align:center;border:0;padding:2px 8px 2px 8px}.dijitTimePickerTick,.dijitTimePickerMarker{border-bottom:1px solid gray}.dijitTimePicker .dijitDownArrowButton{border-top:none !important}.dijitTimePickerTick{color:#CCC}.dijitTimePickerMarker{color:black;background-color:#CCC}.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner{border:solid 4px black}.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner{border:dashed 4px black}.dijitToggleButtonIconChar{display:none !important}.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar{display:inline !important;visibility:hidden}.dj_ie6 .dijitToggleButtonIconChar,.dj_ie6 .tabStripButton .dijitButtonText{font-family:"Arial Unicode MS"}.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar{display:inline !important;visibility:visible !important}.dijitArrowButtonChar{display:none !important}.dj_a11y .dijitArrowButtonChar{display:inline !important}.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,.dj_a11y .dijitComboButton .dijitArrowButtonInner{display:none !important}.dj_a11y .dijitSelect{border-collapse:separate !important;border-width:1px;border-style:solid}.dj_ie .dijitSelect{vertical-align:middle}.dj_ie6 .dijitSelect .dijitValidationContainer,.dj_ie8 .dijitSelect .dijitButtonText{vertical-align:top}.dj_ie6 .dijitTextBox .dijitInputContainer,.dj_iequirks .dijitTextBox .dijitInputContainer,.dj_ie6 .dijitTextBox .dijitArrowButtonInner,.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,.dijitSelect .dijitSelectLabel{vertical-align:baseline}.dijitNumberTextBox{text-align:left;direction:ltr}.dijitNumberTextBox .dijitInputInner{text-align:inherit}.dijitNumberTextBox input.dijitInputInner,.dijitCurrencyTextBox input.dijitInputInner,.dijitSpinner input.dijitInputInner{text-align:right}.dj_ie8 .dijitNumberTextBox input.dijitInputInner,.dj_ie9 .dijitNumberTextBox input.dijitInputInner,.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner,.dj_ie9 .dijitCurrencyTextBox input.dijitInputInner,.dj_ie8 .dijitSpinner input.dijitInputInner,.dj_ie9 .dijitSpinner input.dijitInputInner{padding-right:1px !important}.dijitToolbar .dijitSelect{margin:0}.dj_webkit .dijitToolbar .dijitSelect{padding-left:0.3em}.dijitSelect .dijitButtonContents{padding:0;white-space:nowrap;text-align:left;border-style:none solid none none;border-width:1px}.dijitSelectFixedWidth .dijitButtonContents{width:100%}.dijitSelectMenu .dijitMenuItemIcon{display:none}.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel{position:static}.dijitSelectLabel *{vertical-align:baseline}.dijitSelectSelectedOption *{font-weight:bold}.dijitSelectMenu{border-width:1px}.dijitForceStatic{position:static !important}.dijitReadOnly *,.dijitDisabled *,.dijitReadOnly,.dijitDisabled{cursor:default}.dojoDndItem{padding:2px;-webkit-touch-callout:none;-webkit-user-select:none}.dojoDndHorizontal .dojoDndItem{display:inline-block}.dojoDndItemBefore,.dojoDndItemAfter{border:0px solid #369}.dojoDndItemBefore{border-width:2px 0 0 0;padding:0 2px 2px 2px}.dojoDndItemAfter{border-width:0 0 2px 0;padding:2px 2px 0 2px}.dojoDndHorizontal .dojoDndItemBefore{border-width:0 0 0 2px;padding:2px 2px 2px 0}.dojoDndHorizontal .dojoDndItemAfter{border-width:0 2px 0 0;padding:2px 0 2px 2px}.dojoDndItemOver{cursor:pointer}.dj_gecko .dijitArrowButtonInner INPUT,.dj_gecko INPUT.dijitArrowButtonInner{-moz-user-focus:ignore}.dijitFocused .dijitMenuItemShortcutKey{text-decoration:underline}.dijitBorderContainer{height:350px}.dijitTooltipContainer{background:#fff;border:1px solid #ccc;border-radius:6px}.dijitContentPane{box-sizing:content-box;overflow:auto !important}.mx-dataview-content,.mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested),.mx-tabcontainer-content,.mx-grid-content{-webkit-overflow-scrolling:touch}html,body,#content{height:100%}#content>.mx-page{width:100%;min-height:100%}.mx-left-aligned{text-align:left}.mx-right-aligned{text-align:right}.mx-center-aligned{text-align:center}.mx-table{width:100%}.mx-table th,.mx-table td{padding:8px;vertical-align:top}.mx-table th.nopadding,.mx-table td.nopadding{padding:0}.mx-offscreen{position:relative;height:0;overflow:hidden}.mx-ie-event-shield{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1}.mx-swipe-navigation-progress{position:absolute;height:54px;width:54px;top:calc(50% - 27px);left:calc(50% - 27px);background:url(data:image/gif;base64,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)}input[type="checkbox"]{margin:9px 0}.mx-checkbox input[type="checkbox"]{margin-left:0;margin-right:8px;position:static}.form-vertical .form-group.mx-checkbox input[type="checkbox"]{display:block}.form-vertical .form-group.mx-checkbox.label-after input[type="checkbox"]{display:inline-block}.form-horizontal .form-group.no-columns{padding-left:15px;padding-right:15px}.mx-radiobuttons.inline .radio{display:inline-block;margin-right:20px}.mx-radiobuttons .radio input[type="radio"]{position:static;margin-right:8px;margin-left:0}.mx-radiobuttons .radio label{padding-left:0}.alert{margin-top:8px;margin-bottom:10px;white-space:pre-line}.mx-compound-control{display:flex}.mx-compound-control button{margin-left:5px}[dir="rtl"] .mx-compound-control button{margin-left:0;margin-right:5px}.mx-tooltip{margin:10px}.mx-tooltip-content{width:400px;overflow-y:auto}.mx-tooltip-prepare{height:24px;padding:8px;background:transparent url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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) no-repeat scroll center center}.mx-tooltip-content .table th,.mx-tooltip-content .table td{padding:2px 8px}.mx-tabcontainer-pane{height:100%}.mx-tabcontainer-content.loading{min-height:48px;background:url(data:image/gif;base64,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) no-repeat center center;background-size:32px 32px}.mx-tabcontainer-tabs{margin-bottom:8px}.mx-tabcontainer-tabs li{position:relative}.mx-tabcontainer-indicator{position:absolute;background:#f2dede;border-radius:8px;color:#b94a48;top:0px;right:-5px;width:16px;height:16px;line-height:16px;text-align:center;vertical-align:middle;font-size:10px;font-weight:600;z-index:1}.mx-grid{padding:8px;overflow:hidden}.mx-grid-controlbar,.mx-grid-searchbar{display:flex;justify-content:space-between;flex-wrap:wrap}.mx-grid-controlbar .mx-button,.mx-grid-search-controls .mx-button{margin-bottom:8px}.mx-grid-search-controls .mx-button+.mx-button,.mx-grid-controlbar .mx-button+.mx-button{margin-left:0.3em}[dir="rtl"] .mx-grid-search-controls .mx-button+.mx-button,[dir="rtl"] .mx-grid-controlbar .mx-button+.mx-button{margin-left:0;margin-right:0.3em}.mx-grid-pagingbar,.mx-grid-search-controls{display:flex;white-space:nowrap;align-items:baseline;margin-left:auto}.mx-grid-toolbar,.mx-grid-search-inputs{margin-right:5px;flex:1}[dir="rtl"] .mx-grid-toolbar,[dir="rtl"] .mx-grid-search-inputs{margin-left:5px;margin-right:0px}[dir="rtl"] .mx-grid-pagingbar,[dir="rtl"] .mx-grid-search-controls{margin-left:0px;margin-right:auto}.mx-grid-paging-status{padding:0 8px 5px}.mx-grid-search-item{display:inline-block;vertical-align:top;margin-bottom:8px}.mx-grid-search-label{width:110px;padding:0 5px;text-align:right;display:inline-block;vertical-align:top;overflow:hidden}[dir="rtl"] .mx-grid-search-label{text-align:left}.mx-grid-search-input{width:150px;padding:0 5px;display:inline-block;vertical-align:top}.mx-grid-search-message{flex-basis:100%}.mx-dataview .mx-grid{border:1px solid #ddd;border-radius:3px}.mx-calendar{z-index:1000}.mx-calendar-month-dropdown-options{position:absolute}.mx-calendar,.mx-calendar-month-dropdown{user-select:none}.mx-calendar-month-current{display:inline-block}.mx-calendar-month-spacer{position:relative;height:0px;overflow:hidden;visibility:hidden}.mx-calendar,.mx-calendar-month-dropdown-options{border:1px solid lightgrey;background-color:white}.mx-datagrid tr{cursor:pointer}.mx-datagrid tr.mx-datagrid-row-empty{cursor:default}.mx-datagrid table{width:100%;max-width:100%;table-layout:fixed;margin-bottom:0}.mx-datagrid th,.mx-datagrid td{padding:8px;line-height:1.42857143;vertical-align:bottom;border:1px solid #ddd}.mx-datagrid th{position:relative;border-bottom-width:2px}.mx-datagrid-head-caption{overflow:hidden;white-space:nowrap}.mx-datagrid-sort-icon{float:right;padding-left:5px}[dir="rtl"] .mx-datagrid-sort-icon{float:left;padding:0 5px 0 0}.mx-datagrid-column-resizer{position:absolute;top:0;left:-6px;width:10px;height:100%;cursor:col-resize}[dir="rtl"] .mx-datagrid-column-resizer{left:auto;right:-6px}.mx-datagrid tbody tr:first-child td{border-top:none}.mx-datagrid tbody .selected td{background-color:#eee}.mx-datagrid-data-wrapper{overflow:hidden;white-space:nowrap}.mx-datagrid tbody img{max-width:16px;max-height:16px}.mx-datagrid input,.mx-datagrid select,.mx-datagrid textarea{cursor:auto}.mx-datagrid tfoot th,.mx-datagrid tfoot td{padding:3px 8px}.mx-datagrid tfoot th{border-top:1px solid #ddd}.mx-datagrid.mx-content-loading .mx-content-loader{display:inline-block;width:90%;animation:placeholderGradient 1s linear infinite;border-radius:4px;background:#F5F5F5;background:repeating-linear-gradient(to right, #f5f5f5 0%, #f5f5f5 5%, #F9F9F9 50%, #f5f5f5 95%, #f5f5f5 100%);background-size:200px 100px;animation-fill-mode:both}@keyframes placeholderGradient{0%{background-position:100px 0}100%{background-position:-100px 0}}.mx-datagrid-table-resizing th,.mx-datagrid-table-resizing td{cursor:col-resize !important}.mx-templategrid-content-wrapper{display:table;width:100%;border-collapse:collapse;box-sizing:border-box}.mx-templategrid-row{display:table-row}.mx-templategrid-item{padding:5px;display:table-cell;border:1px solid #ddd;cursor:pointer;box-sizing:border-box}.mx-templategrid-empty{display:table-cell}.mx-templategrid-item.selected{background-color:#f5f5f5}.mx-templategrid-item .mx-table th,.mx-templategrid-item .mx-table td{padding:2px 8px}.mx-scrollcontainer-horizontal{width:100%;display:table;table-layout:fixed}.mx-scrollcontainer-horizontal>div{display:table-cell;vertical-align:top}.mx-scrollcontainer-nested{padding:0}.mx-scrollcontainer-fixed>.mx-scrollcontainer-middle>.mx-scrollcontainer-wrapper,.mx-scrollcontainer-fixed>.mx-scrollcontainer-left>.mx-scrollcontainer-wrapper,.mx-scrollcontainer-fixed>.mx-scrollcontainer-center>.mx-scrollcontainer-wrapper,.mx-scrollcontainer-fixed>.mx-scrollcontainer-right>.mx-scrollcontainer-wrapper{overflow:auto}.mx-scrollcontainer-move-in{transition:left 250ms ease-out}.mx-scrollcontainer-move-out{transition:left 250ms ease-in}.mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable{transition-property:width}.mx-scrollcontainer-toggleable{background-color:#fff}.mx-scrollcontainer-push{position:relative}.mx-scrollcontainer-shrink>.mx-scrollcontainer-toggleable{overflow:hidden}.mx-scrollcontainer-push.mx-scrollcontainer-open>div,.mx-scrollcontainer-slide.mx-scrollcontainer-open>div{pointer-events:none}.mx-scrollcontainer-push.mx-scrollcontainer-open>.mx-scrollcontainer-toggleable,.mx-scrollcontainer-slide.mx-scrollcontainer-open>.mx-scrollcontainer-toggleable{pointer-events:auto}.mx-navbar-item img,.mx-navbar-subitem img{height:16px}.mx-navigationtree .navbar-inner{padding-left:0;padding-right:0}.mx-navigationtree ul{list-style:none}.mx-navigationtree ul li{border-bottom:1px solid #dfe6ea}.mx-navigationtree li:last-child{border-style:none}.mx-navigationtree a{display:block;padding:5px 10px;color:#777;text-shadow:0 1px 0 #fff;text-decoration:none}.mx-navigationtree a.active{color:#FFF;text-shadow:none;background:#3498DB;border-radius:3px}.mx-navigationtree .mx-navigationtree-collapsed ul{display:none}.mx-navigationtree ul{margin:0;padding:0}.mx-navigationtree ul li{padding:5px 0}.mx-navigationtree ul li ul{padding:0;margin-left:10px}.mx-navigationtree ul li ul li{margin-left:8px;padding:5px 0}[dir="rtl"] .mx-navigationtree ul li ul li{margin-left:auto;margin-right:8px}.mx-navigationtree ul li ul li ul li{font-size:10px;padding-top:3px;padding-bottom:3px}.mx-navigationtree ul li ul li ul li img{vertical-align:top}.mx-link img,.mx-button img{height:16px}.mx-link{padding:6px 12px;display:inline-block}.mx-groupbox{margin-bottom:10px}.mx-groupbox-header{margin:0;padding:10px 15px;color:#eee;background:#333;font-size:inherit;line-height:inherit;border-radius:4px 4px 0 0}.mx-groupbox-collapsible>.mx-groupbox-header{cursor:pointer}.mx-groupbox.collapsed>.mx-groupbox-header{border-radius:4px}.mx-groupbox-body{padding:8px;border:1px solid #ddd;border-radius:4px}.mx-groupbox.collapsed>.mx-groupbox-body{display:none}.mx-groupbox-header+.mx-groupbox-body{border-top:none;border-radius:0 0 4px 4px}.mx-groupbox-collapse-icon{float:right}[dir="rtl"] .mx-groupbox-collapse-icon{float:left}.mx-dataview{position:relative}.mx-dataview-controls{padding:19px 20px 12px;background-color:#f5f5f5;border-top:1px solid #eee}.mx-dataview-controls .mx-button{margin-bottom:8px}.mx-dataview-controls .mx-button+.mx-button{margin-left:0.3em}.mx-dataview-message{background:#fff;position:absolute;top:0;right:0;bottom:0;left:0}.mx-dataview-message>div{display:table;width:100%;height:100%}.mx-dataview-message>div>p{display:table-cell;text-align:center;vertical-align:middle}.mx-window-view .mx-window-body{padding:0}.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-content,.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-content{padding:15px}.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-controls,.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-controls{border-radius:0px 0px 6px 6px}.mx-dialog{position:fixed;left:auto;right:auto;padding:0;width:500px;margin:0}.mx-dialog-header{cursor:move}.mx-dialog-body{overflow:auto}.mx-window{position:fixed;left:auto;right:auto;padding:0;width:600px;margin:0}.mx-window-content{height:100%;overflow:hidden}.mx-window-active .mx-window-header{background-color:#f5f5f5;border-radius:6px 6px 0 0}.mx-window-header{cursor:move}.mx-window-body{overflow:auto}.mx-dropdown-list *{cursor:pointer}.mx-dropdown-list img{width:35px;vertical-align:middle;margin-right:10px}[dir="rtl"] .mx-dropdown-list img{margin-left:10px;margin-right:auto}.mx-dropdown-list{padding:0;list-style:none}.mx-dropdown-list>li{padding:5px 10px 10px;border:1px #ddd;border-style:solid solid none;background-color:#fff}.mx-dropdown-list>li:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.mx-dropdown-list>li:last-child{border-bottom-style:solid;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mx-dropdown-list-striped>li:nth-child(2n+1){background:#f9f9f9}.mx-dropdown-list>li:hover{background:#f5f5f5}.mx-header{position:relative;padding:9px;background:#333;text-align:center}.mx-header-center{display:inline-block;color:#eee;line-height:30px}body[dir="ltr"] .mx-header-left,body[dir="rtl"] .mx-header-right{position:absolute;top:9px;left:9px}body[dir="ltr"] .mx-header-right,body[dir="rtl"] .mx-header-left{position:absolute;top:9px;right:9px}.mx-title{margin-bottom:0px;margin-top:0px}.mx-listview{padding:8px}.mx-listview>ul{padding:0px;list-style:none}.mx-listview-clickable>ul>li{cursor:pointer}.mx-listview-empty{color:#999;text-align:center}.mx-listview .mx-listview-loading{padding:10px;line-height:0;text-align:center}.mx-listview-searchbar{display:flex;margin-bottom:10px}.mx-listview-searchbar>input{width:100%}.mx-listview-searchbar>button{margin-left:5px}[dir="rtl"] .mx-listview-searchbar>button{margin-left:0;margin-right:5px}.mx-listview-selection{display:table-cell;vertical-align:middle;padding:0 15px 0 5px}[dir="rtl"] .mx-listview-selection{padding:0 5px 0 15px}.mx-listview-selectable .mx-listview-content{display:table-cell;vertical-align:middle;width:100%}.mx-listview .selected{background:#def}.mx-listview .mx-table th,.mx-listview .mx-table td{padding:2px}.mx-login .form-control{margin-top:10px}.mx-menubar{padding:8px}.mx-menubar-icon{height:16px}.mx-menubar-more-icon{display:inline-block;width:16px;height:16px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=) no-repeat center center;background-size:16px 16px;vertical-align:middle}.mx-navigationlist{padding:8px}.mx-navigationlist li:hover,.mx-navigationlist li:focus,.mx-navigationlist li.active{color:#FFF;background-color:#3498DB}.mx-navigationlist *{cursor:pointer}.mx-navigationlist .table th,.mx-navigationlist .table td{padding:2px}.mx-progress{position:fixed;top:30%;left:0;right:0;margin:auto;width:250px;max-width:90%;background:#333;opacity:0.8;z-index:5000;border-radius:4px;padding:20px 15px;transition:opacity 0.4s ease-in-out}.mx-progress-hidden{opacity:0}.mx-progress-message{color:#fff;text-align:center;margin-bottom:15px}.mx-progress-empty .mx-progress-message{display:none}.mx-progress-indicator{width:70px;height:10px;margin:auto;background:url(data:image/gif;base64,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)}.mx-reload-notification{position:fixed;z-index:1001;top:0;width:100%;padding:1rem;border:1px solid #048acd;background-color:#0494dc;box-shadow:0 5px 20px rgba(1,37,55,0.16);color:white;text-align:center;font-size:14px}.mx-resizer-n,.mx-resizer-s{position:absolute;left:0;width:100%;height:10px}.mx-resizer-n{top:-5px;cursor:n-resize}.mx-resizer-s{bottom:-5px;cursor:s-resize}.mx-resizer-e,.mx-resizer-w{position:absolute;top:0;width:10px;height:100%}.mx-resizer-e{right:-5px;cursor:e-resize}.mx-resizer-w{left:-5px;cursor:w-resize}.mx-resizer-nw,.mx-resizer-ne,.mx-resizer-sw,.mx-resizer-se{position:absolute;width:20px;height:20px}.mx-resizer-nw,.mx-resizer-ne{top:-5px}.mx-resizer-sw,.mx-resizer-se{bottom:-5px}.mx-resizer-nw,.mx-resizer-sw{left:-5px}.mx-resizer-ne,.mx-resizer-se{right:-5px}.mx-resizer-nw{cursor:nw-resize}.mx-resizer-ne{cursor:ne-resize}.mx-resizer-sw{cursor:sw-resize}.mx-resizer-se{cursor:se-resize}.mx-text{white-space:pre-line}.mx-textarea textarea{resize:none;overflow-y:hidden}.mx-textarea .mx-textarea-noresize{height:auto;resize:vertical;overflow-y:auto}.mx-textarea .mx-textarea-counter{font-size:smaller}.mx-textarea .form-control-static,.mx-textarea .form-group div[class*='textBox']>.control-label,.form-group .mx-textarea div[class*='textBox']>.control-label,.mx-textarea .form-group div[class*='textArea']>.control-label,.form-group .mx-textarea div[class*='textArea']>.control-label,.mx-textarea .form-group div[class*='datePicker']>.control-label,.form-group .mx-textarea div[class*='datePicker']>.control-label{white-space:pre-line}.mx-underlay{position:fixed;top:0;width:100%;height:100%;z-index:1000;opacity:0.5;background-color:#333}.mx-imagezoom{position:absolute;display:table;width:100%;height:100%;background-color:#999}.mx-imagezoom-wrapper{display:table-cell;text-align:center;vertical-align:middle}.mx-imagezoom-image{max-width:none}.mx-dropdown li{padding:3px 20px;cursor:pointer}.mx-dropdown label{padding:0;color:#333;white-space:nowrap;cursor:pointer}.mx-dropdown input{margin:0;vertical-align:middle;cursor:pointer}.mx-dropdown .selected{background:#f8f8f8}.mx-demouserswitcher{position:fixed;top:0;right:0;width:360px;height:100%;z-index:20000;box-shadow:-1px 0 5px rgba(28,59,86,0.2)}.mx-demouserswitcher-content{padding:80px 40px 20px;height:100%;color:#387ea2;font-size:14px;overflow:auto;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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) top right no-repeat #1b3149;background-attachment:local}.mx-demouserswitcher ul{padding:0;margin-top:25px;list-style-type:none;border-top:1px solid #496076}.mx-demouserswitcher a{display:block;padding:10px 0;color:#387ea2;border-bottom:1px solid #496076}.mx-demouserswitcher h2{margin:20px 0 5px;color:#5bc4fe;font-size:28px}.mx-demouserswitcher h3{margin:0 0 2px;color:#5bc4fe;font-size:18px;font-weight:normal;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mx-demouserswitcher .active h3{color:#11efdb}.mx-demouserswitcher p{margin-bottom:0}.mx-demouserswitcher-toggle{position:absolute;top:25%;left:-35px;width:35px;height:38px;margin-top:-40px;cursor:pointer;border-top-left-radius:3px;border-bottom-left-radius:3px;box-shadow:-1px 0 5px rgba(28,59,86,0.2);background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC) center center no-repeat #1b3149}.mx-master-detail-screen{top:0;left:0;overflow:auto;width:100%;height:100%;position:absolute;background-color:white;will-change:transform}.mx-master-detail-screen .mx-master-detail-details{padding:15px}.mx-master-detail-screen-header{position:relative;overflow:auto;border-bottom:1px solid #ccc;background-color:#f7f7f7}.mx-master-detail-screen-header-caption{text-align:center;font-size:17px;line-height:24px;font-weight:600}.mx-master-detail-screen-header-close{position:absolute;left:0;top:0;height:100%;width:50px;border:none;background:transparent;color:#007aff}body[dir="rtl"] .mx-master-detail-screen-header-close{right:0;left:auto}.mx-master-detail-screen-header-close::before{content:"\2039";font-size:52px;line-height:24px}.mx-master-detail-content-fix{height:100vh;overflow:hidden}.mx-master-detail-content-hidden{transform:translateX(-200%)}body[dir="rtl"] .mx-master-detail-content-hidden{transform:translateX(200%)}.reportingReport{padding:5px;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.reportingReportParameter th{text-align:right}.reportingDateRange table{width:100%;table-layout:fixed}.reportingDateRange th{padding:5px;text-align:right;background-color:#eee}.reportingDateRange td{padding:5px}.mx-reportmatrix table{width:100%;max-width:100%;table-layout:fixed;margin-bottom:0}.mx-reportmatrix th,.mx-reportmatrix td{padding:8px;line-height:1.42857143;vertical-align:bottom;border:1px solid #ddd}.mx-reportmatrix tbody tr:first-child td{border-top:none}.mx-reportmatrix tbody tr:nth-child(2n+1) td{background-color:#f9f9f9}.mx-reportmatrix tbody img{max-width:16px;max-height:16px}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.dijitInline{zoom:1;display:inline;vertical-align:auto}.dj_ie6 .dijitComboBox .dijitInputContainer,.dijitInputContainer{zoom:1}.dijitRight{display:inline}.dijitButtonNode{vertical-align:auto}.dijitTextBox{overflow:hidden}.dijitPlaceHolder{filter:""}.dijitValidationTextBoxError input.dijitValidationInner,.dijitSelect input,.dijitTextBox input.dijitArrowButtonInner{text-indent:0 !important;letter-spacing:-5em !important;text-align:right !important}.dj_a11y input.dijitValidationInner,.dj_a11y input.dijitArrowButtonInner{text-align:left !important}.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton{bottom:50%}.dijitTabContainerTop-tabs .dijitTab,.dijitTabContainerBottom-tabs .dijitTab{zoom:1;display:inline}.dojoDndHorizontal .dojoDndItem{display:inline}}@keyframes slideInUp{from{visibility:visible;transform:translate3d(0, 100%, 0)}to{transform:translate3d(0, 0, 0)}}.animated{animation-duration:0.4s;animation-fill-mode:both}.slideInUp{animation-name:slideInUp}@keyframes slideInDown{from{visibility:visible;transform:translate3d(0, -100%, 0)}to{transform:translate3d(0, 0, 0)}}.slideInDown{animation-name:slideInDown}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{animation-name:fadeIn}.flexcontainer{display:flex;overflow:hidden;flex:1;flex-direction:row}.flexcontainer .flexitem{margin-right:15px}.flexcontainer .flexitem:last-child{margin-right:0}.flexcontainer .flexitem-main{overflow:hidden;flex:1}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.flex-center{align-items:center !important;justify-content:center !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.justify-content-stretch{justify-content:stretch !important}.align-children-start{align-items:flex-start !important}.align-children-end{align-items:flex-end !important}.align-children-center{align-items:center !important}.align-children-baseline{align-items:baseline !important}.align-children-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.flexitem-1{flex:1 1 1%}.flexitem-2{flex:2 2 1%}.flexitem-3{flex:3 3 1%}.flexitem-4{flex:4 4 1%}.flexitem-5{flex:5 5 1%}.flexitem-6{flex:6 6 1%}.flexitem-7{flex:7 7 1%}.flexitem-8{flex:8 8 1%}.flexitem-9{flex:9 9 1%}.flexitem-10{flex:10 10 1%}.flexitem-11{flex:11 11 1%}.flexitem-12{flex:12 12 1%}.spacing-inner-none{padding:0 !important}.spacing-inner-top-none{padding-top:0 !important}.spacing-inner-right-none{padding-right:0 !important}.spacing-inner-bottom-none{padding-bottom:0 !important}.spacing-inner-left-none{padding-left:0 !important}.spacing-outer-none{margin:0 !important}.spacing-outer-top-none{margin-top:0 !important}.spacing-outer-right-none{margin-right:0 !important}.spacing-outer-bottom-none{margin-bottom:0 !important}.spacing-outer-left-none{margin-left:0 !important}.spacing-inner{padding:5px !important}.spacing-inner-top{padding-top:5px !important}.spacing-inner-right{padding-right:5px !important}.spacing-inner-bottom{padding-bottom:5px !important}.spacing-inner-left{padding-left:5px !important}.spacing-outer{margin:5px !important}.spacing-outer-top{margin-top:5px !important}.spacing-outer-right{margin-right:5px !important}.spacing-outer-bottom{margin-bottom:5px !important}.spacing-outer-left{margin-left:5px !important}@media (max-width: 767px){.spacing-inner-medium{padding:15px !important}}@media (min-width: 768px){.spacing-inner-medium{padding:15px !important}}@media (min-width: 992px){.spacing-inner-medium{padding:15px !important}}@media (max-width: 767px){.spacing-inner-top-medium{padding-top:15px !important}}@media (min-width: 768px){.spacing-inner-top-medium{padding-top:15px !important}}@media (min-width: 992px){.spacing-inner-top-medium{padding-top:15px !important}}@media (max-width: 767px){.spacing-inner-right-medium{padding-right:15px !important}}@media (min-width: 768px){.spacing-inner-right-medium{padding-right:15px !important}}@media (min-width: 992px){.spacing-inner-right-medium{padding-right:15px !important}}@media (max-width: 767px){.spacing-inner-bottom-medium{padding-bottom:15px !important}}@media (min-width: 768px){.spacing-inner-bottom-medium{padding-bottom:15px !important}}@media (min-width: 992px){.spacing-inner-bottom-medium{padding-bottom:15px !important}}@media (max-width: 767px){.spacing-inner-left-medium{padding-left:15px !important}}@media (min-width: 768px){.spacing-inner-left-medium{padding-left:15px !important}}@media (min-width: 992px){.spacing-inner-left-medium{padding-left:15px !important}}@media (max-width: 767px){.spacing-outer-medium{margin:15px !important}}@media (min-width: 768px){.spacing-outer-medium{margin:15px !important}}@media (min-width: 992px){.spacing-outer-medium{margin:15px !important}}@media (max-width: 767px){.spacing-outer-top-medium{margin-top:15px !important}}@media (min-width: 768px){.spacing-outer-top-medium{margin-top:15px !important}}@media (min-width: 992px){.spacing-outer-top-medium{margin-top:15px !important}}@media (max-width: 767px){.spacing-outer-right-medium{margin-right:15px !important}}@media (min-width: 768px){.spacing-outer-right-medium{margin-right:15px !important}}@media (min-width: 992px){.spacing-outer-right-medium{margin-right:15px !important}}@media (max-width: 767px){.spacing-outer-bottom-medium{margin-bottom:15px !important}}@media (min-width: 768px){.spacing-outer-bottom-medium{margin-bottom:15px !important}}@media (min-width: 992px){.spacing-outer-bottom-medium{margin-bottom:15px !important}}@media (max-width: 767px){.spacing-outer-left-medium{margin-left:15px !important}}@media (min-width: 768px){.spacing-outer-left-medium{margin-left:15px !important}}@media (min-width: 992px){.spacing-outer-left-medium{margin-left:15px !important}}@media (max-width: 767px){.spacing-inner-large{padding:15px !important}}@media (min-width: 768px){.spacing-inner-large{padding:30px !important}}@media (min-width: 992px){.spacing-inner-large{padding:30px !important}}@media (max-width: 767px){.spacing-inner-top-large{padding-top:15px !important}}@media (min-width: 768px){.spacing-inner-top-large{padding-top:30px !important}}@media (min-width: 992px){.spacing-inner-top-large{padding-top:30px !important}}@media (max-width: 767px){.spacing-inner-right-large{padding-right:15px !important}}@media (min-width: 768px){.spacing-inner-right-large{padding-right:30px !important}}@media (min-width: 992px){.spacing-inner-right-large{padding-right:30px !important}}@media (max-width: 767px){.spacing-inner-bottom-large{padding-bottom:15px !important}}@media (min-width: 768px){.spacing-inner-bottom-large{padding-bottom:30px !important}}@media (min-width: 992px){.spacing-inner-bottom-large{padding-bottom:30px !important}}@media (max-width: 767px){.spacing-inner-left-large{padding-left:15px !important}}@media (min-width: 768px){.spacing-inner-left-large{padding-left:30px !important}}@media (min-width: 992px){.spacing-inner-left-large{padding-left:30px !important}}@media (max-width: 767px){.spacing-outer-large{margin:15px !important}}@media (min-width: 768px){.spacing-outer-large{margin:30px !important}}@media (min-width: 992px){.spacing-outer-large{margin:30px !important}}@media (max-width: 767px){.spacing-outer-top-large{margin-top:15px !important}}@media (min-width: 768px){.spacing-outer-top-large{margin-top:30px !important}}@media (min-width: 992px){.spacing-outer-top-large{margin-top:30px !important}}@media (max-width: 767px){.spacing-outer-right-large{margin-right:15px !important}}@media (min-width: 768px){.spacing-outer-right-large{margin-right:30px !important}}@media (min-width: 992px){.spacing-outer-right-large{margin-right:30px !important}}@media (max-width: 767px){.spacing-outer-bottom-large{margin-bottom:15px !important}}@media (min-width: 768px){.spacing-outer-bottom-large{margin-bottom:30px !important}}@media (min-width: 992px){.spacing-outer-bottom-large{margin-bottom:30px !important}}@media (max-width: 767px){.spacing-outer-left-large{margin-left:15px !important}}@media (min-width: 768px){.spacing-outer-left-large{margin-left:30px !important}}@media (min-width: 992px){.spacing-outer-left-large{margin-left:30px !important}}@media (max-width: 767px){.spacing-inner-layout{padding:15px 15px 15px 15px !important}}@media (min-width: 768px){.spacing-inner-layout{padding:30px 30px 30px 30px !important}}@media (min-width: 992px){.spacing-inner-layout{padding:30px 30px 30px 30px !important}}@media (max-width: 767px){.spacing-inner-top-layout{padding-top:15px !important}}@media (min-width: 768px){.spacing-inner-top-layout{padding-top:30px !important}}@media (min-width: 992px){.spacing-inner-top-layout{padding-top:30px !important}}@media (max-width: 767px){.spacing-inner-right-layout{padding-right:15px !important}}@media (min-width: 768px){.spacing-inner-right-layout{padding-right:30px !important}}@media (min-width: 992px){.spacing-inner-right-layout{padding-right:30px !important}}@media (max-width: 767px){.spacing-inner-bottom-layout{padding-bottom:15px !important}}@media (min-width: 768px){.spacing-inner-bottom-layout{padding-bottom:30px !important}}@media (min-width: 992px){.spacing-inner-bottom-layout{padding-bottom:30px !important}}@media (max-width: 767px){.spacing-inner-left-layout{padding-left:15px !important}}@media (min-width: 768px){.spacing-inner-left-layout{padding-left:30px !important}}@media (min-width: 992px){.spacing-inner-left-layout{padding-left:30px !important}}@media (max-width: 767px){.spacing-outer-layout{margin:15px 15px 15px 15px !important}}@media (min-width: 768px){.spacing-outer-layout{margin:30px 30px 30px 30px !important}}@media (min-width: 992px){.spacing-outer-layout{margin:30px 30px 30px 30px !important}}@media (max-width: 767px){.spacing-outer-top-layout{margin-top:15px !important}}@media (min-width: 768px){.spacing-outer-top-layout{margin-top:30px !important}}@media (min-width: 992px){.spacing-outer-top-layout{margin-top:30px !important}}@media (max-width: 767px){.spacing-outer-right-layout{margin-right:15px !important}}@media (min-width: 768px){.spacing-outer-right-layout{margin-right:30px !important}}@media (min-width: 992px){.spacing-outer-right-layout{margin-right:30px !important}}@media (max-width: 767px){.spacing-outer-bottom-layout{margin-bottom:15px !important}}@media (min-width: 768px){.spacing-outer-bottom-layout{margin-bottom:30px !important}}@media (min-width: 992px){.spacing-outer-bottom-layout{margin-bottom:30px !important}}@media (max-width: 767px){.spacing-outer-left-layout{margin-left:15px !important}}@media (min-width: 768px){.spacing-outer-left-layout{margin-left:30px !important}}@media (min-width: 992px){.spacing-outer-left-layout{margin-left:30px !important}}.mx-scrollcontainer .mx-placeholder{width:100%;height:100%}@media (max-width: 767px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid{padding:15px 15px 15px 15px}}@media (min-width: 768px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid{padding:30px 30px 30px 30px}}@media (min-width: 992px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid{padding:30px 30px 30px 30px}}.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .mx-layoutgrid-fluid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid .mx-layoutgrid,.mx-scrollcontainer .mx-placeholder .mx-layoutgrid-fluid .mx-layoutgrid-fluid{padding:0}html{height:100%}body{min-height:100%;color:#555;background-color:#fff;font-family:"Open Sans",sans-serif;font-size:14px;font-weight:normal;line-height:1.42857}a{-moz-transition:0.25s;-o-transition:0.25s;-webkit-transition:0.25s;transition:0.25s;color:#0595DB;-webkit-backface-visibility:hidden}a:hover{text-decoration:underline;color:#036290}a:focus{outline:thin dotted}a:active,a:hover{outline:0}input:focus,button:focus,.mx-link:focus{outline:0}div[tabindex]{outline:0}.disabled,[disabled]{cursor:not-allowed;-webkit-box-shadow:none;box-shadow:none;filter:alpha(opacity=65)}body{height:100%}.loginpage{display:flex;height:100%}.loginpage-logo{position:absolute;top:30px;right:30px;width:120px}.loginpage-left{display:none}.loginpage-right{display:flex;flex:1;flex-direction:column;justify-content:space-around}.loginpage-formwrapper{width:400px;margin:0 auto}.loginpage-form .alert{display:none}.loginpage-form .btn{border-radius:40px}.loginpage-form .form-group{width:100%;align-items:center}.loginpage-form .form-group .control-label{flex:4;margin-bottom:0;font-size:14px;font-weight:500}.loginpage-form .form-group .inputwrapper{flex:8;position:relative;width:100%}.loginpage-form .form-group .inputwrapper .glyphicon{position:absolute;top:50%;left:10px;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%)}.loginpage-form .form-group .inputwrapper .glyphicon:before{-webkit-transition:color 0.4s;-moz-transition:color 0.4s;-o-transition:color 0.4s;transition:color 0.4s}.loginpage-form .form-group .inputwrapper .glyphicon-eye-open:hover,.loginpage-form .form-group .inputwrapper .glyphicon-eye-close:hover{cursor:pointer;color:#0595DB}.loginpage-form .form-group .inputwrapper .form-control{padding:8px 10px 8px 45px}.loginpage-form .form-group .inputwrapper .form-control:focus ~ .glyphicon:before{color:#0595DB}.loginpage-alternativelabel{display:flex;align-items:center;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin:25px 0px}.loginpage-alternativelabel hr{flex:1;margin:20px 0 20px 10px;border:0;border-color:#d8d8d8;border-top:1px solid #eeeeee}.loginpage-signin{color:#555555}@media screen and (min-width: 1200px){.loginpage-logo{width:150px}.loginpage-left{position:relative;display:block;flex:1;width:100%;height:100%}.loginpage-image{height:100%;animation:makePointer 1s ease-out both;background:left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat linear-gradient(to right, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -moz-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -webkit-gradient(linear, left bottom, right bottom, color-stop(0%, rgba(5,149,219,0.9)), color-stop(100%, rgba(5,149,219,0.6))),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -webkit-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -o-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");background:left/cover no-repeat -ms-linear-gradient(left, rgba(5,149,219,0.9) 0%, rgba(5,149,219,0.6) 100%),left/cover no-repeat url("../../../resources/work-do-more.jpeg");-webkit-clip-path:polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);clip-path:polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%)}.loginpage-formwrapper{width:400px}}@keyframes makePointer{100%{-webkit-clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%)}}@-webkit-keyframes makePointer{100%{-webkit-clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);clip-path:polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%)}}.form-control{display:flex;flex:1;min-width:50px;height:auto;padding:8px 10px;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;color:#555;border:1px solid #D7D7D7;border-radius:4px;background-color:#fff;background-image:none;box-shadow:none;font-size:14px;line-height:1.42857;appearance:none;-moz-appearance:none;-webkit-appearance:none}.form-control:not([readonly]):focus{border-color:#0595DB;outline:0;background-color:#fff;box-shadow:none}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{opacity:1;background-color:#EEEEEE}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}.form-control-lined{border:0;border-bottom:1px solid #D7D7D7;border-radius:0;background-color:transparent}.form-control-lined:focus{background-color:transparent}.form-control-static,.form-group div[class*='textBox']>.control-label,.form-group div[class*='textArea']>.control-label,.form-group div[class*='datePicker']>.control-label{overflow:hidden;flex:1;min-height:auto;padding:8px 10px;border-bottom:1px solid #F0F0EE;font-size:14px;line-height:1.42857}.form-control-static+.control-label,.form-group div[class*='textBox']>.control-label+.control-label,.form-group div[class*='textArea']>.control-label+.control-label,.form-group div[class*='datePicker']>.control-label+.control-label{margin-left:8px}select.form-control{padding-right:30px;background-image:url("data:image/svg+xml;utf8,");background-repeat:no-repeat;background-position:calc(100% - 10px) center;appearance:none;-moz-appearance:none;-webkit-appearance:none}.form-control.mx-selectbox{align-items:center;flex-direction:row-reverse;justify-content:space-between}.mx-textarea .control-label{height:auto}textarea.form-control{flex-basis:auto}.mx-compound-control{display:flex;flex:1;flex-wrap:wrap;max-width:100%}.mx-compound-control .mx-validation-message{flex-basis:100%;margin-top:5px}.form-group{display:flex;flex-direction:row;margin-bottom:15px}.form-group>div[class*='col-']{display:flex;align-items:center;flex-wrap:wrap}.form-group>[class*='col-']{padding-right:15px;padding-left:15px}.form-group .control-label{overflow:hidden;margin-bottom:5px;text-overflow:ellipsis;color:#666;font-size:14px;font-weight:600}.form-group .mx-validation-message{flex-basis:100%}.form-group.no-columns:not(.label-after){flex-direction:column}.form-group.label-after .form-control-static,.form-group.label-after div[class*='textBox']>.control-label,.form-group.label-after div[class*='textArea']>.control-label,.form-group.label-after div[class*='datePicker']>.control-label{flex:unset}.form-group.label-after .control-label{margin-bottom:0}.mx-dateinput,.mx-referenceselector,.mx-referencesetselector{flex:1}.dj_webkit.dj_ios .form-control{transform:translateZ(0)}@media only screen and (min-width: 768px){.form-horizontal .control-label{margin-bottom:0;padding-top:8px;padding-bottom:8px;line-height:1.42857}}@media only screen and (max-width: 767px){.form-group{flex-direction:column}}@media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0){input[type='date'],input[type='time'],input[type='datetime-local'],input[type='month']{line-height:1}input[type='time']:not(.has-value):before,input[type='date']:not(.has-value):before,input[type='month']:not(.has-value):before,input[type='datetime-local']:not(.has-value):before{margin-right:0.5em;content:attr(placeholder) !important;color:#AAAAAA}input[type='time'].has-value:before,input[type='date'].has-value:before,input[type='month'].has-value:before,input[type='datetime-local'].has-value:before{content:'' !important}}@media (-ms-high-contrast: none), (-ms-high-contrast: active){.form-group{display:block}}[dir='rtl'] select.form-control{padding-right:30px;padding-left:0;background-position:10px center}.alert{margin-top:0;padding:15px;border:0;border-radius:4px}.alert-bordered{border:1px solid}.alert-success{color:#477901;border-color:#538d01;background-color:#e4f4cc}.alert-info{color:#2b6a94;border-color:#327bad;background-color:#daeffd}.alert-warning{color:#955d11;border-color:#ae6d14;background-color:#feebd2}.alert-danger{color:#8e1116;border-color:#a61419;background-color:#fbd2d3}.has-error .alert{margin-top:8px;margin-bottom:0}.background-main{background-color:#fff !important}.background-secondary{background-color:#F5F8FD !important}.background-default{background-color:#ddd !important}.background-default-darker{background-color:#858585 !important}.background-default-dark{background-color:#9b9b9b !important}.background-default-light{background-color:#ebebeb !important}.background-default-lighter{background-color:#f8f8f8 !important}.background-inverse{background-color:#252C36 !important}.background-inverse-darker{background-color:#161a20 !important}.background-inverse-dark{background-color:#1a1f26 !important}.background-inverse-light{background-color:#7c8086 !important}.background-inverse-lighter{background-color:#d3d5d7 !important}.background-primary{background-color:#0595DB !important}.background-primary-darker{background-color:#035983 !important}.background-primary-dark{background-color:#046899 !important}.background-primary-light{background-color:#69bfe9 !important}.background-primary-lighter{background-color:#cdeaf8 !important}.background-info{background-color:#48B0F7 !important}.background-info-darker{background-color:#2b6a94 !important}.background-info-dark{background-color:#327bad !important}.background-info-light{background-color:#91d0fa !important}.background-info-lighter{background-color:#daeffd !important}.background-success{background-color:#76CA02 !important}.background-success-darker{background-color:#477901 !important}.background-success-dark{background-color:#538d01 !important}.background-success-light{background-color:#addf67 !important}.background-success-lighter{background-color:#e4f4cc !important}.background-warning{background-color:#F99B1D !important}.background-warning-darker{background-color:#955d11 !important}.background-warning-dark{background-color:#ae6d14 !important}.background-warning-light{background-color:#fbc377 !important}.background-warning-lighter{background-color:#feebd2 !important}.background-danger{background-color:#ED1C24 !important}.background-danger-darker{background-color:#8e1116 !important}.background-danger-dark{background-color:#a61419 !important}.background-danger-light{background-color:#f4777c !important}.background-danger-lighter{background-color:#fbd2d3 !important}.background-brand-gradient{background-image:linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%) !important}.btn,.mx-button{display:inline-block;margin-bottom:0;padding:0.6em 1em;cursor:pointer;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;text-align:center;vertical-align:middle;white-space:nowrap;color:#0595DB;border:1px solid #ddd;border-radius:4px;background-color:#fff;background-image:none;box-shadow:none;text-shadow:none;font-size:14px;line-height:1.42857}.btn:hover,.btn:focus,.btn:active,.btn:active:focus,.mx-button:hover,.mx-button:focus,.mx-button:active,.mx-button:active:focus{outline:none;box-shadow:none}.btn[aria-disabled],.mx-button[aria-disabled]{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65)}.mx-link{padding:0;color:#0595DB}.mx-link[aria-disabled='true']{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65)}.btn img,.mx-button img,.mx-link img{height:18px;margin-right:5px;vertical-align:text-top}.profile-phone .btn:active,.profile-phone .mx-link:active{-webkit-transform:translateY(1px);transform:translateY(1px)}.btn,.btn-default{color:#0595DB;border-color:#ddd;background-color:#fff}.btn:hover,.btn:focus,.btn:active,.btn.active,.open>.btn.dropdown-toggle,.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#0595DB;border-color:#ddd;background-color:#ddd}.btn:active,.btn.active,.open>.btn.dropdown-toggle,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn.disabled,.btn.disabled:hover,.btn.disabled:focus,.btn.disabled:active,.btn.disabled.active,.btn[disabled],.btn[disabled]:hover,.btn[disabled]:focus,.btn[disabled]:active,.btn[disabled].active,.btn[aria-disabled],.btn[aria-disabled]:hover,.btn[aria-disabled]:focus,.btn[aria-disabled]:active,.btn[aria-disabled].active,.btn fieldset[disabled],.btn fieldset[disabled]:hover,.btn fieldset[disabled]:focus,.btn fieldset[disabled]:active,.btn fieldset[disabled].active,.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,.btn-default[aria-disabled],.btn-default[aria-disabled]:hover,.btn-default[aria-disabled]:focus,.btn-default[aria-disabled]:active,.btn-default[aria-disabled].active,.btn-default fieldset[disabled],.btn-default fieldset[disabled]:hover,.btn-default fieldset[disabled]:focus,.btn-default fieldset[disabled]:active,.btn-default fieldset[disabled].active{border-color:#ddd;background-color:#fff}.btn.btn-bordered,.btn-default.btn-bordered{background-color:transparent}.btn.btn-bordered:hover,.btn.btn-bordered:focus,.btn.btn-bordered:active,.btn.btn-bordered.active,.open>.btn.btn-bordered.dropdown-toggle,.btn-default.btn-bordered:hover,.btn-default.btn-bordered:focus,.btn-default.btn-bordered:active,.btn-default.btn-bordered.active,.open>.btn-default.btn-bordered.dropdown-toggle{color:#0595DB;border-color:#ddd;background-color:#ddd}.btn.btn-link,.btn-default.btn-link{text-decoration:none;border-color:transparent;background-color:transparent}.btn.btn-link:hover,.btn-default.btn-link:hover{border-color:#eee;background-color:#eee}.btn-primary,.datagrid-fullsearch.mx-grid .mx-grid-search-button{color:#fff;border-color:#0595DB;background-color:#0595DB}.btn-primary:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button:hover,.btn-primary:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button:focus,.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.btn-primary.dropdown-toggle,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{color:#fff;border-color:#0477af;background-color:#0477af}.btn-primary:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button:active,.btn-primary.active,.datagrid-fullsearch.mx-grid .active.mx-grid-search-button,.open>.btn-primary.dropdown-toggle,.datagrid-fullsearch.mx-grid .open>.dropdown-toggle.mx-grid-search-button{background-image:none}.btn-primary.disabled,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button,.btn-primary.disabled:hover,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:hover,.btn-primary.disabled:focus,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:focus,.btn-primary.disabled:active,.datagrid-fullsearch.mx-grid .disabled.mx-grid-search-button:active,.btn-primary.disabled.active,.datagrid-fullsearch.mx-grid .disabled.active.mx-grid-search-button,.btn-primary[disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled],.btn-primary[disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:hover,.btn-primary[disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:focus,.btn-primary[disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled]:active,.btn-primary[disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[disabled].active,.btn-primary[aria-disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled],.btn-primary[aria-disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled]:hover,.btn-primary[aria-disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled]:focus,.btn-primary[aria-disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled]:active,.btn-primary[aria-disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button[aria-disabled].active,.btn-primary fieldset[disabled],.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled],.btn-primary fieldset[disabled]:hover,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled]:hover,.btn-primary fieldset[disabled]:focus,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled]:focus,.btn-primary fieldset[disabled]:active,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled]:active,.btn-primary fieldset[disabled].active,.datagrid-fullsearch.mx-grid .mx-grid-search-button fieldset[disabled].active{border-color:#0595DB;background-color:#0595DB}.btn-primary.btn-bordered,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button{background-color:transparent;color:#0595DB}.btn-primary.btn-bordered:hover,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:hover,.btn-primary.btn-bordered:focus,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:focus,.btn-primary.btn-bordered:active,.datagrid-fullsearch.mx-grid .btn-bordered.mx-grid-search-button:active,.btn-primary.btn-bordered.active,.datagrid-fullsearch.mx-grid .btn-bordered.active.mx-grid-search-button,.open>.btn-primary.btn-bordered.dropdown-toggle,.datagrid-fullsearch.mx-grid .open>.btn-bordered.dropdown-toggle.mx-grid-search-button{color:#fff;border-color:#0595DB;background-color:#0595DB}.btn-primary.btn-link,.datagrid-fullsearch.mx-grid .btn-link.mx-grid-search-button{text-decoration:none;border-color:transparent;background-color:transparent;color:#0595DB}.btn-primary.btn-link:hover,.datagrid-fullsearch.mx-grid .btn-link.mx-grid-search-button:hover{border-color:#eee;background-color:#eee}.btn-inverse{color:#fff;border-color:#252C36;background-color:#252C36}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.open>.btn-inverse.dropdown-toggle{color:#fff;border-color:#51565e;background-color:#51565e}.btn-inverse:active,.btn-inverse.active,.open>.btn-inverse.dropdown-toggle{background-image:none}.btn-inverse.disabled,.btn-inverse.disabled:hover,.btn-inverse.disabled:focus,.btn-inverse.disabled:active,.btn-inverse.disabled.active,.btn-inverse[disabled],.btn-inverse[disabled]:hover,.btn-inverse[disabled]:focus,.btn-inverse[disabled]:active,.btn-inverse[disabled].active,.btn-inverse[aria-disabled],.btn-inverse[aria-disabled]:hover,.btn-inverse[aria-disabled]:focus,.btn-inverse[aria-disabled]:active,.btn-inverse[aria-disabled].active,.btn-inverse fieldset[disabled],.btn-inverse fieldset[disabled]:hover,.btn-inverse fieldset[disabled]:focus,.btn-inverse fieldset[disabled]:active,.btn-inverse fieldset[disabled].active{border-color:#252C36;background-color:#252C36}.btn-inverse.btn-bordered{background-color:transparent;color:#252C36}.btn-inverse.btn-bordered:hover,.btn-inverse.btn-bordered:focus,.btn-inverse.btn-bordered:active,.btn-inverse.btn-bordered.active,.open>.btn-inverse.btn-bordered.dropdown-toggle{color:#fff;border-color:#252C36;background-color:#252C36}.btn-inverse.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#252C36}.btn-inverse.btn-link:hover{border-color:#eee;background-color:#eee}.btn-success{color:#fff;border-color:#76CA02;background-color:#76CA02}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;border-color:#5ea202;background-color:#5ea202}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled]:active,.btn-success[disabled].active,.btn-success[aria-disabled],.btn-success[aria-disabled]:hover,.btn-success[aria-disabled]:focus,.btn-success[aria-disabled]:active,.btn-success[aria-disabled].active,.btn-success fieldset[disabled],.btn-success fieldset[disabled]:hover,.btn-success fieldset[disabled]:focus,.btn-success fieldset[disabled]:active,.btn-success fieldset[disabled].active{border-color:#76CA02;background-color:#76CA02}.btn-success.btn-bordered{background-color:transparent;color:#76CA02}.btn-success.btn-bordered:hover,.btn-success.btn-bordered:focus,.btn-success.btn-bordered:active,.btn-success.btn-bordered.active,.open>.btn-success.btn-bordered.dropdown-toggle{color:#fff;border-color:#76CA02;background-color:#76CA02}.btn-success.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#76CA02}.btn-success.btn-link:hover{border-color:#eee;background-color:#eee}.btn-info{color:#fff;border-color:#48B0F7;background-color:#48B0F7}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;border-color:#3a8dc6;background-color:#3a8dc6}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled]:active,.btn-info[disabled].active,.btn-info[aria-disabled],.btn-info[aria-disabled]:hover,.btn-info[aria-disabled]:focus,.btn-info[aria-disabled]:active,.btn-info[aria-disabled].active,.btn-info fieldset[disabled],.btn-info fieldset[disabled]:hover,.btn-info fieldset[disabled]:focus,.btn-info fieldset[disabled]:active,.btn-info fieldset[disabled].active{border-color:#48B0F7;background-color:#48B0F7}.btn-info.btn-bordered{background-color:transparent;color:#48B0F7}.btn-info.btn-bordered:hover,.btn-info.btn-bordered:focus,.btn-info.btn-bordered:active,.btn-info.btn-bordered.active,.open>.btn-info.btn-bordered.dropdown-toggle{color:#fff;border-color:#48B0F7;background-color:#48B0F7}.btn-info.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#48B0F7}.btn-info.btn-link:hover{border-color:#eee;background-color:#eee}.btn-warning{color:#fff;border-color:#F99B1D;background-color:#F99B1D}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;border-color:#c77c17;background-color:#c77c17}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,.btn-warning[aria-disabled],.btn-warning[aria-disabled]:hover,.btn-warning[aria-disabled]:focus,.btn-warning[aria-disabled]:active,.btn-warning[aria-disabled].active,.btn-warning fieldset[disabled],.btn-warning fieldset[disabled]:hover,.btn-warning fieldset[disabled]:focus,.btn-warning fieldset[disabled]:active,.btn-warning fieldset[disabled].active{border-color:#F99B1D;background-color:#F99B1D}.btn-warning.btn-bordered{background-color:transparent;color:#F99B1D}.btn-warning.btn-bordered:hover,.btn-warning.btn-bordered:focus,.btn-warning.btn-bordered:active,.btn-warning.btn-bordered.active,.open>.btn-warning.btn-bordered.dropdown-toggle{color:#fff;border-color:#F99B1D;background-color:#F99B1D}.btn-warning.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#F99B1D}.btn-warning.btn-link:hover{border-color:#eee;background-color:#eee}.btn-danger{color:#fff;border-color:#ED1C24;background-color:#ED1C24}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;border-color:#be161d;background-color:#be161d}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,.btn-danger[aria-disabled],.btn-danger[aria-disabled]:hover,.btn-danger[aria-disabled]:focus,.btn-danger[aria-disabled]:active,.btn-danger[aria-disabled].active,.btn-danger fieldset[disabled],.btn-danger fieldset[disabled]:hover,.btn-danger fieldset[disabled]:focus,.btn-danger fieldset[disabled]:active,.btn-danger fieldset[disabled].active{border-color:#ED1C24;background-color:#ED1C24}.btn-danger.btn-bordered{background-color:transparent;color:#ED1C24}.btn-danger.btn-bordered:hover,.btn-danger.btn-bordered:focus,.btn-danger.btn-bordered:active,.btn-danger.btn-bordered.active,.open>.btn-danger.btn-bordered.dropdown-toggle{color:#fff;border-color:#ED1C24;background-color:#ED1C24}.btn-danger.btn-link{text-decoration:none;border-color:transparent;background-color:transparent;color:#ED1C24}.btn-danger.btn-link:hover{border-color:#eee;background-color:#eee}.btn-lg{font-size:16px}.btn-lg img{height:calc(12px + 4px)}.btn-sm{font-size:12px}.btn-sm img{height:calc(12px + 4px)}.btn-image{padding:0;vertical-align:middle;border-style:none;background-color:transparent}.btn-image img{display:block;height:auto}.btn-image:hover,.btn-image:focus{background-color:transparent}.btn-icon>img,.btn-icon>.glyphicon{margin:0}.btn-icon-right>img,.btn-icon-right>.glyphicon{float:right;margin-left:5px}.btn-icon-top{padding-right:0;padding-left:0}.btn-icon-top>img,.btn-icon-top>.glyphicon{display:block;margin:0 0 5px 0}.mx-checkbox.label-after{flex-wrap:wrap}.mx-checkbox.label-after .control-label{padding:0}input[type="checkbox"]{position:relative !important;width:16px;height:16px;margin:0 !important;cursor:pointer;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;-webkit-user-select:none;user-select:none;appearance:none;-moz-appearance:none;-webkit-appearance:none}input[type='checkbox']::-ms-check{color:#D7D7D7;border-color:#D7D7D7;border-radius:4px;background-color:#fff}input[type='checkbox']:focus::-ms-check,input[type='checkbox']:checked::-ms-check{color:#0595DB;border-color:#0595DB;background-color:#fff}input[type='checkbox']:before,input[type='checkbox']:after{position:absolute;display:block;transition:all 0.3s ease}input[type='checkbox']:before{width:100%;height:100%;content:'';border:1px solid #D7D7D7;border-radius:4px;background-color:transparent}input[type='checkbox']:after{width:8px;height:4px;margin:5px 4px;transform:rotate(-45deg);pointer-events:none;border:2px solid #FFFFFF;border-top:0;border-right:0}input[type='checkbox']:not(:disabled):not(:checked):hover:after{content:'';border-color:#D7D7D7}input[type='checkbox']:checked:before{border-color:#0595DB;background-color:#0595DB}input[type='checkbox']:checked:after{content:''}input[type='checkbox']:disabled:before{background-color:#eee}input[type='checkbox']:checked:disabled:before{border-color:transparent;background-color:rgba(5,149,219,0.4)}input[type='checkbox']:disabled:after,input[type='checkbox']:checked:disabled:after{border-color:#eee}input[type='checkbox']+.control-label{margin-left:8px}.mx-grid{padding:0px;border:0;border-radius:0}.mx-grid .mx-grid-controlbar{margin:10px 0}.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-button{padding:6px;color:#888;border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0)}.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-button:hover{color:#0595DB;border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0)}.mx-grid .mx-grid-controlbar .mx-grid-pagingbar .mx-grid-paging-status{padding:0 8px 8px}.mx-grid .mx-grid-searchbar{margin:10px 0}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-label{vertical-align:middle}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-label label{padding-top:5px}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input{display:inline-flex}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input .form-control{height:28px;font-size:11px}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input select.form-control{padding:3px;vertical-align:middle}.mx-grid .mx-grid-searchbar .mx-grid-search-item .mx-grid-search-input .mx-button{height:28px;padding-top:2px;padding-bottom:2px}.mx-dataview .mx-grid{border:0}.mx-datagrid table{border-width:0;background-color:transparent}.mx-datagrid table th{border-style:solid;border-color:#D7D7D7;border-top-width:0;border-right:0;border-bottom-width:1px;border-left:0;background-color:rgba(0,0,0,0);padding:15px 15px 15px 15px;vertical-align:middle}.mx-datagrid table th .mx-datagrid-head-caption{white-space:normal}.mx-datagrid table tbody tr td{-webkit-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-o-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transform-style:initial;padding:15px 15px 15px 15px;vertical-align:middle;border-width:0;border-color:#D7D7D7;border-bottom-width:1px;border-bottom-style:solid;background-color:#fff}.mx-datagrid table tbody tr td:focus{outline:none}.mx-datagrid table tbody tr td .mx-datagrid-data-wrapper{text-overflow:ellipsis}.mx-datagrid table tbody tr.selected td,.mx-datagrid table tbody tr.selected:hover td{color:#555;background-color:#f3f3f3 !important}.mx-datagrid table tfoot>tr>th{padding:15px 15px 15px 15px;border-width:0;background-color:#D7D7D7}.mx-datagrid table tfoot>tr>td{padding:15px 15px 15px 15px;border-width:0;background-color:#fff;font-weight:bold}.mx-datagrid table *:focus{outline:0}.datagrid-striped.mx-datagrid table th{border-width:0}.datagrid-striped.mx-datagrid table tbody tr td{border-top-width:0}.datagrid-striped.mx-datagrid table tbody tr:nth-child(odd) td{background-color:#fbfbfb}.datagrid-bordered.mx-datagrid table{border:1px solid}.datagrid-bordered.mx-datagrid table th{border:1px solid #D7D7D7}.datagrid-bordered.mx-datagrid table tbody tr td{border:1px solid #D7D7D7}.datagrid-bordered.mx-datagrid tfoot>tr>th{border-width:0;background-color:#D7D7D7}.datagrid-bordered.mx-datagrid tfoot>tr>td{border-width:1px}.datagrid-transparent.mx-datagrid table{background-color:transparent}.datagrid-transparent.mx-datagrid table tbody tr:nth-of-type(odd){background-color:transparent}.datagrid-transparent.mx-datagrid table tbody tr td{background-color:transparent}.datagrid-hover.mx-datagrid table tbody tr:hover td{background-color:#f7f7f7 !important}.datagrid-hover.mx-datagrid table tbody tr.selected:hover td{background-color:#ebebeb !important}.datagrid-lg.mx-datagrid table th{padding:30px 30px 30px 30px}.datagrid-lg.mx-datagrid table tbody tr td{padding:30px 30px 30px 30px}.datagrid-sm.mx-datagrid table th{padding:7.5px 7.5px 7.5px 7.5px}.datagrid-sm.mx-datagrid table tbody tr td{padding:7.5px 7.5px 7.5px 7.5px}.datagrid-fullsearch.mx-grid .mx-grid-reset-button{display:none}.datagrid-fullsearch.mx-grid .mx-grid-search-item{display:block}.datagrid-fullsearch.mx-grid .mx-grid-search-label{display:none}.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-controls{position:absolute;right:0}.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input{width:80%;padding-left:0}.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input .btn,.datagrid-fullsearch.mx-grid .mx-grid-searchbar .mx-grid-search-input .form-control{height:35px;font-size:12px}.mx-dataview .mx-dataview-controls{clear:both;margin-top:10px;padding:8px 0;border-top:1px solid #D7D7D7;border-radius:0;background-color:rgba(0,0,0,0)}.mx-dataview .mx-dataview-controls .mx-button{margin-right:0.3em;margin-bottom:0}.mx-dataview .mx-dataview-controls .mx-button:last-child{margin-right:0}.mx-dataview>.mx-dataview-content>.mx-container-nested>.row{margin-right:0;margin-left:0}.mx-dataview .mx-dataview-message{color:#555;background:#fff}.mx-calendar{z-index:10010 !important;padding:10px;font-size:12px;background:#fff;border-radius:4px;border:1px solid #D7D7D7;box-shadow:0 2px 10px 0 rgba(0,0,0,0.06)}.mx-calendar .mx-calendar-month-header{display:flex;flex-direction:row;justify-content:space-between;margin:0 3px 10px 3px}.mx-calendar .mx-calendar-month-next,.mx-calendar .mx-calendar-month-previous,.mx-calendar .mx-calendar-month-dropdown{border:0;cursor:pointer;background:transparent}.mx-calendar .mx-calendar-month-next:hover,.mx-calendar .mx-calendar-month-previous:hover{color:#0595DB}.mx-calendar .mx-calendar-month-dropdown{display:flex;align-items:center;justify-content:center;position:relative}.mx-calendar .mx-calendar-month-dropdown .mx-calendar-month-current:first-child{margin-right:10px}.mx-calendar th{color:#0595DB}.mx-calendar th,.mx-calendar td{width:35px;height:35px;text-align:center}.mx-calendar td{color:#555}.mx-calendar td:hover{cursor:pointer;border-radius:50%;color:#0595DB;background-color:#ddd}.mx-calendar .mx-calendar-day-month-next,.mx-calendar .mx-calendar-day-month-previous{color:#c8c8c8}.mx-calendar .mx-calendar-day-selected,.mx-calendar .mx-calendar-day-selected:hover{color:#fff;border-radius:50%;background:#0595DB}.mx-calendar .mx-calendar-year-switcher{text-align:center;margin-top:10px;color:#7dd2fc}.mx-calendar .mx-calendar-year-switcher span.mx-calendar-year-selected{color:#0595DB;margin-left:10px;margin-right:10px}.mx-calendar .mx-calendar-year-switcher span:hover{cursor:pointer;text-decoration:underline;background-color:transparent}.mx-calendar-month-dropdown-options{z-index:10020 !important;position:absolute;top:25px;padding:2px 10px;border-radius:4px;background-color:#fff}.mx-calendar-month-dropdown-options div{cursor:pointer;font-size:12px;padding:2px 0}.mx-calendar-month-dropdown-options div:hover,.mx-calendar-month-dropdown-options div:focus{color:#0595DB}.mx-header{z-index:100;display:flex;width:100%;height:45px;padding:0;text-align:initial;color:#555;border-bottom:1px solid #D7D7D7;background-color:#fff;box-shadow:0 1px 4px 0 rgba(0,0,0,0.14)}.mx-header div.mx-header-left,.mx-header div.mx-header-right{position:relative;top:initial;right:initial;left:initial;display:flex;align-items:center;width:25%;height:100%}.mx-header div.mx-header-left .mx-placeholder,.mx-header div.mx-header-right .mx-placeholder{display:flex;align-items:center;height:100%}.mx-header div.mx-header-left .mx-placeholder{order:1}.mx-header div.mx-header-left .mx-placeholder .mx-placeholder{justify-content:flex-start}.mx-header div.mx-header-center{overflow:hidden;flex:1;order:2;text-align:center}.mx-header div.mx-header-center .mx-title{overflow:hidden;width:100%;margin:0;text-overflow:ellipsis;color:#555;font-size:17px;line-height:45px}.mx-header div.mx-header-right{order:3}.mx-header div.mx-header-right .mx-placeholder{justify-content:flex-end}.mx-header .mx-link{display:flex;align-items:center;height:100%;-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;text-decoration:none}.mx-header .mx-link .glyphicon{top:0;font-size:23px}.mx-header .mx-link:active{-webkit-transform:translateY(1px);transform:translateY(1px);color:#036290}.mx-header .mx-link,.mx-header .btn,.mx-header img{padding:0 8px}.mx-header .mx-sidebartoggle{font-size:24px;line-height:45px}.mx-header .mx-sidebartoggle img{height:20px}body[dir='rtl'] .mx-header-left{order:3}body[dir='rtl'] .mx-header-right{order:1}.mx-glyphicon:before{display:inline-block;margin-top:-0.2em;margin-right:0.4555555em;vertical-align:middle;font-family:"Glyphicons Halflings";font-weight:normal;font-style:normal;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mx-groupbox{margin:0}.mx-groupbox>.mx-groupbox-header{margin:0;color:#555;border-width:1px 1px 0 1px;border-style:solid;border-color:#ddd;background:#ddd;font-size:14px}.mx-groupbox>.mx-groupbox-header .mx-groupbox-collapse-icon{margin-top:0.1em}.mx-groupbox>.mx-groupbox-body{padding:10px 15px;border-width:1px;border-style:solid;border-color:#ddd;background-color:#FFFFFF}.mx-groupbox .mx-groupbox-header+.mx-groupbox-body{border-top:none}.groupbox-default>.mx-groupbox-header{color:#555;border-color:#ddd;background:#ddd}.groupbox-default>.mx-groupbox-body{border-color:#ddd}.groupbox-primary>.mx-groupbox-header{color:#fff;border-color:#0595DB;background:#0595DB}.groupbox-primary>.mx-groupbox-body{border-color:#0595DB}.groupbox-inverse>.mx-groupbox-header{color:#fff;border-color:#252C36;background:#252C36}.groupbox-inverse>.mx-groupbox-body{border-color:#252C36}.groupbox-success>.mx-groupbox-header{color:#fff;border-color:#76CA02;background:#76CA02}.groupbox-success>.mx-groupbox-body{border-color:#76CA02}.groupbox-info>.mx-groupbox-header{color:#fff;border-color:#48B0F7;background:#48B0F7}.groupbox-info>.mx-groupbox-body{border-color:#48B0F7}.groupbox-warning>.mx-groupbox-header{color:#fff;border-color:#F99B1D;background:#F99B1D}.groupbox-warning>.mx-groupbox-body{border-color:#F99B1D}.groupbox-danger>.mx-groupbox-header{color:#fff;border-color:#ED1C24;background:#ED1C24}.groupbox-danger>.mx-groupbox-body{border-color:#ED1C24}.groupbox-white>.mx-groupbox-header{color:#555;border-color:#fff;background:#fff}.groupbox-white>.mx-groupbox-body{border-color:#fff}.groupbox-transparent{border-bottom:1px solid #D7D7D7}.groupbox-transparent>.mx-groupbox-header{padding:15px 0;color:#222;border-style:none;background:transparent;font-size:16px;font-weight:600}.groupbox-transparent .mx-groupbox-body{padding:15px 0;border-style:none;background-color:transparent}.groupbox-transparent .mx-groupbox-collapse-icon{color:#0595DB}.groupbox-h1>.mx-groupbox-header{font-size:31px}.groupbox-h2>.mx-groupbox-header{font-size:26px}.groupbox-h3>.mx-groupbox-header{font-size:24px}.groupbox-h4>.mx-groupbox-header{font-size:18px}.groupbox-h5>.mx-groupbox-header{font-size:14px}.groupbox-h6>.mx-groupbox-header{font-size:12px}.groupbox-callout>.mx-groupbox-header,.groupbox-callout>.mx-groupbox-body{border:0;background-color:#daeffd}.groupbox-callout .mx-groupbox-header+.mx-groupbox-body{padding-top:0}.groupbox-info.groupbox-callout>.mx-groupbox-header,.groupbox-info.groupbox-callout>.mx-groupbox-body{background-color:#daeffd}.groupbox-info.groupbox-callout>.mx-groupbox-header{color:#48B0F7}.groupbox-success.groupbox-callout>.mx-groupbox-header,.groupbox-success.groupbox-callout>.mx-groupbox-body{background-color:#e4f4cc}.groupbox-success.groupbox-callout>.mx-groupbox-header{color:#76CA02}.groupbox-warning.groupbox-callout>.mx-groupbox-header,.groupbox-warning.groupbox-callout>.mx-groupbox-body{background-color:#feebd2}.groupbox-warning.groupbox-callout>.mx-groupbox-header{color:#F99B1D}.groupbox-danger.groupbox-callout>.mx-groupbox-header,.groupbox-danger.groupbox-callout>.mx-groupbox-body{background-color:#fbd2d3}.groupbox-danger.groupbox-callout>.mx-groupbox-header{color:#ED1C24}img.img-rounded,.img-rounded img{border-radius:6px}img.img-thumbnail,.img-thumbnail img{display:inline-block;max-width:100%;height:auto;padding:4px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;border:1px solid #ddd;border-radius:4px;background-color:#FFFFFF;line-height:1.42857}img.img-circle,.img-circle img{border-radius:50%}img.img-auto,.img-auto img{width:auto !important;max-width:100% !important;height:auto !important;max-height:100% !important}img.img-center,.img-center img{margin-right:auto !important;margin-left:auto !important}.label{display:inline-block;padding:0.2em 0.6em 0.3em;text-align:center;vertical-align:baseline;white-space:nowrap;color:#ffffff;border-radius:0.25em;font-size:100%;line-height:1;margin:0}.label .form-control-static,.label .form-group div[class*='textBox']>.control-label,.form-group .label div[class*='textBox']>.control-label,.label .form-group div[class*='textArea']>.control-label,.form-group .label div[class*='textArea']>.control-label,.label .form-group div[class*='datePicker']>.control-label,.form-group .label div[class*='datePicker']>.control-label{all:unset;font-weight:normal}.label-default{color:#555;background-color:#ddd}.label-primary{color:#fff;background-color:#0595DB}.label-success{color:#fff;background-color:#76CA02}.label-inverse{color:#fff;background-color:#252C36}.label-info{color:#fff;background-color:#48B0F7}.label-warning{color:#fff;background-color:#F99B1D}.label-danger{color:#fff;background-color:#ED1C24}.mx-listview{padding:0}.mx-listview .mx-listview-searchbar{margin-bottom:15px}.mx-listview .mx-listview-searchbar .btn{width:auto}.mx-listview>.btn{width:100%;margin:10px auto}.mx-listview>ul{margin:0}.mx-listview>ul .mx-listview-empty{border-style:none;background-color:transparent}.mx-listview>ul>li{-webkit-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-o-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transform-style:initial;padding:15px 15px 15px 15px;border-width:1px 0 0 0;border-style:solid;border-color:#D7D7D7;background-color:#fff}.mx-listview>ul>li:first-child{border-radius:0}.mx-listview>ul>li:last-child{border-bottom:1px solid #D7D7D7;border-radius:0}.mx-listview>ul>li:focus,.mx-listview>ul>li:active{outline:0;background-color:#f7f7f7}.mx-listview>ul>li.selected{background-color:#f3f3f3}.mx-listview .mx-layoutgrid{padding-top:0 !important;padding-bottom:0 !important}.profile-phone .mx-listview .mx-listview-searchbar{margin-bottom:3px;background:#FFFFFF;box-shadow:0 1px 4px 0 rgba(0,0,0,0.14)}.profile-phone .mx-listview .mx-listview-searchbar input{padding:14px 15px;color:#555555;border-style:none;border-radius:0;box-shadow:none}.profile-phone .mx-listview .mx-listview-searchbar .btn{padding:14px 15px;color:inherit;border-style:none}.profile-phone .mx-listview>ul>li:first-child{border-top:none}.listview-bordered.mx-listview>ul>li{border:1px solid #D7D7D7;border-top:0}.listview-bordered.mx-listview>ul>li:first-child{border-top:1px solid #D7D7D7;border-radius:0}.listview-bordered.mx-listview>ul>li:last-child{border-radius:0}.listview-striped.mx-listview>ul>li:nth-child(2n+1){background-color:#fbfbfb}.listview-seperated.mx-listview>ul>li{margin-bottom:15px;border-width:1px;border-style:solid;border-radius:4px}.listview-stylingless.mx-listview>ul>li{padding:0;cursor:default;border:0;background-color:transparent}.listview-stylingless.mx-listview>ul>li:hover,.listview-stylingless.mx-listview>ul>li:focus,.listview-stylingless.mx-listview>ul>li:active{background-color:transparent}.listview-stylingless.mx-listview>ul>li.selected{background-color:transparent !important}.listview-stylingless.mx-listview>ul>li.selected:hover,.listview-stylingless.mx-listview>ul>li.selected:focus,.listview-stylingless.mx-listview>ul>li.selected:active{background-color:transparent !important}.listview-hover.mx-listview>ul>li:hover,.listview-hover.mx-listview>ul>li:focus,.listview-hover.mx-listview>ul>li:active{background-color:#f7f7f7 !important}.listview-hover.mx-listview>ul>li.selected:hover,.listview-hover.mx-listview>ul>li.selected:focus,.listview-hover.mx-listview>ul>li.selected:active{background-color:#ebebeb !important}.listview-lg.mx-listview>ul>li{padding:30px 30px 30px 30px}.listview-sm.mx-listview>ul>li{padding:7.5px 7.5px 7.5px 7.5px}.mx-listview[class*='lv-col']{overflow:hidden}.mx-listview[class*='lv-col']>ul{display:block;margin-right:-15px;margin-left:-15px}.mx-listview[class*='lv-col']>ul::before,.mx-listview[class*='lv-col']>ul::after{display:table;clear:both;content:' '}.mx-listview[class*='lv-col']>ul>li{position:relative;display:block;float:left;min-height:1px;padding-right:15px;padding-left:15px;border:0}@media (max-width: 991px){.mx-listview[class*='lv-col']>ul>li{width:100% !important}}.mx-listview[class*='lv-col']>ul>li>.mx-dataview{overflow:hidden}.mx-listview[class*='lv-col'].lv-col-xs-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-xs-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-xs-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-xs-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-xs-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-xs-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-xs-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-xs-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-xs-1>ul>li{width:8.33333333% !important}@media (min-width: 768px){.mx-listview[class*='lv-col'].lv-col-sm-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-sm-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-sm-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-sm-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-sm-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-sm-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-sm-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-sm-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-sm-1>ul>li{width:8.33333333% !important}}@media (min-width: 992px){.mx-listview[class*='lv-col'].lv-col-md-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-md-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-md-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-md-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-md-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-md-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-md-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-md-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-md-1>ul>li{width:16.66666667% !important}}@media (min-width: 1200px){.mx-listview[class*='lv-col'].lv-col-lg-12>ul>li{width:100% !important}.mx-listview[class*='lv-col'].lv-col-lg-11>ul>li{width:91.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-10>ul>li{width:83.33333333% !important}.mx-listview[class*='lv-col'].lv-col-lg-9>ul>li{width:75% !important}.mx-listview[class*='lv-col'].lv-col-lg-8>ul>li{width:66.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-7>ul>li{width:58.33333333% !important}.mx-listview[class*='lv-col'].lv-col-lg-6>ul>li{width:50% !important}.mx-listview[class*='lv-col'].lv-col-lg-5>ul>li{width:41.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-4>ul>li{width:33.33333333% !important}.mx-listview[class*='lv-col'].lv-col-lg-3>ul>li{width:25% !important}.mx-listview[class*='lv-col'].lv-col-lg-2>ul>li{width:16.66666667% !important}.mx-listview[class*='lv-col'].lv-col-lg-1>ul>li{width:8.33333333% !important}}.modal-dialog .modal-content{border:1px solid #D7D7D7;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,0.2)}.modal-dialog .modal-content .modal-header{padding:15px 20px;border-bottom-color:#D7D7D7;border-radius:0;background-color:rgba(0,0,0,0)}.modal-dialog .modal-content .modal-header h4{margin:0;color:#555;font-size:16px;font-weight:bold}.modal-dialog .modal-content .modal-header .close{margin-top:-3px;opacity:1;color:#555;text-shadow:none;filter:alpha(opacity=100)}.modal-dialog .modal-content .modal-body{padding:20px}.modal-dialog .modal-content .modal-footer{display:flex;justify-content:flex-end;margin-top:0;padding:20px;border-style:none}.mx-window.mx-window-view .mx-window-body{overflow:hidden;padding:0}.mx-window.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-content,.mx-window.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-content{padding:20px}.mx-window.mx-window-view .mx-window-body>.mx-dataview>.mx-dataview-controls,.mx-window.mx-window-view .mx-window-body>.mx-placeholder>.mx-dataview>.mx-dataview-controls{display:flex;justify-content:flex-end;margin:0;padding:20px;text-align:left;border-top:1px solid #D7D7D7}.mx-window .mx-dataview-controls{padding-bottom:0}.mx-window .mx-layoutgrid{padding-right:0;padding-left:0}.mx-login .modal-body{padding:0 15px}.mx-login .modal-content input{height:56px;padding:12px 12px;border:1px solid #EEEEEE;background:#EEEEEE;box-shadow:none;font-size:16px}.mx-login .modal-content input:focus{border-color:#66AFE9}.mx-login .modal-header,.mx-login .modal-footer{border:0}.mx-login button{font-size:16px}.mx-login h4{color:#AAAAAA;font-size:20px;font-weight:bold}.mx-navbar{margin:0;border-style:none;border-radius:0;background-color:#252C36}.mx-navbar ul.nav{margin:0}.mx-navbar ul.nav>li.mx-navbar-item>a{display:flex;align-items:center;min-height:60px;padding:5px 15px;vertical-align:middle;color:#fff;border-radius:0;font-size:14px;font-weight:normal}.mx-navbar ul.nav>li.mx-navbar-item>a .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navbar ul.nav>li.mx-navbar-item>a:hover,.mx-navbar ul.nav>li.mx-navbar-item>a:focus,.mx-navbar ul.nav>li.mx-navbar-item>a.active{text-decoration:none;color:#fff;background-color:#2d3642}.mx-navbar ul.nav>li.mx-navbar-item>a:hover .caret,.mx-navbar ul.nav>li.mx-navbar-item>a:focus .caret,.mx-navbar ul.nav>li.mx-navbar-item>a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#fff;background-color:#36404e}.mx-navbar ul.nav>li.mx-navbar-item>a .mx-navbar-submenu::before{position:absolute;top:-9px;left:15px;width:0;height:0;content:'';-webkit-transform:rotate(360deg);transform:rotate(360deg);border-width:0 9px 9px 9px;border-style:solid;border-color:transparent transparent #2d3642 transparent}.mx-navbar ul.nav>li.mx-navbar-item>a img{width:20px;height:auto;margin-right:0.5em}.mx-navbar ul.nav>li.mx-navbar-item>a .glyphicon{top:0;margin-right:0.5em;vertical-align:middle;font-size:20px}.mx-navbar ul.nav>.mx-navbar-item.active a{color:#fff}.mx-navbar ul.nav>.mx-navbar-item>a:hover,.mx-navbar ul.nav>.mx-navbar-item>a:focus,.mx-navbar ul.nav>.mx-navbar-item.open>a,.mx-navbar ul.nav>.mx-navbar-item.open>a:hover,.mx-navbar ul.nav>.mx-navbar-item.open>a:focus{text-decoration:none;color:#fff;background-color:#2d3642}.mx-navbar ul.nav>.mx-navbar-item>a:hover .caret,.mx-navbar ul.nav>.mx-navbar-item>a:focus .caret,.mx-navbar ul.nav>.mx-navbar-item.open>a .caret,.mx-navbar ul.nav>.mx-navbar-item.open>a:hover .caret,.mx-navbar ul.nav>.mx-navbar-item.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a{color:#0595DB;background-color:#1d222a}.mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a .caret{border-top-color:#0595DB;border-bottom-color:#0595DB}@media (max-width: 768px){.mx-navbar ul.nav>li.mx-navbar-item>a{padding:10px 20px}.mx-navbar .mx-navbar-item.open .dropdown-menu{padding:0;border-radius:0;background-color:#1d222a}.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a{padding:10px 20px;color:#AAA;border-radius:0;font-size:12px;font-weight:normal}.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:hover,.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:focus{color:#0595DB;background-color:#1d222a}.mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a.active{color:#0595DB;background-color:#1d222a}}.mx-navbar:focus{outline:0}.region-topbar .mx-navbar{background-color:#fff}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a{color:#555;font-size:14px}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:hover,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:focus,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#555;background-color:#f5f5f5}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:hover .caret,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a:focus .caret,.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a.active .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#555;background-color:#ebebeb}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a .mx-navbar-submenu::before{border-color:transparent transparent #D7D7D7 transparent}.region-topbar .mx-navbar ul.nav>li.mx-navbar-item>a .glyphicon{font-size:1.2em}.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:hover,.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:focus,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.active a,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus{color:#555;background-color:#f5f5f5}.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:hover .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item>a:focus .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.active a .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover .caret,.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a{color:#0595DB;background-color:#fff}.region-topbar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a .caret{border-top-color:#0595DB;border-bottom-color:#0595DB}@media (max-width: 768px){.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu{background-color:#fff}.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a{color:#AAA;font-size:12px}.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:hover,.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:focus{color:#0595DB;background-color:#fff}.region-topbar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a.active{color:#0595DB;background-color:#fff}}.region-sidebar .mx-navbar{background-color:#252C36}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a{color:#fff;font-size:14px}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:hover,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:focus,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#fff;background-color:#2d3642}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:hover .caret,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a:focus .caret,.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a.active{color:#fff;background-color:#36404e}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a .mx-navbar-submenu::before{border-color:transparent transparent #2d3642 transparent}.region-sidebar .mx-navbar ul.nav>li.mx-navbar-item>a .glyphicon{font-size:20px}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:hover,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:focus,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.active a,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus{color:#fff;background-color:#2d3642}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:hover .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item>a:focus .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.active a .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:hover .caret,.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a{color:#0595DB;background-color:#1d222a}.region-sidebar .mx-navbar ul.nav>.mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem.active a .caret{border-top-color:#0595DB;border-bottom-color:#0595DB}@media (max-width: 768px){.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu{background-color:#fff}.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a{color:#AAA;font-size:12px}.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:hover,.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a:focus{color:#0595DB;background-color:#1d222a}.region-sidebar .mx-navbar .mx-navbar-item.open .dropdown-menu>li.mx-navbar-subitem>a.active{color:#0595DB;background-color:#1d222a}}.mx-navigationlist{margin:0;padding:0;list-style:none}.mx-navigationlist li.mx-navigationlist-item{-webkit-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-moz-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);-o-transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transition:all .3s 0s cubic-bezier(0.4, 0, 0.2, 1);transform-style:initial;padding:15px 15px 15px 15px;border-width:1px;border-style:none none solid none;border-color:#D7D7D7;border-radius:0;background-color:#fff}.mx-navigationlist li.mx-navigationlist-item:hover,.mx-navigationlist li.mx-navigationlist-item:focus{color:inherit;background-color:#f7f7f7}.mx-navigationlist li.mx-navigationlist-item.active{color:inherit;background-color:#f3f3f3}.mx-navigationtree{background-color:#252C36}.mx-navigationtree .navbar-inner>ul{margin:0;padding-left:0}.mx-navigationtree .navbar-inner>ul>li{padding:0;border-style:none}.mx-navigationtree .navbar-inner>ul>li>a{display:flex;align-items:center;height:60px;padding:5px 15px;color:#fff;border-bottom:1px solid #2d3642;border-radius:0;background-color:#252C36;text-shadow:none;font-size:14px;font-weight:normal}.mx-navigationtree .navbar-inner>ul>li>a .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navigationtree .navbar-inner>ul>li>a img{width:20px;height:auto;margin-right:0.5em}.mx-navigationtree .navbar-inner>ul>li>a .glyphicon{top:0;margin-right:0.5em;vertical-align:middle;font-size:20px}.mx-navigationtree .navbar-inner>ul>li a:hover,.mx-navigationtree .navbar-inner>ul>li a:focus,.mx-navigationtree .navbar-inner>ul>li a.active{text-decoration:none;color:#fff;background-color:#2d3642}.mx-navigationtree .navbar-inner>ul>li a:hover .caret,.mx-navigationtree .navbar-inner>ul>li a:focus .caret,.mx-navigationtree .navbar-inner>ul>li a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.mx-navigationtree .navbar-inner>ul>li a.active{color:#fff;border-left-color:#fff;background-color:#36404e}.mx-navigationtree li.mx-navigationtree-has-items>ul{margin:0;padding-left:0;background-color:#1d222a}.mx-navigationtree li.mx-navigationtree-has-items>ul li{margin:0;padding:0;border:0}.mx-navigationtree li.mx-navigationtree-has-items>ul li a{padding:12px 20px 12px 25px;text-decoration:none;color:#AAA;border:0;background-color:#1d222a;text-shadow:none;font-size:12px;font-weight:normal}.mx-navigationtree li.mx-navigationtree-has-items>ul li a:hover,.mx-navigationtree li.mx-navigationtree-has-items>ul li a:focus,.mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;outline:0;background-color:#1d222a}.mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;border:0;background-color:#1d222a}.mx-navigationtree:focus{outline:0}.region-topbar .mx-navigationtree{background-color:#fff}.region-topbar .mx-navigationtree .navbar-inner>ul>li>a{color:#555;border-color:#D7D7D7;background-color:#fff;font-size:14px}.region-topbar .mx-navigationtree .navbar-inner>ul>li>a .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navigationtree .navbar-inner>ul>li>a .glyphicon{font-size:1.2em}.region-topbar .mx-navigationtree .navbar-inner>ul>li a:hover,.region-topbar .mx-navigationtree .navbar-inner>ul>li a:focus,.region-topbar .mx-navigationtree .navbar-inner>ul>li a.active{color:#555;background-color:#f5f5f5}.region-topbar .mx-navigationtree .navbar-inner>ul>li a:hover .caret,.region-topbar .mx-navigationtree .navbar-inner>ul>li a:focus .caret,.region-topbar .mx-navigationtree .navbar-inner>ul>li a.active .caret{border-top-color:#555;border-bottom-color:#555}.region-topbar .mx-navigationtree .navbar-inner>ul>li a.active{color:#555;border-left-color:#555;background-color:#ebebeb}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul{background-color:#fff}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a{color:#AAA;background-color:#fff;font-size:12px}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:hover,.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:focus,.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#fff}.region-topbar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#fff}.region-sidebar .mx-navigationtree{background-color:#252C36}.region-sidebar .mx-navigationtree .navbar-inner>ul>li>a{color:#fff;border-color:#2d3642;background-color:#252C36;font-size:14px}.region-sidebar .mx-navigationtree .navbar-inner>ul>li>a .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navigationtree .navbar-inner>ul>li>a .glyphicon{font-size:20px}.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:hover,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:focus,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a.active{color:#fff;background-color:#2d3642}.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:hover .caret,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a:focus .caret,.region-sidebar .mx-navigationtree .navbar-inner>ul>li a.active .caret{border-top-color:#fff;border-bottom-color:#fff}.region-sidebar .mx-navigationtree .navbar-inner>ul>li a.active{color:#fff;border-left-color:#fff;background-color:#36404e}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul{background-color:#1d222a}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a{color:#AAA;background-color:#1d222a;font-size:12px}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:hover,.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a:focus,.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#1d222a}.region-sidebar .mx-navigationtree li.mx-navigationtree-has-items>ul li a.active{color:#0595DB;background-color:#1d222a}.nav-content-center-text-icons.mx-navigationtree .navbar-inner ul a{flex-direction:column;justify-content:center}.nav-content-center-text-icons.mx-navigationtree .navbar-inner ul a .glyphicon{margin:0 0 5px 0}.nav-content-center.mx-navigationtree .navbar-inner ul a{justify-content:center}.mx-menubar{padding:0;background-color:#252C36}.mx-menubar ul.mx-menubar-list{display:flex;width:100%;min-height:50px}.mx-menubar ul.mx-menubar-list li.mx-menubar-item{margin:0}.mx-menubar ul.mx-menubar-list li.mx-menubar-item>a{display:flex;overflow:hidden;align-items:center;justify-content:center;height:100%;padding:5px 15px;white-space:nowrap;color:#fff;border-radius:0;font-size:14px;font-weight:normal}.mx-menubar ul.mx-menubar-list li.mx-menubar-item>a img{margin-right:0.5em}.mx-menubar ul.mx-menubar-list li.mx-menubar-item>a .glyphicon{top:-1px;margin-right:0.5em;vertical-align:middle;font-size:20px}.mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,.mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus,.mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a,.mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a,.mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{text-decoration:none;color:#fff;background-color:#2d3642}.mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#fff;background-color:#36404e}.mx-menubar:focus{outline:0}.mx-menubar-vertical{background-color:#252C36}.mx-menubar-vertical ul.mx-menubar-list{display:flex}.mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item{display:block}.mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a{border-bottom:1px solid #2d3642}.mx-menubar-horizontal{box-shadow:2px 0 4px 0 rgba(0,0,0,0.14)}.mx-menubar-horizontal ul.mx-menubar-list li.mx-menubar-item{width:auto}.mx-menubar-horizontal ul.mx-menubar-list li.mx-menubar-item a{width:100%}.mx-menubar-horizontal.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item{width:50%}.mx-menubar-horizontal.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item{width:33.33333333%}.mx-menubar-horizontal.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item{width:25%}.mx-menubar-horizontal.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item{width:20%}.region-topbar .mx-menubar{background-color:#fff}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a{color:#555;font-size:14px}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon{font-size:1.2em}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a,.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#555;background-color:#f5f5f5}.region-topbar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#555;background-color:#ebebeb}.region-topbar .mx-menubar-vertical{background-color:#fff}.region-topbar .mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a{height:60px;border-color:#D7D7D7}.region-sidebar .mx-menubar{background-color:#252C36}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a{color:#fff;font-size:14px}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon{font-size:20px}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:hover,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item a:focus,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:hover a,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item:focus a,.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#fff;background-color:#2d3642}.region-sidebar .mx-menubar ul.mx-menubar-list li.mx-menubar-item.active a{color:#fff;background-color:#36404e}.region-sidebar .mx-menubar-vertical{background-color:#252C36}.region-sidebar .mx-menubar-vertical ul.mx-menubar-list li.mx-menubar-item a{border-color:#2d3642}@supports (padding-bottom: env(safe-area-inset-bottom)){.mx-menubar{padding-bottom:env(safe-area-inset-bottom)}}.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a{flex-direction:column;padding:8px 8px 6px 8px;line-height:normal;font-size:11px}.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a .glyphicon{display:block;margin:0 0 5px 0;font-size:18px}.bottom-nav-text-icons.mx-menubar ul.mx-menubar-list li.mx-menubar-item a img{display:block;height:18px;margin:0 0 5px 0}.mx-radiobuttons.inline .mx-radiogroup{display:flex;flex-direction:row}.mx-radiobuttons.inline .mx-radiogroup .radio{margin:0 20px 0 0}.mx-radiobuttons .radio:last-child{margin-bottom:0}.radio{display:flex !important;align-items:center;margin-top:0}input[type='radio']{position:relative !important;width:16px;height:16px;margin:0;cursor:pointer;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;-webkit-user-select:none;user-select:none;appearance:none;-moz-appearance:none;-webkit-appearance:none}input[type='radio']::-ms-check{color:#D7D7D7;border-color:#D7D7D7;background-color:#fff}input[type='radio']:focus::-ms-check,input[type='radio']:checked::-ms-check{color:#0595DB;border-color:#0595DB;background-color:#fff}input[type='radio']:before,input[type='radio']:after{position:absolute;display:block;transition:all 0.3s ease-in-out;border-radius:50%}input[type='radio']:before{width:100%;height:100%;content:'';border:1px solid #D7D7D7;background-color:transparent}input[type='radio']:after{top:50%;left:50%;width:50%;height:50%;transform:translate(-50%, -50%);pointer-events:none;background-color:#0595DB}input[type='radio']:not(:checked):after{transform:translate(-50%, -50%) scale(0);opacity:0}input[type='radio']:not(:disabled):not(:checked):hover:after{background-color:#D7D7D7}input[type='radio']:checked:after,input[type='radio']:not(:disabled):not(:checked):hover:after{content:'';transform:translate(-50%, -50%) scale(1);opacity:1}input[type='radio']:checked:before{border-color:#0595DB;background-color:#fff}input[type='radio']:disabled:before{background-color:#eee}input[type='radio']:checked:disabled:before{border-color:rgba(5,149,219,0.4)}input[type='radio']:checked:disabled:after{background-color:rgba(5,149,219,0.4)}input[type='radio']+label{margin-left:8px}.mx-tabcontainer .mx-tabcontainer-tabs{margin-bottom:20px;border-color:#D7D7D7}.mx-tabcontainer .mx-tabcontainer-tabs>li>a{margin-right:0;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;color:#888;font-weight:normal}.mx-tabcontainer .mx-tabcontainer-tabs>li>a:hover,.mx-tabcontainer .mx-tabcontainer-tabs>li>a:focus{background-color:#e4e4e4}.mx-tabcontainer .mx-tabcontainer-tabs>li.active>a,.mx-tabcontainer .mx-tabcontainer-tabs>li.active>a:hover,.mx-tabcontainer .mx-tabcontainer-tabs>li.active>a:focus{color:#555;border:1px solid #D7D7D7;border-bottom-color:transparent;background-color:#fff}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs{margin:0;text-align:center;border-style:none;background-color:#0595DB}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li{display:table-cell;float:none;width:1%;margin:0;text-align:center;border-style:none;border-radius:0}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li a{padding:15px;text-transform:uppercase;color:#FFFFFF;border-width:0 1px 0 0;border-style:solid;border-color:rgba(255,255,255,0.3);border-radius:0;font-size:12px;font-weight:normal}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li a:hover,.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li a:focus{background-color:inherit}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li:last-child a{border-right:none}.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a,.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:hover,.tab-mobile.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:focus{color:#FFFFFF;border-style:none;border-radius:0;background-color:#0477af}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs{border:0}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li>a{margin-right:2px;color:#888;border:1px solid #D7D7D7;border-radius:4px}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li>a:hover,.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li>a:focus{background-color:#e4e4e4}.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a,.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:hover,.tab-pills.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:focus{color:#FFFFFF;border-color:#0595DB;background-color:#0595DB}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs{border-width:3px}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li{margin-right:30px;margin-bottom:-3px}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li>a{padding:10px 0;color:#888;border:0;border-style:solid;border-color:transparent;border-bottom-width:3px;border-radius:0}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li>a:hover,.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li>a:focus{color:#888;border:0;border-color:transparent;background:transparent}.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a,.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:hover,.tab-lined.mx-tabcontainer>.mx-tabcontainer-tabs li.active>a:focus{color:#0595DB;border:0;border-bottom:3px solid #0595DB;background-color:transparent}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs{width:100%;border-bottom:0}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li{display:table-cell;float:none;width:1%;margin:0}@media (max-width: 767px){.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li{display:block;width:100%}}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li>a{text-align:center;border-bottom:1px solid #D7D7D7}.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a{border-bottom-color:transparent;border-radius:4px}@media (max-width: 767px){.tab-justified.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a{border-bottom-color:#D7D7D7}}.tab-bordered.mx-tabcontainer>.mx-tabcontainer-tabs{margin:0}.tab-bordered.mx-tabcontainer>.mx-tabcontainer-content{padding:10px;border-width:0 1px 1px 1px;border-style:solid;border-color:#D7D7D7;background-color:#FFFFFF}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs{position:relative;display:flex;justify-content:space-between;border-style:none}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs::before{position:absolute;top:16px;display:block;width:100%;height:1px;content:"";background-color:#D7D7D7}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li{position:relative;float:none;width:100%;text-align:center}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li>a{width:33px;height:33px;margin:auto;padding:0;text-align:center;color:#ddd;border:1px solid #D7D7D7;border-radius:100%;background-color:#FFFFFF;font-size:18px;font-weight:bold;line-height:33px}.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a,.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:hover,.tab-wizard.mx-tabcontainer>.mx-tabcontainer-tabs>li.active>a:focus{color:#FFFFFF;border-color:#0595DB;background-color:#0595DB}th{font-weight:bold}html body .mx-page table.mx-table th.nopadding,html body .mx-page table.mx-table td.nopadding{padding:0}table.mx-table>tbody>tr>th{padding:8px 8px 8px 8px}table.mx-table>tbody>tr>th s *{color:#666;font-weight:bold;font-weight:600}table.mx-table>tbody>tr>th>label{padding-top:7px;padding-bottom:6px}table.mx-table>tbody>tr>td{padding:8px 8px 8px 8px}table.mx-table>tbody>tr>td>div>label,table.mx-table>tbody>tr>td .mx-referenceselector-input-wrapper label{padding-top:7px;padding-bottom:6px}.mx-templategrid table.mx-table>tbody>tr>th,.mx-templategrid table.mx-table>tbody>tr>td{padding:8px 8px 8px 8px}.mx-list table.mx-table>tbody>tr>th,.mx-list table.mx-table>tbody>tr>td{padding:8px 8px 8px 8px}table.table-lined.mx-table>tbody>tr>td{border-width:1px 0;border-style:solid;border-color:#D7D7D7}table.table-bordered.mx-table>tbody>tr>th,table.table-bordered.mx-table>tbody>tr>td{border-width:1px;border-style:solid;border-color:#D7D7D7}table.table-compact.mx-table>tbody>tr>th,table.table-compact.mx-table>tbody>tr>td{padding-top:2px;padding-bottom:2px}table.table-sideless.mx-table>tbody>tr>td,table.table-sideless.mx-table>tbody>tr>th{padding-right:0}table.table-sideless.mx-table>tbody>tr>th:first-child,table.table-sideless.mx-table>tbody>tr>td:first-child{padding-left:0}table.table-spaceless.mx-table>tbody>tr>th,table.table-spaceless.mx-table>tbody>tr>td{padding:0}table.table-vertical.mx-table>tbody>tr>th{padding-bottom:0}table.table-vertical.mx-table>tbody>tr>th>label{padding:0}table.table-vertical.mx-table>tbody>tr>th>div>label{padding:0}table.table-align-vertical-middle.mx-table>tbody>tr>th,table.table-align-vertical-middle.mx-table>tbody>tr>td{vertical-align:middle}table.table-label-compact.mx-table>tbody>tr>th>label,table.table-label-compact.mx-table>tbody>tr>td>label{margin:0;padding:0}table.table-label-compact.mx-table>tbody>tr>th>div>label,table.table-label-compact.mx-table>tbody>tr>th .mx-referenceselector-input-wrapper label,table.table-label-compact.mx-table>tbody>tr>td>div>label,table.table-label-compact.mx-table>tbody>tr>td .mx-referenceselector-input-wrapper label{margin:0;padding:0}table.table-row-s.mx-table>tbody>tr>th,table.table-row-s.mx-table>tbody>tr>td{height:55px}table.table-row-m.mx-table>tbody>tr>th,table.table-row-m.mx-table>tbody>tr>td{height:70px}table.table-row-l.mx-table>tbody>tr>th,table.table-row-l.mx-table>tbody>tr>td{height:120px}table.table-fixed{table-layout:fixed}.mx-templategrid .mx-templategrid-content-wrapper{table-layout:fixed}.mx-templategrid .mx-templategrid-item{padding:15px 15px 15px 15px;cursor:default;background-color:#fff}.mx-templategrid .mx-templategrid-item:hover{background-color:transparent}.mx-templategrid .mx-templategrid-item.selected{background-color:#f3f3f3 !important}.mx-templategrid .mx-layoutgrid{padding-top:0 !important;padding-bottom:0 !important}.templategrid-selectable.mx-templategrid .mx-templategrid-item{cursor:pointer}.templategrid-lined.mx-templategrid .mx-grid-content{border-top-width:2px;border-top-style:solid;border-top-color:#D7D7D7}.templategrid-lined.mx-templategrid .mx-templategrid-item{border-top:1px solid #D7D7D7;border-right:none;border-bottom:1px solid #D7D7D7;border-left:none}.templategrid-striped.mx-templategrid .mx-templategrid-row:nth-child(odd) .mx-templategrid-item{background-color:#F9F9F9}.templategrid-stylingless.mx-templategrid .mx-templategrid-item{padding:0;cursor:default;border:0;background-color:transparent}.templategrid-stylingless.mx-templategrid .mx-templategrid-item:hover{background-color:transparent}.templategrid-stylingless.mx-templategrid .mx-templategrid-item.selected{background-color:transparent !important}.templategrid-stylingless.mx-templategrid .mx-templategrid-item.selected:hover{background-color:transparent !important}.templategrid-transparent.mx-templategrid .mx-templategrid-item{border:0;background-color:transparent}.templategrid-hover.mx-templategrid .mx-templategrid-item:hover{background-color:#f7f7f7 !important}.templategrid-hover.mx-templategrid .mx-templategrid-item.selected{background-color:#f3f3f3 !important}.templategrid-hover.mx-templategrid .mx-templategrid-item.selected:hover{background-color:#ebebeb !important}.templategrid-lg.mx-templategrid .mx-templategrid-item{padding:30px 30px 30px 30px}.templategrid-sm.mx-templategrid .mx-templategrid-item{padding:7.5px 7.5px 7.5px 7.5px}.mx-templategrid[class*="tg-col"]{overflow:hidden}.mx-templategrid[class*="tg-col"] .mx-templategrid-content-wrapper{display:block}.mx-templategrid[class*="tg-col"] .mx-templategrid-row{display:block;margin-right:-15px;margin-left:-15px}.mx-templategrid[class*="tg-col"] .mx-templategrid-row::before,.mx-templategrid[class*="tg-col"] .mx-templategrid-row::after{display:table;clear:both;content:" "}.mx-templategrid[class*="tg-col"] .mx-templategrid-item{position:relative;display:block;float:left;min-height:1px;padding-right:15px;padding-left:15px;border:0}@media (max-width: 992px){.mx-templategrid[class*="tg-col"] .mx-templategrid-item{width:100% !important}}.mx-templategrid[class*="tg-col"] .mx-templategrid-item .mx-dataview{overflow:hidden}.mx-templategrid[class*="tg-col"].tg-col-xs-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-xs-1 .mx-templategrid-item{width:8.33333333% !important}@media (min-width: 768px){.mx-templategrid[class*="tg-col"].tg-col-sm-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-sm-1 .mx-templategrid-item{width:8.33333333% !important}}@media (min-width: 992px){.mx-templategrid[class*="tg-col"].tg-col-md-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-md-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-md-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-md-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-md-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-md-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-md-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-md-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-md-1 .mx-templategrid-item{width:8.33333333% !important}}@media (min-width: 1200px){.mx-templategrid[class*="tg-col"].tg-col-lg-12 .mx-templategrid-item{width:100% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-11 .mx-templategrid-item{width:91.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-10 .mx-templategrid-item{width:83.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-9 .mx-templategrid-item{width:75% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-8 .mx-templategrid-item{width:66.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-7 .mx-templategrid-item{width:58.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-6 .mx-templategrid-item{width:50% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-5 .mx-templategrid-item{width:41.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-4 .mx-templategrid-item{width:33.33333333% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-3 .mx-templategrid-item{width:25% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-2 .mx-templategrid-item{width:16.66666667% !important}.mx-templategrid[class*="tg-col"].tg-col-lg-1 .mx-templategrid-item{width:8.33333333% !important}}p{line-height:1.78571}label{padding-top:0}.mx-title{margin:15px 0 30px 0;color:#17347B;font-size:31px;font-weight:normal}h1,.h1,.h1>*{font-size:31px}h2,.h2,.h2>*{font-size:26px}h3,.h3,.h3>*{font-size:24px}h4,.h4,.h4>*{font-size:18px}h5,.h5,.h5>*{font-size:14px}h6,.h6,.h6>*{font-size:12px}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin:15px 0 30px 0;color:#17347B;font-weight:normal;line-height:1.3}.text-small{font-size:12px !important}.text-large{font-size:16px !important}.text-light,.text-light>*,.text-light label{font-weight:100 !important}.text-normal,.text-normal>*,.text-normal label{font-weight:normal !important}.text-semibold,.text-semibold>*,.text-semibold label{font-weight:600 !important}.text-bold,.text-bold>*,.text-bold label{font-weight:bold !important}.text-default,.text-default:hover{color:#555 !important}.text-primary,.text-primary:hover{color:#0595DB !important}.text-info,.text-info:hover{color:#48B0F7 !important}.text-success,.text-success:hover{color:#76CA02 !important}.text-warning,.text-warning:hover{color:#F99B1D !important}.text-danger,.text-danger:hover{color:#ED1C24 !important}.text-header{color:#17347B !important}.text-detail{color:#888 !important}.text-white{color:#ffffff}.text-left{text-align:left !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-justify{text-align:justify !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-break{word-break:break-all !important;word-break:break-word !important;-ms-word-break:break-all !important;-webkit-hyphens:auto !important;-moz-hyphens:auto !important;hyphens:auto !important}.text-nowrap{white-space:nowrap !important}.text-nowrap{overflow:hidden !important;max-width:100% !important;white-space:nowrap !important;text-overflow:ellipsis !important}.mx-layoutgrid{width:100%;margin-right:auto;margin-left:auto;padding-right:15px;padding-left:15px}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.row::before,.row::after{content:normal}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width: 576px){.mx-layoutgrid-fixed{max-width:540px}}@media (min-width: 768px){.mx-layoutgrid-fixed{max-width:720px}}@media (min-width: 992px){.mx-layoutgrid-fixed{max-width:960px}}@media (min-width: 1200px){.mx-layoutgrid-fixed{max-width:1140px}}@media (min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width: 768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.mx-progress{color:#555;background:#F5F8FD}.mx-progress .mx-progress-message{color:#555}.mx-progress .mx-progress-indicator{position:relative;overflow:hidden;width:100%;max-width:100%;height:2px;margin:auto;padding:0;border-radius:0;background:#eee}.mx-progress .mx-progress-indicator:before,.mx-progress .mx-progress-indicator:after{position:absolute;top:0;left:0;display:block;width:50%;height:2px;content:"";transform:translate3d(-100%, 0, 0);background:#0595DB}.mx-progress .mx-progress-indicator::before{animation:loader 2s infinite}.mx-progress .mx-progress-indicator::after{animation:loader 2s -2s infinite}@keyframes loader{0%{transform:translate3d(-100%, 0, 0)}100%{transform:translate3d(200%, 0, 0)}}.d-none{display:none !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.show,.d-block{display:block !important}.table,.d-table{display:table !important}.table-row,.d-table-row{display:table-row !important}.table-cell,.d-table-cell{display:table-cell !important}.hide,.hidden{display:none !important;visibility:hidden !important}.invisible{visibility:hidden !important}.display-ie8-only:not([attr*=""]){display:none !important;padding:0 !important}.list-nostyle ul{margin:0 !important;padding:0 !important}.list-nostyle ul li{list-style-type:none !important}.nowrap,.nowrap *{overflow:hidden !important;white-space:nowrap !important;text-overflow:ellipsis !important}.table{display:table !important}.table-row{display:table-row !important}.table-cell{display:table-cell !important}.pull-left{float:left !important}.pull-right{float:right !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.row-left{display:flex !important;align-items:center !important;flex-flow:row !important;justify-content:flex-start !important}.row-center{display:flex !important;align-items:center !important;flex-flow:row !important;justify-content:center !important}.row-right{display:flex !important;align-items:center !important;flex-flow:row !important;justify-content:flex-end !important}.col-left{display:flex !important;align-items:flex-start !important;flex-direction:column !important;justify-content:center !important}.col-center{display:flex !important;align-items:center !important;flex-direction:column !important;justify-content:center !important}.col-right{display:flex !important;align-items:flex-end !important;flex-direction:column !important;justify-content:center !important}@media (max-width: 767px){.hide-phone{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hide-tablet{display:none !important}}@media (min-width: 992px){.hide-desktop{display:none !important}}@media (max-width: 575px){.hide-xs,.hidden-xs,.d-xs-none{display:none !important}.d-xs-flex{display:flex !important}.d-xs-inline-flex{display:inline-flex !important}.d-xs-inline{display:inline !important}.d-xs-inline-block{display:inline-block !important}.d-xs-block{display:block !important}.d-xs-table{display:table !important}.d-xs-table-row{display:table-row !important}.d-xs-table-cell{display:table-cell !important}}@media (min-width: 576px) and (max-width: 767px){.hide-sm,.hidden-sm,.d-sm-none{display:none !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.hide-md,.hidden-md,.d-md-none{display:none !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1200px){.hide-lg,.hidden-lg,.d-lg-none{display:none !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}}@media (min-width: 1200px){.hide-xl,.hidden-xl,.d-xl-none{display:none !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}}.mx-tooltip .dijitTooltipContainer{border-width:1px;border-color:#888;border-radius:4px;background:#ffffff;box-shadow:0 6px 12px rgba(0,0,0,0.175)}.mx-tooltip .dijitTooltipContainer .mx-tooltip-content{padding:10px}.mx-tooltip .dijitTooltipContainer .form-group{margin-bottom:5px}.mx-tooltip .dijitTooltipConnector{width:0;height:0;margin-left:-10px;border-width:10px 10px 10px 0;border-style:solid;border-color:transparent;border-right-color:#888}.dijitBorderContainer{padding:5px;background-color:#fcfcfc}.dijitBorderContainer .dijitSplitterV,.dijitBorderContainer .dijitGutterV{width:5px;border:0;background:#fcfcfc}.dijitBorderContainer .dijitSplitterH,.dijitBorderContainer .dijitGutterH{height:5px;border:0;background:#fcfcfc}.dijitBorderContainer .dijitSplitterH .dijitSplitterThumb{top:2px;width:19px;height:1px;background:#b0b0b0}.dijitBorderContainer .dijitSplitterV .dijitSplitterThumb{left:2px;width:1px;height:19px;background:#b0b0b0}.dijitBorderContainer .dijitSplitContainer-child,.dijitBorderContainer .dijitBorderContainer-child{border:1px solid #cccccc}.dijitBorderContainer .dijitBorderContainer-dijitTabContainerTop,.dijitBorderContainer .dijitBorderContainer-dijitTabContainerBottom,.dijitBorderContainer .dijitBorderContainer-dijitTabContainerLeft,.dijitBorderContainer .dijitBorderContainer-dijitTabContainerRight{border:none}.dijitBorderContainer .dijitBorderContainer-dijitBorderContainer{padding:0;border:none}.dijitBorderContainer .dijitSplitterActive{margin:0;opacity:0.6;background-color:#aaaaaa;background-image:none;font-size:1px;filter:alpha(opacity=60)}.dijitBorderContainer .dijitSplitContainer-dijitContentPane,.dijitBorderContainer .dijitBorderContainer-dijitContentPane{padding:5px;background-color:#ffffff}.dijitMenuPopup{margin-top:10px}.dijitMenuPopup .dijitMenu{display:block;width:200px !important;margin-top:0;padding:12px 10px;border-radius:3px;background:#252C36}.dijitMenuPopup .dijitMenu:after{position:absolute;bottom:100%;left:20px;width:0;height:0;margin-left:-10px;content:' ';pointer-events:none;border:medium solid transparent;border-width:10px;border-bottom-color:#252C36}.dijitMenuPopup .dijitMenu .dijitMenuItem{background:transparent}.dijitMenuPopup .dijitMenu .dijitMenuItem .dijitMenuItemLabel{display:block;overflow:hidden;width:180px !important;padding:10px;text-overflow:ellipsis;color:#ffffff;border-radius:3px}.dijitMenuPopup .dijitMenu .dijitMenuItem.dijitMenuItemHover{background:none}.dijitMenuPopup .dijitMenu .dijitMenuItem.dijitMenuItemHover .dijitMenuItemLabel{background:#0595DB}.dijitMenuPopup .dijitMenu .tg_newlabelmenuitem .dijitMenuItemLabel{font-weight:bold}.dijitMenuPopup .dijitMenu .dijitMenuSeparator td{padding:0;border-bottom-width:3px}.dijitMenuPopup .dijitMenu .dijitMenuSeparator .dijitMenuSeparatorIconCell>div{margin:0}div.widget-progress-bar .progress-bar-default{background-color:#ddd}div.widget-progress-bar .progress-bar-primary{background-color:#0595DB}div.widget-progress-bar .progress-bar-success{background-color:#76CA02}div.widget-progress-bar .progress-bar-info{background-color:#48B0F7}div.widget-progress-bar .progress-bar-warning{background-color:#F99B1D}div.widget-progress-bar .progress-bar-danger{background-color:#ED1C24}div.widget-progress-bar .progress-bar-inverse{background-color:#252C36}div.widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar{color:#8e1116}div.widget-progress-bar-text-contrast .progress-bar{color:#555}path.widget-progress-circle-path{stroke:#0595DB}.widget-progress-circle-primary path.widget-progress-circle-path{stroke:#0595DB}.widget-progress-circle-primary .progressbar-text{color:#0595DB !important}.widget-progress-circle-info path.widget-progress-circle-path{stroke:#48B0F7}.widget-progress-circle-info .progressbar-text{color:#48B0F7 !important}.widget-progress-circle-success path.widget-progress-circle-path{stroke:#76CA02}.widget-progress-circle-success .progressbar-text{color:#76CA02 !important}.widget-progress-circle-warning path.widget-progress-circle-path{stroke:#F99B1D}.widget-progress-circle-warning .progressbar-text{color:#F99B1D !important}.widget-progress-circle-danger path.widget-progress-circle-path{stroke:#ED1C24}.widget-progress-circle-danger .progressbar-text{color:#ED1C24 !important}.widget-progress-circle-inverse path.widget-progress-circle-path{stroke:#252C36}.widget-progress-circle-inverse .progressbar-text{color:#252C36 !important}div.widget-range-slider .rc-slider-handle,div.widget-range-slider .rc-slider-dot-active{border-color:#ddd}div.widget-range-slider .rc-slider-handle:active,div.widget-range-slider .rc-slider-dot-active:active{border-color:#ddd;box-shadow:none}div.widget-range-slider .rc-slider-handle:hover,div.widget-range-slider .rc-slider-dot-active:hover{border-color:#ddd}div.widget-range-slider.has-error .rc-slider-track,div.widget-range-slider.has-error .rc-slider-rail{background-color:#ED1C24}div.widget-range-slider-primary .rc-slider-track{background-color:#0595DB}div.widget-range-slider-info .rc-slider-track{background-color:#48B0F7}div.widget-range-slider-success .rc-slider-track{background-color:#76CA02}div.widget-range-slider-warning .rc-slider-track{background-color:#F99B1D}div.widget-range-slider-danger .rc-slider-track{background-color:#ED1C24}div.widget-range-slider-inverse .rc-slider-track{background-color:#252C36}div.widget-slider .rc-slider-handle,div.widget-slider .rc-slider-dot-active{border-color:#ddd}div.widget-slider .rc-slider-handle:active,div.widget-slider .rc-slider-dot-active:active{border-color:#ddd}div.widget-slider .rc-slider-handle:hover,div.widget-slider .rc-slider-dot-active:hover{border-color:#ddd}div.widget-slider.has-error .rc-slider-track,div.widget-slider.has-error .rc-slider-rail{background-color:#ED1C24}div.widget-slider-primary .rc-slider-track{background-color:#0595DB}div.widget-slider-info .rc-slider-track{background-color:#48B0F7}div.widget-slider-success .rc-slider-track{background-color:#76CA02}div.widget-slider-warning .rc-slider-track{background-color:#F99B1D}div.widget-slider-danger .rc-slider-track{background-color:#ED1C24}div.widget-slider-inverse .rc-slider-track{background-color:#252C36}span.widget-star-rating-full-default{color:#ddd}span.widget-star-rating-full-primary{color:#0595DB}span.widget-star-rating-full-success{color:#76CA02}span.widget-star-rating-full-info{color:#48B0F7}span.widget-star-rating-full-warning{color:#F99B1D}span.widget-star-rating-full-danger{color:#ED1C24}span.widget-star-rating-full-inverse{color:#252C36}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{border-color:#64bd63;background-color:#64bd63;box-shadow:#64bd63 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{border-color:#76CA02;background-color:#76CA02;box-shadow:#76CA02 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{border-color:#48B0F7;background-color:#48B0F7;box-shadow:#48B0F7 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{border-color:#0595DB;background-color:#0595DB;box-shadow:#0595DB 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{border-color:#F99B1D;background-color:#F99B1D;box-shadow:#F99B1D 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{border-color:#ED1C24;background-color:#ED1C24;box-shadow:#ED1C24 0 0 0 16px inset}div.widget-switch.iOS .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{border-color:#252C36;background-color:#252C36;box-shadow:#252C36 0 0 0 16px inset}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{background-color:#92cec7}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default .widget-switch-btn{background:#6FBEB5}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{background-color:#94fd03}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success .widget-switch-btn{background:#76CA02}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{background-color:#79c5f9}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info .widget-switch-btn{background:#48B0F7}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{background-color:#19b0fa}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary .widget-switch-btn{background:#0595DB}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{background-color:#fab14f}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning .widget-switch-btn{background:#F99B1D}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{background-color:#f14b52}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger .widget-switch-btn{background:#ED1C24}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{background-color:#3a4554}div.widget-switch.android .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse .widget-switch-btn{background:#252C36}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{border-color:#64bd63;background-color:#64bd63;box-shadow:#64bd63 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{border-color:#76CA02;background-color:#76CA02;box-shadow:#76CA02 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{border-color:#48B0F7;background-color:#48B0F7;box-shadow:#48B0F7 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{border-color:#0595DB;background-color:#0595DB;box-shadow:#0595DB 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{border-color:#F99B1D;background-color:#F99B1D;box-shadow:#F99B1D 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{border-color:#ED1C24;background-color:#ED1C24;box-shadow:#ED1C24 0 0 0 16px inset}div.widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{border-color:#252C36;background-color:#252C36;box-shadow:#252C36 0 0 0 16px inset}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{background-color:#92cec7}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default .widget-switch-btn{background:#6FBEB5}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{background-color:#94fd03}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success .widget-switch-btn{background:#76CA02}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{background-color:#79c5f9}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info .widget-switch-btn{background:#48B0F7}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{background-color:#19b0fa}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary .widget-switch-btn{background:#0595DB}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{background-color:#fab14f}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning .widget-switch-btn{background:#F99B1D}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{background-color:#f14b52}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger .widget-switch-btn{background:#ED1C24}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{background-color:#3a4554}html div.dj_android .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse .widget-switch-btn{background:#252C36}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-default{border-color:#64bd63;background-color:#64bd63;box-shadow:#64bd63 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-success{border-color:#76CA02;background-color:#76CA02;box-shadow:#76CA02 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-info{border-color:#48B0F7;background-color:#48B0F7;box-shadow:#48B0F7 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-primary{border-color:#0595DB;background-color:#0595DB;box-shadow:#0595DB 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-warning{border-color:#F99B1D;background-color:#F99B1D;box-shadow:#F99B1D 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-danger{border-color:#ED1C24;background-color:#ED1C24;box-shadow:#ED1C24 0 0 0 16px inset}html div.dj_ios .widget-switch.auto .widget-switch-btn-wrapper.checked.widget-switch-btn-wrapper-inverse{border-color:#252C36;background-color:#252C36;box-shadow:#252C36 0 0 0 16px inset}.breadcrumb{margin:0;padding:0;border-radius:0;background-color:transparent;font-size:14px}.breadcrumb-item{display:inline-block;margin:0}.breadcrumb-item:last-child{color:#555}.breadcrumb-item:last-child a{text-decoration:none}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:10px;padding-left:10px;content:"/";color:#888}.breadcrumb-large{font-size:24px}.breadcrumb-underline{padding-bottom:15px;border-bottom:1px solid #D7D7D7}.card{padding:30px;border:1px solid #D7D7D7;border-radius:4px;background-color:#FFFFFF}.card-title{margin-top:0}.cardaction .card-image .glyphicon{font-size:58px}.cardmetrics .card-title{margin-bottom:0}.cardmetrics .card-image{width:100px;height:auto}.cardmetrics .card-image.btn{width:100px;height:100px;padding:0;cursor:default;pointer-events:none;font-size:40px}.cardmetrics .card-counter{margin:0;font-size:64px}.cardinfo .card-text{margin-bottom:30px}.textwithicon{overflow:hidden;max-width:100%;margin-bottom:15px;text-overflow:ellipsis}.textwithicon .textwithicon-icon,.textwithicon .textwithicon-text{display:inline-block;vertical-align:middle}.textwithicon .textwithicon-icon{margin-right:15px;padding:0;color:#0595DB;border:0;background:transparent;font-size:23px}.socialprofiles .socialprofiles-title{display:block;margin-bottom:10px;font-weight:bold}.socialprofiles .socialprofiles-button{width:24px;height:24px;margin-right:15px;padding:0;border-radius:24px}.socialprofiles .socialprofiles-button .glyphicon{margin:0}.cardtabs{padding:0}.cardtabs-tabs{margin:0}.cardtabs-tabs ul.mx-tabcontainer-tabs{display:flex;margin:0;background-color:#f7f7f7}.cardtabs-tabs ul.mx-tabcontainer-tabs li{flex:1 1 auto;text-align:center}.cardtabs-tabs ul.mx-tabcontainer-tabs li a,.cardtabs-tabs ul.mx-tabcontainer-tabs li a:hover,.cardtabs-tabs ul.mx-tabcontainer-tabs li a:focus{border-top-width:0;border-right-width:1px;border-left-width:0}.cardtabs-tabs ul.mx-tabcontainer-tabs li:first-child a{border-radius:4px 0 0 0}.cardtabs-tabs ul.mx-tabcontainer-tabs li:last-child a{border-radius:0 4px 0 0}@media (max-width: 767px){.cardtabs-tabs .mx-tabcontainer-pane{padding:15px}}@media (min-width: 768px){.cardtabs-tabs .mx-tabcontainer-pane{padding:30px}}@media (min-width: 992px){.cardtabs-tabs .mx-tabcontainer-pane{padding:30px}}.cardproduct,.cardproduct2,.cardproduct3{padding:0}.cardproduct-header{position:relative;overflow:hidden;height:200px}.cardproduct-header .card-image{position:absolute;top:0;left:0;width:100%;height:auto}.cardproduct-overlay{position:absolute;bottom:0;left:0;width:100%;padding:20px 30px;background:rgba(0,0,0,0.6)}.cardproduct-overlay-category,.cardproduct-overlay-title{margin:0;color:#FFFFFF}.cardproduct-footer .col{padding:20px 30px}.cardproduct-footer .col .widget-star-rating-font{font-size:20px}.cardproduct-name{margin:0}.cardproduct-btn{display:flex;align-items:center;height:100%;padding:30px;border-left:1px solid #D7D7D7}.cardproduct2 .cardproduct-header::after{position:absolute;bottom:0;left:0;display:block;width:100%;padding:20px 30px;content:"";background:rgba(0,0,0,0.6);background:-moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 2%, rgba(0,0,0,0.99) 99%, #000 100%);background:-webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 2%, rgba(0,0,0,0.99) 99%, #000 100%);background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 2%, rgba(0,0,0,0.99) 99%, #000 100%)}.cardproduct3 .cardproduct-header{height:320px}.cardproduct3 .cardproduct-header img{width:100%;height:100%;object-fit:cover}.cardproduct3 .cardproduct-overlay{min-height:100px;padding:30px;background:-moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 8%, rgba(0,0,0,0.99) 121%, #000 100%);background:-webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 8%, rgba(0,0,0,0.99) 121%, #000 100%);background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(250,250,250,0) 8%, rgba(0,0,0,0.99) 121%, #000 100%);font-size:14px}.cardstatus{padding:20px}.cardstatus .card-linkicon{font-size:30px}.cardstatus .cardstatus-status{margin-bottom:5px}.cardprogress-state{width:80px;height:80px;padding:0;cursor:default;pointer-events:none;border-radius:100%;font-size:28px}.cardhighlight{border-top:4px solid #0595DB}.cardchat{overflow:hidden;padding:0}.cardchat .chat{height:400px}@media screen and (max-width: 991px){.widget-charts:not([height]),.widget-charts-line:not([height]){padding-bottom:80% !important}}@media screen and (max-width: 1199px){.cardprogress .cardprogress-state{width:60px;height:60px;font-size:24px}}.chat{display:flex;flex-direction:column;height:100%;background-color:#F5F8FD}.chat-content{display:flex;overflow:auto;flex:1;flex-direction:column;justify-content:flex-end}.chat-content .chat-list{position:relative;overflow:auto}.chat-content .chat-list ul{display:flex;flex-direction:column-reverse;margin-bottom:15px}.chat-content .chat-list li{padding:15px 30px;animation:fadeIn 0.2s;background-color:transparent;animation-fill-mode:both}.chat-content .chat-list li,.chat-content .chat-list li:last-child{border:0}.chat-content .chat-list .mx-listview-loadMore{position:absolute;top:0;right:0;left:0;display:block;width:50%;margin:15px auto;color:#FFFFFF;background-color:#0595DB;box-shadow:0 2px 20px 0 rgba(0,0,0,0.05)}.chat-message{display:flex}.chat-avatar{margin:0 20px 0 0;border-radius:50%}.chat-message-content{display:inline-flex;flex-direction:column}.chat-message-balloon{position:relative;display:flex;flex-direction:column;padding:10px 15px;border-radius:5px;background-color:#fff}.chat-message-balloon::after{position:absolute;top:10px;right:100%;width:0;height:0;content:'';border:10px solid transparent;border-top:0;border-right-color:#fff;border-left:0}.chat-message-time{padding-top:2px}.chat-message-time .form-control-static,.chat-message-time .form-group div[class*='textBox']>.control-label,.form-group .chat-message-time div[class*='textBox']>.control-label,.chat-message-time .form-group div[class*='textArea']>.control-label,.form-group .chat-message-time div[class*='textArea']>.control-label,.chat-message-time .form-group div[class*='datePicker']>.control-label,.form-group .chat-message-time div[class*='datePicker']>.control-label{border:0}.chat-footer{z-index:1;padding:15px;background-color:#fff;box-shadow:0 2px 20px 0 rgba(0,0,0,0.05)}.chat-input{display:flex}.chat-input .chat-textbox{flex:1;margin-right:30px;margin-bottom:0}.chat-input .chat-textbox .form-control{border:0}.chat-message-self{justify-content:flex-end}.chat-message-self .chat-avatar{margin:0 0 0 20px}.chat-message-self .chat-message-balloon{background-color:#cdeaf8}.chat-message-self .chat-message-balloon::after{left:100%;border:10px solid transparent;border-top:0;border-right:0;border-left-color:#cdeaf8}.chat-message-self .chat-message-time{text-align:right}.controlgroup .btn,.controlgroup .btn-group{margin-right:5px;margin-bottom:5px}.controlgroup .btn:last-child,.controlgroup .btn-group:last-child{margin-right:0}.controlgroup .btn .btn,.controlgroup .btn-group .btn{margin-right:0;margin-bottom:0}.controlgroup .btn-group .btn+.btn{margin-left:-1px}.fullpageblock{position:relative;height:100%;min-height:100%}.fullpageblock .fullheight{height:100% !important}.fullpageblock .fullheight>.mx-dataview-content{height:inherit !important}.fullpageblock .fullpage-overlay{position:absolute;z-index:10;bottom:0;left:0;width:100%}.pageheader{border-bottom:1px solid #D7D7D7;background:#F5F8FD}.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{background:transparent}@media (max-width: 767px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{margin-bottom:15px}}@media (min-width: 768px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{margin-bottom:30px}}@media (min-width: 992px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{margin-bottom:30px}}@media (max-width: 767px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{padding-bottom:15px}}@media (min-width: 768px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{padding-bottom:30px}}@media (min-width: 992px){.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader{padding-bottom:30px}}.pageheader-type{margin:0}.pageheader-title{margin:0}.pageheader-subtitle{margin:0}.pageheaderwithsearch .pageheader-title{margin-bottom:1em}.heroheader{border-bottom:1px solid #D7D7D7;background:#F5F8FD}.heroheader-title{margin:0 0 10px 0}.heroheader-subtitle{margin:0;padding:0 15px}.heroheader-subtitle::before{display:block;max-width:330px;height:1px;margin:auto auto 10px auto;content:"";background-color:#e1e1e1}.heroheader1{background-image:linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%)}.heroheader1 .heroheader-title{margin-bottom:10px;color:#FFFFFF}.heroheader1 .heroheader-subtitle{padding:0;color:#FFFFFF}.heroheader1 .heroheader-subtitle::before{display:none}.heroheadermap{padding:0 !important}.heroheadermap-controls{padding:30px;background:#F5F8FD}.heroheaderproduct{position:relative;overflow:hidden;height:300px;background-color:#000000}.heroheaderproduct .heroheaderproduct-backgroundimage{position:absolute;z-index:0;top:0;width:100%;opacity:0.7;filter:blur(5px)}.heroheaderproduct .heroheaderproduct-overlay{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%, -50%)}.heroheaderexpense .heroheaderexpense-title{font-size:72px}.heroheaderexpense .heroheaderexpense-type{align-items:center}.heroheaderexpense .heroheaderexpense-type::before{flex-grow:1;height:1px;margin-right:10px;content:"";background-color:#D2D2D2}.formblock-title{margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #D7D7D7}.masterdetail .masterdetail-master .controlgroup{margin-bottom:15px}@media (max-width: 992px) and (max-width: 767px){.masterdetail .masterdetail-master{margin-bottom:15px}}@media (max-width: 992px) and (min-width: 768px){.masterdetail .masterdetail-master{margin-bottom:30px}}@media (max-width: 992px) and (min-width: 992px){.masterdetail .masterdetail-master{margin-bottom:30px}}@media (min-width: 992px){.masterdetail .masterdetail-master{border-right:1px solid #D7D7D7}.masterdetail .masterdetail-master .mx-listview-searchbar{margin:15px}.masterdetail .masterdetail-master .controlgroup{padding:15px;border-bottom:1px solid #D7D7D7}}@media (min-width: 992px) and (max-width: 767px){.masterdetail .masterdetail-detail{padding:15px 15px 15px 15px}}@media (min-width: 992px) and (min-width: 768px){.masterdetail .masterdetail-detail{padding:30px 30px 30px 30px}}@media (min-width: 992px) and (min-width: 992px){.masterdetail .masterdetail-detail{padding:30px 30px 30px 30px}}@media (max-width: 767px){.masterdetailvertical .masterdetail-master{margin-bottom:15px}}@media (min-width: 768px){.masterdetailvertical .masterdetail-master{margin-bottom:30px}}@media (min-width: 992px){.masterdetailvertical .masterdetail-master{margin-bottom:30px}}@media (max-width: 767px){.masterdetailvertical .masterdetail-detail{padding-top:15px}}@media (min-width: 768px){.masterdetailvertical .masterdetail-detail{padding-top:30px}}@media (min-width: 992px){.masterdetailvertical .masterdetail-detail{padding-top:30px}}.wizard{display:flex;justify-content:space-between}.wizard .wizard-step{position:relative;width:100%;text-align:center}.wizard .wizard-step::before{position:absolute;z-index:-1;top:30px;display:block;width:100%;height:2px;content:"";background-color:#D7D7D7}.wizard .wizard-step .wizard-step-number{width:60px;height:60px;border-color:#D7D7D7;border-radius:50%;background-color:#FFFFFF;font-size:20px}.wizard .wizard-step .wizard-step-text{display:block;margin-top:15px}.wizard .wizard-step-active .wizard-step-number{color:#FFFFFF;border-color:#0595DB;background-color:#0595DB}.wizard .wizard-step-active .wizard-step-text{color:#0595DB}.wizard .wizard-step-visited .wizard-step-number{color:#FFFFFF;border-color:#76CA02;background-color:#76CA02}.wizardprogress{display:flex;justify-content:space-between}.wizardprogress .wizard-step-text{width:100%}.wizardprogress .wizard-step{position:relative;width:100%;height:50px;margin-left:-25px;padding-left:25px;border:1px solid #D7D7D7;background:#FFFFFF}.wizardprogress .wizard-step a{display:block;overflow:hidden;width:100%;height:100%;padding:14px;white-space:nowrap;text-decoration:none;text-overflow:ellipsis;color:#555}.wizardprogress .wizard-step::before,.wizardprogress .wizard-step::after{position:absolute;z-index:1;left:100%;margin-left:-25px;content:" ";border-style:solid;border-color:transparent}.wizardprogress .wizard-step::after{top:1px;border-width:24px;border-left-color:#FFFFFF}.wizardprogress .wizard-step::before{top:0;border-width:25px;border-left-color:#D7D7D7}.wizardprogress .wizard-step:first-child{margin-left:0;padding-left:0;border-radius:5px 0 0 5px}.wizardprogress .wizard-step:last-child{border-radius:0 5px 5px 0}.wizardprogress .wizard-step:last-child::before,.wizardprogress .wizard-step:last-child::after{display:none}.wizardprogress .wizard-step-active{background:#0595DB}.wizardprogress .wizard-step-active a{text-decoration:none;color:#FFFFFF}.wizardprogress .wizard-step-active::after{border-left-color:#0595DB}.wizardprogress .wizard-step-visited a{color:#0595DB}.timeline .timeline-header{display:inline-block;width:110px;padding:8px;text-align:center;border:1px solid #D7D7D7;border-radius:30px}.timeline-itemwrapper.mx-listview{margin-bottom:0;margin-left:55px;padding:30px 0;border-left:1px solid #D7D7D7}.timeline-itemwrapper.mx-listview>ul>li{position:relative;padding-left:30px}.timeline-itemwrapper.mx-listview>ul>li::before{position:absolute;top:5px;left:-5px;display:block;width:10px;height:10px;content:'';border-radius:50%;background-color:#0595DB}.timeline-itemwrapper.mx-listview li+li{margin-top:30px}.timeline2 .timeline-itemwrapper.mx-listview>ul>li{padding-left:15px}.layout-atlas .toggle-btn>.glyphicon{margin:0}.layout-atlas .region-sidebar{background-color:#252C36}.layout-atlas .region-sidebar .mx-navigationtree .navbar-inner>ul>li>a{padding:0 15px}.layout-atlas .region-sidebar .mx-navigationtree .navbar-inner>ul>li>a .glyphicon{margin-right:10px}.layout-atlas .region-sidebar .toggle-btn{border-color:transparent;border-radius:0;background:transparent}.layout-atlas .region-topbar{position:relative;z-index:1;min-height:60px;border-bottom:1px solid #D7D7D7;background-color:#fff;box-shadow:0 1px 4px 0 rgba(0,0,0,0.14)}.layout-atlas .region-topbar::before{z-index:1;display:block;width:100%;height:4px;content:"";background-color:#0595DB}.layout-atlas .region-topbar .topbar-content{display:flex;align-items:center;min-height:60px}.layout-atlas .region-topbar .toggle-btn{margin-right:15px;padding:5px}.layout-atlas .region-topbar .navbar-brand{display:inline-block;float:none;height:auto;padding:0;line-height:inherit}.layout-atlas .region-topbar .navbar-brand img{display:inline-block;width:auto;height:30px}.layout-atlas .region-topbar .navbar-brand a{margin-left:5px;color:#D7D7D7;font-size:20px}.layout-atlas .region-topbar .navbar-brand a:hover,.layout-atlas .region-topbar .navbar-brand a:focus{text-decoration:none}.layout-atlas .region-topbar .mx-navbar{display:inline-block;margin-left:15px;vertical-align:middle;background:transparent}.layout-atlas .region-topbar .mx-navbar>.mx-navbar-item>a{margin-top:5px;padding:0 20px}.layout-atlas-phone .region-topbar{min-height:45px;border-style:none;background-color:#fff}.layout-atlas-phone .region-topbar::before{display:none}@media (min-width: 768px){.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar{width:60px !important}.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-has-items:hover a{background-color:#1d222a}.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-has-items:hover ul{position:absolute;z-index:100;top:0;bottom:0;left:60px;display:block;overflow-y:auto;min-width:200px;padding-top:10px}.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-collapsed ul,.layout-atlas-responsive-default .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree ul li.mx-navigationtree-has-items ul{display:none}}.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open)>.region-sidebar{overflow:hidden}.layout-atlas-responsive-default .mx-scrollcontainer-slide.mx-scrollcontainer-open>.region-sidebar{width:60px !important}.layout-atlas-responsive-default .mx-scrollcontainer-slide.mx-scrollcontainer-open>.region-sidebar>.mx-scrollcontainer-wrapper{position:relative}.layout-atlas-responsive-default .mx-scrollcontainer-slide .region-sidebar>.mx-scrollcontainer-wrapper{z-index:2;left:0 !important;background-color:inherit}@media (max-width: 767px){.layout-atlas-responsive-default .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide){width:1100px}.layout-atlas-responsive-default .mx-scrollcontainer-slide .toggle-btn{display:inline-block !important}}.layout-atlas-responsive-default .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open)>.region-sidebar,.layout-atlas-responsive-default .mx-scrollcontainer-push:not(.mx-scrollcontainer-open)>.region-sidebar{visibility:hidden}.layout-atlas-responsive-default .region-sidebar .toggle-btn{width:60px;height:60px;border-color:transparent;border-radius:0;background:transparent}.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree .navbar-inner>ul>li>a{height:60px}.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree .navbar-inner>ul>li>a .glyphicon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:-5px;padding:10px;border-radius:3px}.layout-atlas-responsive-default .region-sidebar .mx-scrollcontainer-wrapper>.mx-navigationtree .navbar-inner>ul>li>a.active .glyphicon{background:#0595DB}.layout-atlas-responsive-default .region-topbar .toggle-btn,.layout-atlas-responsive-topbar .region-topbar .toggle-btn{display:none}@media (max-width: 767px){.layout-atlas-responsive-default .region-topbar .toggle-btn,.layout-atlas-responsive-topbar .region-topbar .toggle-btn{display:inline-block}}.profile-tablet .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar{overflow-y:hidden}.profile-tablet .mx-scrollcontainer:not(.mx-scrollcontainer-open)>.region-sidebar .mx-scrollcontainer-wrapper{overflow:visible}.devicephone{width:420px;height:992px;margin:auto;padding:120px 40px;background:url(../../../resources/phone.png) no-repeat center center}.devicephone .deviceframe,.devicephone .deviceshadowwrapper{border-radius:40px}.devicetablet{width:1210px;height:1000px;margin:auto;padding:120px 100px;background:url(../../../resources/tablet.png) no-repeat center center}.devicetablet .deviceframe,.devicetablet .deviceshadowwrapper{border-radius:20px}.deviceframe{width:100%;height:100%;border:none}.deviceshadowwrapper{position:relative;width:100%;height:100%}.deviceshadow{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;content:'';pointer-events:none;box-shadow:inset 10px 0 10px -10px black, inset -10px 0 10px -10px black}.devicedisclaimer{margin-top:80px;padding:10px;text-align:center;color:#888;border-top:1px solid #D7D7D7;font-size:12px;line-height:20px} - -/*# sourceMappingURL=main.css.map */ diff --git a/test/theme/styles/web/css/main.css.map b/test/theme/styles/web/css/main.css.map deleted file mode 100755 index 87d506f..0000000 --- a/test/theme/styles/web/css/main.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.css","sources":["main.scss","core/_legacy/bootstrap/_bootstrap.scss","core/_legacy/bootstrap/_bootstrap-rtl.scss","core/_legacy/_mxui.scss","app/_custom-variables.scss","core/_variables.scss","core/base/mixins/_animations.scss","core/base/mixins/_spacing.scss","core/base/mixins/_layout-spacing.scss","core/base/mixins/_buttons.scss","core/base/mixins/_groupbox.scss","core/base/_animation.scss","core/base/_flex.scss","core/base/_spacing.scss","core/base/_reset.scss","core/base/_base.scss","core/base/_login.scss","core/widgets/_inputs.scss","core/widgets/_alerts.scss","core/helpers/_alerts.scss","core/helpers/_backgrounds.scss","core/widgets/_buttons.scss","core/helpers/_buttons.scss","core/widgets/_checkbox.scss","core/widgets/_grid.scss","core/widgets/_datagrids.scss","core/helpers/_datagrids.scss","core/widgets/_dataview.scss","core/widgets/_datepicker.scss","core/widgets/_header.scss","core/widgets/_glyphicons.scss","core/widgets/_groupbox.scss","core/helpers/_groupbox.scss","core/helpers/_images.scss","core/widgets/_labels.scss","core/helpers/_labels.scss","core/widgets/_listview.scss","core/helpers/_listview.scss","core/widgets/_modals.scss","core/widgets/_navigationbar.scss","core/helpers/_navigationbar.scss","core/widgets/_navigationlist.scss","core/widgets/_navigationtree.scss","core/helpers/_navigationtree.scss","core/widgets/_simplemenubar.scss","core/helpers/_simplemenubar.scss","core/widgets/_radiobuttons.scss","core/widgets/_tabcontainer.scss","core/helpers/_tabcontainer.scss","core/widgets/_tables.scss","core/helpers/_tables.scss","core/widgets/_templategrids.scss","core/helpers/_templategrids.scss","core/widgets/_typography.scss","core/helpers/_typography.scss","core/widgets/_layoutgrid.scss","core/widgets/_progress.scss","core/helpers/_helperclasses.scss","core/widgetscustom/_dijit-widgets.scss","core/widgetscustom/_progress-bar-theme.scss","core/widgetscustom/_progress-circle-theme.scss","core/widgetscustom/_range-slider-theme.scss","core/widgetscustom/_slider-theme.scss","core/widgetscustom/_star-rating-theme.scss","core/widgetscustom/_switchwidget.scss","ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss","ui_resources/atlas_ui_resources/buildingblocks/_card.scss","ui_resources/atlas_ui_resources/buildingblocks/_chat.scss","ui_resources/atlas_ui_resources/buildingblocks/_controlgroup.scss","ui_resources/atlas_ui_resources/buildingblocks/_pageblocks.scss","ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss","ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss","ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss","ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss","ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss","ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss","ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss","ui_resources/atlas_ui_resources/layouts/_layout-atlas-device-wrapper.scss","app/_custom.scss"],"sourcesContent":["// Utilities\n@import 'core/_legacy/bootstrap/bootstrap';\n@import 'core/_legacy/bootstrap/bootstrap-rtl';\n@import 'core/_legacy/mxui';\n\n// Custom variables\n@import 'app/custom-variables';\n\n//================================== CORE ==================================\\\\\n\n// Default variables\n@import 'core/variables';\n\n// Base\n@import 'core/base/mixins/animations';\n@import 'core/base/mixins/spacing';\n@import 'core/base/mixins/layout-spacing';\n@import 'core/base/mixins/buttons';\n@import 'core/base/mixins/groupbox';\n@import 'core/base/animation';\n@import 'core/base/flex';\n@import 'core/base/spacing';\n@import 'core/base/reset';\n@import 'core/base/base';\n@import 'core/base/login';\n\n// Widgets\n@import 'core/widgets/inputs';\n@import 'core/widgets/alerts';\n@import 'core/helpers/alerts';\n@import 'core/helpers/backgrounds';\n@import 'core/widgets/buttons';\n@import 'core/helpers/buttons';\n@import 'core/widgets/checkbox';\n@import 'core/widgets/grid';\n@import 'core/widgets/datagrids';\n@import 'core/helpers/datagrids';\n@import 'core/widgets/dataview';\n@import 'core/widgets/datepicker';\n@import 'core/widgets/header';\n@import 'core/widgets/glyphicons';\n@import 'core/widgets/groupbox';\n@import 'core/helpers/groupbox';\n@import 'core/helpers/images';\n@import 'core/widgets/labels';\n@import 'core/helpers/labels';\n@import 'core/widgets/listview';\n@import 'core/helpers/listview';\n@import 'core/widgets/modals';\n@import 'core/widgets/navigationbar';\n@import 'core/helpers/navigationbar';\n@import 'core/widgets/navigationlist';\n@import 'core/widgets/navigationtree';\n@import 'core/helpers/navigationtree';\n@import 'core/widgets/simplemenubar';\n@import 'core/helpers/simplemenubar';\n@import 'core/widgets/radiobuttons';\n@import 'core/widgets/tabcontainer';\n@import 'core/helpers/tabcontainer';\n@import 'core/widgets/tables';\n@import 'core/helpers/tables';\n@import 'core/widgets/templategrids';\n@import 'core/helpers/templategrids';\n@import 'core/widgets/typography';\n@import 'core/helpers/typography';\n@import 'core/widgets/layoutgrid';\n@import 'core/widgets/progress';\n@import 'core/helpers/helperclasses';\n\n// Custom widgets\n@import 'core/widgetscustom/dijit-widgets';\n@import 'core/widgetscustom/progress-bar-theme';\n@import 'core/widgetscustom/progress-circle-theme';\n@import 'core/widgetscustom/range-slider-theme';\n@import 'core/widgetscustom/slider-theme';\n@import 'core/widgetscustom/star-rating-theme';\n@import 'core/widgetscustom/switchwidget';\n\n//================================= CUSTOM =================================\\\\\n\n// Building blocks\n@import 'ui_resources/atlas_ui_resources/buildingblocks/breadcrumb';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/card';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/chat';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/controlgroup';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/pageblocks';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/pageheader';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/heroheader';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/formblock';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/master-detail';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/userprofile';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/wizard';\n@import 'ui_resources/atlas_ui_resources/buildingblocks/timeline';\n\n// Layouts\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas';\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-phone';\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-responsive';\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-tablet';\n@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-device-wrapper';\n\n// Custom\n@import 'app/custom';\n","/*!\n * Bootstrap v3.3.4 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\nhtml {\n font-family: sans-serif;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n margin: 0.67em 0;\n font-size: 2em;\n}\nmark {\n color: #000;\n background: #ff0;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n height: 0;\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0;\n font: inherit;\n color: inherit;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type='button'],\ninput[type='reset'],\ninput[type='submit'] {\n -webkit-appearance: button;\n cursor: pointer;\n}\n//button[disabled],\n//html input[disabled] {\n// cursor: default;\n//}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type='checkbox'],\ninput[type='radio'] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0;\n}\ninput[type='number']::-webkit-inner-spin-button,\ninput[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type='search'] {\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n -webkit-appearance: textfield;\n}\ninput[type='search']::-webkit-search-cancel-button,\ninput[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n padding: 0.35em 0.625em 0.75em;\n margin: 0 2px;\n border: 1px solid #c0c0c0;\n}\nlegend {\n padding: 0;\n border: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: ' (' attr(href) ')';\n }\n abbr[title]:after {\n content: ' (' attr(title) ')';\n }\n a[href^='#']:after,\n a[href^='javascript:']:after {\n content: '';\n }\n pre,\n blockquote {\n border: 1px solid #999;\n\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n select {\n background: #fff !important;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n\n src: url('./fonts/glyphicons-halflings-regular.eot');\n src: url('./fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),\n url('./fonts/glyphicons-halflings-regular.woff2') format('woff2'),\n url('./fonts/glyphicons-halflings-regular.woff') format('woff'),\n url('./fonts/glyphicons-halflings-regular.ttf') format('truetype'),\n url('./fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: '\\2a';\n}\n.glyphicon-plus:before {\n content: '\\2b';\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: '\\20ac';\n}\n.glyphicon-minus:before {\n content: '\\2212';\n}\n.glyphicon-cloud:before {\n content: '\\2601';\n}\n.glyphicon-envelope:before {\n content: '\\2709';\n}\n.glyphicon-pencil:before {\n content: '\\270f';\n}\n.glyphicon-glass:before {\n content: '\\e001';\n}\n.glyphicon-music:before {\n content: '\\e002';\n}\n.glyphicon-search:before {\n content: '\\e003';\n}\n.glyphicon-heart:before {\n content: '\\e005';\n}\n.glyphicon-star:before {\n content: '\\e006';\n}\n.glyphicon-star-empty:before {\n content: '\\e007';\n}\n.glyphicon-user:before {\n content: '\\e008';\n}\n.glyphicon-film:before {\n content: '\\e009';\n}\n.glyphicon-th-large:before {\n content: '\\e010';\n}\n.glyphicon-th:before {\n content: '\\e011';\n}\n.glyphicon-th-list:before {\n content: '\\e012';\n}\n.glyphicon-ok:before {\n content: '\\e013';\n}\n.glyphicon-remove:before {\n content: '\\e014';\n}\n.glyphicon-zoom-in:before {\n content: '\\e015';\n}\n.glyphicon-zoom-out:before {\n content: '\\e016';\n}\n.glyphicon-off:before {\n content: '\\e017';\n}\n.glyphicon-signal:before {\n content: '\\e018';\n}\n.glyphicon-cog:before {\n content: '\\e019';\n}\n.glyphicon-trash:before {\n content: '\\e020';\n}\n.glyphicon-home:before {\n content: '\\e021';\n}\n.glyphicon-file:before {\n content: '\\e022';\n}\n.glyphicon-time:before {\n content: '\\e023';\n}\n.glyphicon-road:before {\n content: '\\e024';\n}\n.glyphicon-download-alt:before {\n content: '\\e025';\n}\n.glyphicon-download:before {\n content: '\\e026';\n}\n.glyphicon-upload:before {\n content: '\\e027';\n}\n.glyphicon-inbox:before {\n content: '\\e028';\n}\n.glyphicon-play-circle:before {\n content: '\\e029';\n}\n.glyphicon-repeat:before {\n content: '\\e030';\n}\n.glyphicon-refresh:before {\n content: '\\e031';\n}\n.glyphicon-list-alt:before {\n content: '\\e032';\n}\n.glyphicon-lock:before {\n content: '\\e033';\n}\n.glyphicon-flag:before {\n content: '\\e034';\n}\n.glyphicon-headphones:before {\n content: '\\e035';\n}\n.glyphicon-volume-off:before {\n content: '\\e036';\n}\n.glyphicon-volume-down:before {\n content: '\\e037';\n}\n.glyphicon-volume-up:before {\n content: '\\e038';\n}\n.glyphicon-qrcode:before {\n content: '\\e039';\n}\n.glyphicon-barcode:before {\n content: '\\e040';\n}\n.glyphicon-tag:before {\n content: '\\e041';\n}\n.glyphicon-tags:before {\n content: '\\e042';\n}\n.glyphicon-book:before {\n content: '\\e043';\n}\n.glyphicon-bookmark:before {\n content: '\\e044';\n}\n.glyphicon-print:before {\n content: '\\e045';\n}\n.glyphicon-camera:before {\n content: '\\e046';\n}\n.glyphicon-font:before {\n content: '\\e047';\n}\n.glyphicon-bold:before {\n content: '\\e048';\n}\n.glyphicon-italic:before {\n content: '\\e049';\n}\n.glyphicon-text-height:before {\n content: '\\e050';\n}\n.glyphicon-text-width:before {\n content: '\\e051';\n}\n.glyphicon-align-left:before {\n content: '\\e052';\n}\n.glyphicon-align-center:before {\n content: '\\e053';\n}\n.glyphicon-align-right:before {\n content: '\\e054';\n}\n.glyphicon-align-justify:before {\n content: '\\e055';\n}\n.glyphicon-list:before {\n content: '\\e056';\n}\n.glyphicon-indent-left:before {\n content: '\\e057';\n}\n.glyphicon-indent-right:before {\n content: '\\e058';\n}\n.glyphicon-facetime-video:before {\n content: '\\e059';\n}\n.glyphicon-picture:before {\n content: '\\e060';\n}\n.glyphicon-map-marker:before {\n content: '\\e062';\n}\n.glyphicon-adjust:before {\n content: '\\e063';\n}\n.glyphicon-tint:before {\n content: '\\e064';\n}\n.glyphicon-edit:before {\n content: '\\e065';\n}\n.glyphicon-share:before {\n content: '\\e066';\n}\n.glyphicon-check:before {\n content: '\\e067';\n}\n.glyphicon-move:before {\n content: '\\e068';\n}\n.glyphicon-step-backward:before {\n content: '\\e069';\n}\n.glyphicon-fast-backward:before {\n content: '\\e070';\n}\n.glyphicon-backward:before {\n content: '\\e071';\n}\n.glyphicon-play:before {\n content: '\\e072';\n}\n.glyphicon-pause:before {\n content: '\\e073';\n}\n.glyphicon-stop:before {\n content: '\\e074';\n}\n.glyphicon-forward:before {\n content: '\\e075';\n}\n.glyphicon-fast-forward:before {\n content: '\\e076';\n}\n.glyphicon-step-forward:before {\n content: '\\e077';\n}\n.glyphicon-eject:before {\n content: '\\e078';\n}\n.glyphicon-chevron-left:before {\n content: '\\e079';\n}\n.glyphicon-chevron-right:before {\n content: '\\e080';\n}\n.glyphicon-plus-sign:before {\n content: '\\e081';\n}\n.glyphicon-minus-sign:before {\n content: '\\e082';\n}\n.glyphicon-remove-sign:before {\n content: '\\e083';\n}\n.glyphicon-ok-sign:before {\n content: '\\e084';\n}\n.glyphicon-question-sign:before {\n content: '\\e085';\n}\n.glyphicon-info-sign:before {\n content: '\\e086';\n}\n.glyphicon-screenshot:before {\n content: '\\e087';\n}\n.glyphicon-remove-circle:before {\n content: '\\e088';\n}\n.glyphicon-ok-circle:before {\n content: '\\e089';\n}\n.glyphicon-ban-circle:before {\n content: '\\e090';\n}\n.glyphicon-arrow-left:before {\n content: '\\e091';\n}\n.glyphicon-arrow-right:before {\n content: '\\e092';\n}\n.glyphicon-arrow-up:before {\n content: '\\e093';\n}\n.glyphicon-arrow-down:before {\n content: '\\e094';\n}\n.glyphicon-share-alt:before {\n content: '\\e095';\n}\n.glyphicon-resize-full:before {\n content: '\\e096';\n}\n.glyphicon-resize-small:before {\n content: '\\e097';\n}\n.glyphicon-exclamation-sign:before {\n content: '\\e101';\n}\n.glyphicon-gift:before {\n content: '\\e102';\n}\n.glyphicon-leaf:before {\n content: '\\e103';\n}\n.glyphicon-fire:before {\n content: '\\e104';\n}\n.glyphicon-eye-open:before {\n content: '\\e105';\n}\n.glyphicon-eye-close:before {\n content: '\\e106';\n}\n.glyphicon-warning-sign:before {\n content: '\\e107';\n}\n.glyphicon-plane:before {\n content: '\\e108';\n}\n.glyphicon-calendar:before {\n content: '\\e109';\n}\n.glyphicon-random:before {\n content: '\\e110';\n}\n.glyphicon-comment:before {\n content: '\\e111';\n}\n.glyphicon-magnet:before {\n content: '\\e112';\n}\n.glyphicon-chevron-up:before {\n content: '\\e113';\n}\n.glyphicon-chevron-down:before {\n content: '\\e114';\n}\n.glyphicon-retweet:before {\n content: '\\e115';\n}\n.glyphicon-shopping-cart:before {\n content: '\\e116';\n}\n.glyphicon-folder-close:before {\n content: '\\e117';\n}\n.glyphicon-folder-open:before {\n content: '\\e118';\n}\n.glyphicon-resize-vertical:before {\n content: '\\e119';\n}\n.glyphicon-resize-horizontal:before {\n content: '\\e120';\n}\n.glyphicon-hdd:before {\n content: '\\e121';\n}\n.glyphicon-bullhorn:before {\n content: '\\e122';\n}\n.glyphicon-bell:before {\n content: '\\e123';\n}\n.glyphicon-certificate:before {\n content: '\\e124';\n}\n.glyphicon-thumbs-up:before {\n content: '\\e125';\n}\n.glyphicon-thumbs-down:before {\n content: '\\e126';\n}\n.glyphicon-hand-right:before {\n content: '\\e127';\n}\n.glyphicon-hand-left:before {\n content: '\\e128';\n}\n.glyphicon-hand-up:before {\n content: '\\e129';\n}\n.glyphicon-hand-down:before {\n content: '\\e130';\n}\n.glyphicon-circle-arrow-right:before {\n content: '\\e131';\n}\n.glyphicon-circle-arrow-left:before {\n content: '\\e132';\n}\n.glyphicon-circle-arrow-up:before {\n content: '\\e133';\n}\n.glyphicon-circle-arrow-down:before {\n content: '\\e134';\n}\n.glyphicon-globe:before {\n content: '\\e135';\n}\n.glyphicon-wrench:before {\n content: '\\e136';\n}\n.glyphicon-tasks:before {\n content: '\\e137';\n}\n.glyphicon-filter:before {\n content: '\\e138';\n}\n.glyphicon-briefcase:before {\n content: '\\e139';\n}\n.glyphicon-fullscreen:before {\n content: '\\e140';\n}\n.glyphicon-dashboard:before {\n content: '\\e141';\n}\n.glyphicon-paperclip:before {\n content: '\\e142';\n}\n.glyphicon-heart-empty:before {\n content: '\\e143';\n}\n.glyphicon-link:before {\n content: '\\e144';\n}\n.glyphicon-phone:before {\n content: '\\e145';\n}\n.glyphicon-pushpin:before {\n content: '\\e146';\n}\n.glyphicon-usd:before {\n content: '\\e148';\n}\n.glyphicon-gbp:before {\n content: '\\e149';\n}\n.glyphicon-sort:before {\n content: '\\e150';\n}\n.glyphicon-sort-by-alphabet:before {\n content: '\\e151';\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: '\\e152';\n}\n.glyphicon-sort-by-order:before {\n content: '\\e153';\n}\n.glyphicon-sort-by-order-alt:before {\n content: '\\e154';\n}\n.glyphicon-sort-by-attributes:before {\n content: '\\e155';\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: '\\e156';\n}\n.glyphicon-unchecked:before {\n content: '\\e157';\n}\n.glyphicon-expand:before {\n content: '\\e158';\n}\n.glyphicon-collapse-down:before {\n content: '\\e159';\n}\n.glyphicon-collapse-up:before {\n content: '\\e160';\n}\n.glyphicon-log-in:before {\n content: '\\e161';\n}\n.glyphicon-flash:before {\n content: '\\e162';\n}\n.glyphicon-log-out:before {\n content: '\\e163';\n}\n.glyphicon-new-window:before {\n content: '\\e164';\n}\n.glyphicon-record:before {\n content: '\\e165';\n}\n.glyphicon-save:before {\n content: '\\e166';\n}\n.glyphicon-open:before {\n content: '\\e167';\n}\n.glyphicon-saved:before {\n content: '\\e168';\n}\n.glyphicon-import:before {\n content: '\\e169';\n}\n.glyphicon-export:before {\n content: '\\e170';\n}\n.glyphicon-send:before {\n content: '\\e171';\n}\n.glyphicon-floppy-disk:before {\n content: '\\e172';\n}\n.glyphicon-floppy-saved:before {\n content: '\\e173';\n}\n.glyphicon-floppy-remove:before {\n content: '\\e174';\n}\n.glyphicon-floppy-save:before {\n content: '\\e175';\n}\n.glyphicon-floppy-open:before {\n content: '\\e176';\n}\n.glyphicon-credit-card:before {\n content: '\\e177';\n}\n.glyphicon-transfer:before {\n content: '\\e178';\n}\n.glyphicon-cutlery:before {\n content: '\\e179';\n}\n.glyphicon-header:before {\n content: '\\e180';\n}\n.glyphicon-compressed:before {\n content: '\\e181';\n}\n.glyphicon-earphone:before {\n content: '\\e182';\n}\n.glyphicon-phone-alt:before {\n content: '\\e183';\n}\n.glyphicon-tower:before {\n content: '\\e184';\n}\n.glyphicon-stats:before {\n content: '\\e185';\n}\n.glyphicon-sd-video:before {\n content: '\\e186';\n}\n.glyphicon-hd-video:before {\n content: '\\e187';\n}\n.glyphicon-subtitles:before {\n content: '\\e188';\n}\n.glyphicon-sound-stereo:before {\n content: '\\e189';\n}\n.glyphicon-sound-dolby:before {\n content: '\\e190';\n}\n.glyphicon-sound-5-1:before {\n content: '\\e191';\n}\n.glyphicon-sound-6-1:before {\n content: '\\e192';\n}\n.glyphicon-sound-7-1:before {\n content: '\\e193';\n}\n.glyphicon-copyright-mark:before {\n content: '\\e194';\n}\n.glyphicon-registration-mark:before {\n content: '\\e195';\n}\n.glyphicon-cloud-download:before {\n content: '\\e197';\n}\n.glyphicon-cloud-upload:before {\n content: '\\e198';\n}\n.glyphicon-tree-conifer:before {\n content: '\\e199';\n}\n.glyphicon-tree-deciduous:before {\n content: '\\e200';\n}\n.glyphicon-cd:before {\n content: '\\e201';\n}\n.glyphicon-save-file:before {\n content: '\\e202';\n}\n.glyphicon-open-file:before {\n content: '\\e203';\n}\n.glyphicon-level-up:before {\n content: '\\e204';\n}\n.glyphicon-copy:before {\n content: '\\e205';\n}\n.glyphicon-paste:before {\n content: '\\e206';\n}\n.glyphicon-alert:before {\n content: '\\e209';\n}\n.glyphicon-equalizer:before {\n content: '\\e210';\n}\n.glyphicon-king:before {\n content: '\\e211';\n}\n.glyphicon-queen:before {\n content: '\\e212';\n}\n.glyphicon-pawn:before {\n content: '\\e213';\n}\n.glyphicon-bishop:before {\n content: '\\e214';\n}\n.glyphicon-knight:before {\n content: '\\e215';\n}\n.glyphicon-baby-formula:before {\n content: '\\e216';\n}\n.glyphicon-tent:before {\n content: '\\26fa';\n}\n.glyphicon-blackboard:before {\n content: '\\e218';\n}\n.glyphicon-bed:before {\n content: '\\e219';\n}\n.glyphicon-apple:before {\n content: '\\f8ff';\n}\n.glyphicon-erase:before {\n content: '\\e221';\n}\n.glyphicon-hourglass:before {\n content: '\\231b';\n}\n.glyphicon-lamp:before {\n content: '\\e223';\n}\n.glyphicon-duplicate:before {\n content: '\\e224';\n}\n.glyphicon-piggy-bank:before {\n content: '\\e225';\n}\n.glyphicon-scissors:before {\n content: '\\e226';\n}\n.glyphicon-bitcoin:before {\n content: '\\e227';\n}\n.glyphicon-btc:before {\n content: '\\e227';\n}\n.glyphicon-xbt:before {\n content: '\\e227';\n}\n.glyphicon-yen:before {\n content: '\\00a5';\n}\n.glyphicon-jpy:before {\n content: '\\00a5';\n}\n.glyphicon-ruble:before {\n content: '\\20bd';\n}\n.glyphicon-rub:before {\n content: '\\20bd';\n}\n.glyphicon-scale:before {\n content: '\\e230';\n}\n.glyphicon-ice-lolly:before {\n content: '\\e231';\n}\n.glyphicon-ice-lolly-tasted:before {\n content: '\\e232';\n}\n.glyphicon-education:before {\n content: '\\e233';\n}\n.glyphicon-option-horizontal:before {\n content: '\\e234';\n}\n.glyphicon-option-vertical:before {\n content: '\\e235';\n}\n.glyphicon-menu-hamburger:before {\n content: '\\e236';\n}\n.glyphicon-modal-window:before {\n content: '\\e237';\n}\n.glyphicon-oil:before {\n content: '\\e238';\n}\n.glyphicon-grain:before {\n content: '\\e239';\n}\n.glyphicon-sunglasses:before {\n content: '\\e240';\n}\n.glyphicon-text-size:before {\n content: '\\e241';\n}\n.glyphicon-text-color:before {\n content: '\\e242';\n}\n.glyphicon-text-background:before {\n content: '\\e243';\n}\n.glyphicon-object-align-top:before {\n content: '\\e244';\n}\n.glyphicon-object-align-bottom:before {\n content: '\\e245';\n}\n.glyphicon-object-align-horizontal:before {\n content: '\\e246';\n}\n.glyphicon-object-align-left:before {\n content: '\\e247';\n}\n.glyphicon-object-align-vertical:before {\n content: '\\e248';\n}\n.glyphicon-object-align-right:before {\n content: '\\e249';\n}\n.glyphicon-triangle-right:before {\n content: '\\e250';\n}\n.glyphicon-triangle-left:before {\n content: '\\e251';\n}\n.glyphicon-triangle-bottom:before {\n content: '\\e252';\n}\n.glyphicon-triangle-top:before {\n content: '\\e253';\n}\n.glyphicon-console:before {\n content: '\\e254';\n}\n.glyphicon-superscript:before {\n content: '\\e255';\n}\n.glyphicon-subscript:before {\n content: '\\e256';\n}\n.glyphicon-menu-left:before {\n content: '\\e257';\n}\n.glyphicon-menu-right:before {\n content: '\\e258';\n}\n.glyphicon-menu-down:before {\n content: '\\e259';\n}\n.glyphicon-menu-up:before {\n content: '\\e260';\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role='button'] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n margin-left: -5px;\n list-style: none;\n}\n.list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n overflow: hidden;\n clear: left;\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eee;\n border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n//.col-xs-1,\n//.col-sm-1,\n//.col-md-1,\n//.col-lg-1,\n//.col-xs-2,\n//.col-sm-2,\n//.col-md-2,\n//.col-lg-2,\n//.col-xs-3,\n//.col-sm-3,\n//.col-md-3,\n//.col-lg-3,\n//.col-xs-4,\n//.col-sm-4,\n//.col-md-4,\n//.col-lg-4,\n//.col-xs-5,\n//.col-sm-5,\n//.col-md-5,\n//.col-lg-5,\n//.col-xs-6,\n//.col-sm-6,\n//.col-md-6,\n//.col-lg-6,\n//.col-xs-7,\n//.col-sm-7,\n//.col-md-7,\n//.col-lg-7,\n//.col-xs-8,\n//.col-sm-8,\n//.col-md-8,\n//.col-lg-8,\n//.col-xs-9,\n//.col-sm-9,\n//.col-md-9,\n//.col-lg-9,\n//.col-xs-10,\n//.col-sm-10,\n//.col-md-10,\n//.col-lg-10,\n//.col-xs-11,\n//.col-sm-11,\n//.col-md-11,\n//.col-lg-11,\n//.col-xs-12,\n//.col-sm-12,\n//.col-md-12,\n//.col-lg-12 {\n// position: relative;\n// min-height: 1px;\n// padding-right: 15px;\n// padding-left: 15px;\n//}\n//.col-xs-1,\n//.col-xs-2,\n//.col-xs-3,\n//.col-xs-4,\n//.col-xs-5,\n//.col-xs-6,\n//.col-xs-7,\n//.col-xs-8,\n//.col-xs-9,\n//.col-xs-10,\n//.col-xs-11,\n//.col-xs-12 {\n// float: left;\n//}\n//.col-xs-12 {\n// width: 100%;\n//}\n//.col-xs-11 {\n// width: 91.66666667%;\n//}\n//.col-xs-10 {\n// width: 83.33333333%;\n//}\n//.col-xs-9 {\n// width: 75%;\n//}\n//.col-xs-8 {\n// width: 66.66666667%;\n//}\n//.col-xs-7 {\n// width: 58.33333333%;\n//}\n//.col-xs-6 {\n// width: 50%;\n//}\n//.col-xs-5 {\n// width: 41.66666667%;\n//}\n//.col-xs-4 {\n// width: 33.33333333%;\n//}\n//.col-xs-3 {\n// width: 25%;\n//}\n//.col-xs-2 {\n// width: 16.66666667%;\n//}\n//.col-xs-1 {\n// width: 8.33333333%;\n//}\n//.col-xs-pull-12 {\n// right: 100%;\n//}\n//.col-xs-pull-11 {\n// right: 91.66666667%;\n//}\n//.col-xs-pull-10 {\n// right: 83.33333333%;\n//}\n//.col-xs-pull-9 {\n// right: 75%;\n//}\n//.col-xs-pull-8 {\n// right: 66.66666667%;\n//}\n//.col-xs-pull-7 {\n// right: 58.33333333%;\n//}\n//.col-xs-pull-6 {\n// right: 50%;\n//}\n//.col-xs-pull-5 {\n// right: 41.66666667%;\n//}\n//.col-xs-pull-4 {\n// right: 33.33333333%;\n//}\n//.col-xs-pull-3 {\n// right: 25%;\n//}\n//.col-xs-pull-2 {\n// right: 16.66666667%;\n//}\n//.col-xs-pull-1 {\n// right: 8.33333333%;\n//}\n//.col-xs-pull-0 {\n// right: auto;\n//}\n//.col-xs-push-12 {\n// left: 100%;\n//}\n//.col-xs-push-11 {\n// left: 91.66666667%;\n//}\n//.col-xs-push-10 {\n// left: 83.33333333%;\n//}\n//.col-xs-push-9 {\n// left: 75%;\n//}\n//.col-xs-push-8 {\n// left: 66.66666667%;\n//}\n//.col-xs-push-7 {\n// left: 58.33333333%;\n//}\n//.col-xs-push-6 {\n// left: 50%;\n//}\n//.col-xs-push-5 {\n// left: 41.66666667%;\n//}\n//.col-xs-push-4 {\n// left: 33.33333333%;\n//}\n//.col-xs-push-3 {\n// left: 25%;\n//}\n//.col-xs-push-2 {\n// left: 16.66666667%;\n//}\n//.col-xs-push-1 {\n// left: 8.33333333%;\n//}\n//.col-xs-push-0 {\n// left: auto;\n//}\n//.col-xs-offset-12 {\n// margin-left: 100%;\n//}\n//.col-xs-offset-11 {\n// margin-left: 91.66666667%;\n//}\n//.col-xs-offset-10 {\n// margin-left: 83.33333333%;\n//}\n//.col-xs-offset-9 {\n// margin-left: 75%;\n//}\n//.col-xs-offset-8 {\n// margin-left: 66.66666667%;\n//}\n//.col-xs-offset-7 {\n// margin-left: 58.33333333%;\n//}\n//.col-xs-offset-6 {\n// margin-left: 50%;\n//}\n//.col-xs-offset-5 {\n// margin-left: 41.66666667%;\n//}\n//.col-xs-offset-4 {\n// margin-left: 33.33333333%;\n//}\n//.col-xs-offset-3 {\n// margin-left: 25%;\n//}\n//.col-xs-offset-2 {\n// margin-left: 16.66666667%;\n//}\n//.col-xs-offset-1 {\n// margin-left: 8.33333333%;\n//}\n//.col-xs-offset-0 {\n// margin-left: 0;\n//}\n//@media (min-width: 768px) {\n// .col-sm-1,\n// .col-sm-2,\n// .col-sm-3,\n// .col-sm-4,\n// .col-sm-5,\n// .col-sm-6,\n// .col-sm-7,\n// .col-sm-8,\n// .col-sm-9,\n// .col-sm-10,\n// .col-sm-11,\n// .col-sm-12 {\n// float: left;\n// }\n// .col-sm-12 {\n// width: 100%;\n// }\n// .col-sm-11 {\n// width: 91.66666667%;\n// }\n// .col-sm-10 {\n// width: 83.33333333%;\n// }\n// .col-sm-9 {\n// width: 75%;\n// }\n// .col-sm-8 {\n// width: 66.66666667%;\n// }\n// .col-sm-7 {\n// width: 58.33333333%;\n// }\n// .col-sm-6 {\n// width: 50%;\n// }\n// .col-sm-5 {\n// width: 41.66666667%;\n// }\n// .col-sm-4 {\n// width: 33.33333333%;\n// }\n// .col-sm-3 {\n// width: 25%;\n// }\n// .col-sm-2 {\n// width: 16.66666667%;\n// }\n// .col-sm-1 {\n// width: 8.33333333%;\n// }\n// .col-sm-pull-12 {\n// right: 100%;\n// }\n// .col-sm-pull-11 {\n// right: 91.66666667%;\n// }\n// .col-sm-pull-10 {\n// right: 83.33333333%;\n// }\n// .col-sm-pull-9 {\n// right: 75%;\n// }\n// .col-sm-pull-8 {\n// right: 66.66666667%;\n// }\n// .col-sm-pull-7 {\n// right: 58.33333333%;\n// }\n// .col-sm-pull-6 {\n// right: 50%;\n// }\n// .col-sm-pull-5 {\n// right: 41.66666667%;\n// }\n// .col-sm-pull-4 {\n// right: 33.33333333%;\n// }\n// .col-sm-pull-3 {\n// right: 25%;\n// }\n// .col-sm-pull-2 {\n// right: 16.66666667%;\n// }\n// .col-sm-pull-1 {\n// right: 8.33333333%;\n// }\n// .col-sm-pull-0 {\n// right: auto;\n// }\n// .col-sm-push-12 {\n// left: 100%;\n// }\n// .col-sm-push-11 {\n// left: 91.66666667%;\n// }\n// .col-sm-push-10 {\n// left: 83.33333333%;\n// }\n// .col-sm-push-9 {\n// left: 75%;\n// }\n// .col-sm-push-8 {\n// left: 66.66666667%;\n// }\n// .col-sm-push-7 {\n// left: 58.33333333%;\n// }\n// .col-sm-push-6 {\n// left: 50%;\n// }\n// .col-sm-push-5 {\n// left: 41.66666667%;\n// }\n// .col-sm-push-4 {\n// left: 33.33333333%;\n// }\n// .col-sm-push-3 {\n// left: 25%;\n// }\n// .col-sm-push-2 {\n// left: 16.66666667%;\n// }\n// .col-sm-push-1 {\n// left: 8.33333333%;\n// }\n// .col-sm-push-0 {\n// left: auto;\n// }\n// .col-sm-offset-12 {\n// margin-left: 100%;\n// }\n// .col-sm-offset-11 {\n// margin-left: 91.66666667%;\n// }\n// .col-sm-offset-10 {\n// margin-left: 83.33333333%;\n// }\n// .col-sm-offset-9 {\n// margin-left: 75%;\n// }\n// .col-sm-offset-8 {\n// margin-left: 66.66666667%;\n// }\n// .col-sm-offset-7 {\n// margin-left: 58.33333333%;\n// }\n// .col-sm-offset-6 {\n// margin-left: 50%;\n// }\n// .col-sm-offset-5 {\n// margin-left: 41.66666667%;\n// }\n// .col-sm-offset-4 {\n// margin-left: 33.33333333%;\n// }\n// .col-sm-offset-3 {\n// margin-left: 25%;\n// }\n// .col-sm-offset-2 {\n// margin-left: 16.66666667%;\n// }\n// .col-sm-offset-1 {\n// margin-left: 8.33333333%;\n// }\n// .col-sm-offset-0 {\n// margin-left: 0;\n// }\n//}\n//@media (min-width: 992px) {\n// .col-md-1,\n// .col-md-2,\n// .col-md-3,\n// .col-md-4,\n// .col-md-5,\n// .col-md-6,\n// .col-md-7,\n// .col-md-8,\n// .col-md-9,\n// .col-md-10,\n// .col-md-11,\n// .col-md-12 {\n// float: left;\n// }\n// .col-md-12 {\n// width: 100%;\n// }\n// .col-md-11 {\n// width: 91.66666667%;\n// }\n// .col-md-10 {\n// width: 83.33333333%;\n// }\n// .col-md-9 {\n// width: 75%;\n// }\n// .col-md-8 {\n// width: 66.66666667%;\n// }\n// .col-md-7 {\n// width: 58.33333333%;\n// }\n// .col-md-6 {\n// width: 50%;\n// }\n// .col-md-5 {\n// width: 41.66666667%;\n// }\n// .col-md-4 {\n// width: 33.33333333%;\n// }\n// .col-md-3 {\n// width: 25%;\n// }\n// .col-md-2 {\n// width: 16.66666667%;\n// }\n// .col-md-1 {\n// width: 8.33333333%;\n// }\n// .col-md-pull-12 {\n// right: 100%;\n// }\n// .col-md-pull-11 {\n// right: 91.66666667%;\n// }\n// .col-md-pull-10 {\n// right: 83.33333333%;\n// }\n// .col-md-pull-9 {\n// right: 75%;\n// }\n// .col-md-pull-8 {\n// right: 66.66666667%;\n// }\n// .col-md-pull-7 {\n// right: 58.33333333%;\n// }\n// .col-md-pull-6 {\n// right: 50%;\n// }\n// .col-md-pull-5 {\n// right: 41.66666667%;\n// }\n// .col-md-pull-4 {\n// right: 33.33333333%;\n// }\n// .col-md-pull-3 {\n// right: 25%;\n// }\n// .col-md-pull-2 {\n// right: 16.66666667%;\n// }\n// .col-md-pull-1 {\n// right: 8.33333333%;\n// }\n// .col-md-pull-0 {\n// right: auto;\n// }\n// .col-md-push-12 {\n// left: 100%;\n// }\n// .col-md-push-11 {\n// left: 91.66666667%;\n// }\n// .col-md-push-10 {\n// left: 83.33333333%;\n// }\n// .col-md-push-9 {\n// left: 75%;\n// }\n// .col-md-push-8 {\n// left: 66.66666667%;\n// }\n// .col-md-push-7 {\n// left: 58.33333333%;\n// }\n// .col-md-push-6 {\n// left: 50%;\n// }\n// .col-md-push-5 {\n// left: 41.66666667%;\n// }\n// .col-md-push-4 {\n// left: 33.33333333%;\n// }\n// .col-md-push-3 {\n// left: 25%;\n// }\n// .col-md-push-2 {\n// left: 16.66666667%;\n// }\n// .col-md-push-1 {\n// left: 8.33333333%;\n// }\n// .col-md-push-0 {\n// left: auto;\n// }\n// .col-md-offset-12 {\n// margin-left: 100%;\n// }\n// .col-md-offset-11 {\n// margin-left: 91.66666667%;\n// }\n// .col-md-offset-10 {\n// margin-left: 83.33333333%;\n// }\n// .col-md-offset-9 {\n// margin-left: 75%;\n// }\n// .col-md-offset-8 {\n// margin-left: 66.66666667%;\n// }\n// .col-md-offset-7 {\n// margin-left: 58.33333333%;\n// }\n// .col-md-offset-6 {\n// margin-left: 50%;\n// }\n// .col-md-offset-5 {\n// margin-left: 41.66666667%;\n// }\n// .col-md-offset-4 {\n// margin-left: 33.33333333%;\n// }\n// .col-md-offset-3 {\n// margin-left: 25%;\n// }\n// .col-md-offset-2 {\n// margin-left: 16.66666667%;\n// }\n// .col-md-offset-1 {\n// margin-left: 8.33333333%;\n// }\n// .col-md-offset-0 {\n// margin-left: 0;\n// }\n//}\n//@media (min-width: 1200px) {\n// .col-lg-1,\n// .col-lg-2,\n// .col-lg-3,\n// .col-lg-4,\n// .col-lg-5,\n// .col-lg-6,\n// .col-lg-7,\n// .col-lg-8,\n// .col-lg-9,\n// .col-lg-10,\n// .col-lg-11,\n// .col-lg-12 {\n// float: left;\n// }\n// .col-lg-12 {\n// width: 100%;\n// }\n// .col-lg-11 {\n// width: 91.66666667%;\n// }\n// .col-lg-10 {\n// width: 83.33333333%;\n// }\n// .col-lg-9 {\n// width: 75%;\n// }\n// .col-lg-8 {\n// width: 66.66666667%;\n// }\n// .col-lg-7 {\n// width: 58.33333333%;\n// }\n// .col-lg-6 {\n// width: 50%;\n// }\n// .col-lg-5 {\n// width: 41.66666667%;\n// }\n// .col-lg-4 {\n// width: 33.33333333%;\n// }\n// .col-lg-3 {\n// width: 25%;\n// }\n// .col-lg-2 {\n// width: 16.66666667%;\n// }\n// .col-lg-1 {\n// width: 8.33333333%;\n// }\n// .col-lg-pull-12 {\n// right: 100%;\n// }\n// .col-lg-pull-11 {\n// right: 91.66666667%;\n// }\n// .col-lg-pull-10 {\n// right: 83.33333333%;\n// }\n// .col-lg-pull-9 {\n// right: 75%;\n// }\n// .col-lg-pull-8 {\n// right: 66.66666667%;\n// }\n// .col-lg-pull-7 {\n// right: 58.33333333%;\n// }\n// .col-lg-pull-6 {\n// right: 50%;\n// }\n// .col-lg-pull-5 {\n// right: 41.66666667%;\n// }\n// .col-lg-pull-4 {\n// right: 33.33333333%;\n// }\n// .col-lg-pull-3 {\n// right: 25%;\n// }\n// .col-lg-pull-2 {\n// right: 16.66666667%;\n// }\n// .col-lg-pull-1 {\n// right: 8.33333333%;\n// }\n// .col-lg-pull-0 {\n// right: auto;\n// }\n// .col-lg-push-12 {\n// left: 100%;\n// }\n// .col-lg-push-11 {\n// left: 91.66666667%;\n// }\n// .col-lg-push-10 {\n// left: 83.33333333%;\n// }\n// .col-lg-push-9 {\n// left: 75%;\n// }\n// .col-lg-push-8 {\n// left: 66.66666667%;\n// }\n// .col-lg-push-7 {\n// left: 58.33333333%;\n// }\n// .col-lg-push-6 {\n// left: 50%;\n// }\n// .col-lg-push-5 {\n// left: 41.66666667%;\n// }\n// .col-lg-push-4 {\n// left: 33.33333333%;\n// }\n// .col-lg-push-3 {\n// left: 25%;\n// }\n// .col-lg-push-2 {\n// left: 16.66666667%;\n// }\n// .col-lg-push-1 {\n// left: 8.33333333%;\n// }\n// .col-lg-push-0 {\n// left: auto;\n// }\n// .col-lg-offset-12 {\n// margin-left: 100%;\n// }\n// .col-lg-offset-11 {\n// margin-left: 91.66666667%;\n// }\n// .col-lg-offset-10 {\n// margin-left: 83.33333333%;\n// }\n// .col-lg-offset-9 {\n// margin-left: 75%;\n// }\n// .col-lg-offset-8 {\n// margin-left: 66.66666667%;\n// }\n// .col-lg-offset-7 {\n// margin-left: 58.33333333%;\n// }\n// .col-lg-offset-6 {\n// margin-left: 50%;\n// }\n// .col-lg-offset-5 {\n// margin-left: 41.66666667%;\n// }\n// .col-lg-offset-4 {\n// margin-left: 33.33333333%;\n// }\n// .col-lg-offset-3 {\n// margin-left: 25%;\n// }\n// .col-lg-offset-2 {\n// margin-left: 16.66666667%;\n// }\n// .col-lg-offset-1 {\n// margin-left: 8.33333333%;\n// }\n// .col-lg-offset-0 {\n// margin-left: 0;\n// }\n//}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*='col-'] {\n position: static;\n display: table-column;\n float: none;\n}\ntable td[class*='col-'],\ntable th[class*='col-'] {\n position: static;\n display: table-cell;\n float: none;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n min-height: 0.01%;\n overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type='search'] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type='radio'],\ninput[type='checkbox'] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type='file'] {\n display: block;\n}\ninput[type='range'] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type='file']:focus,\ninput[type='radio']:focus,\ninput[type='checkbox']:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555;\n}\n//.form-control {\n// display: block;\n// width: 100%;\n// height: 34px;\n// padding: 6px 12px;\n// font-size: 14px;\n// line-height: 1.42857143;\n// color: #555;\n// background-color: #fff;\n// background-image: none;\n// border: 1px solid #ccc;\n// border-radius: 4px;\n// -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n// box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n// -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;\n// -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n// transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n//}\n//.form-control:focus {\n// border-color: #66afe9;\n// outline: 0;\n// -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n// box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n//}\n//.form-control::-moz-placeholder {\n// color: #999;\n// opacity: 1;\n//}\n//.form-control:-ms-input-placeholder {\n// color: #999;\n//}\n//.form-control::-webkit-input-placeholder {\n// color: #999;\n//}\n//.form-control[disabled],\n//.form-control[readonly],\n//fieldset[disabled] .form-control {\n// background-color: #eee;\n// opacity: 1;\n//}\n//.form-control[disabled],\n//fieldset[disabled] .form-control {\n// cursor: not-allowed;\n//}\n//textarea.form-control {\n// height: auto;\n//}\n//input[type='search'] {\n// -webkit-appearance: none;\n//}\n// @media screen and (-webkit-min-device-pixel-ratio: 0) {\n// input[type='date'],\n// input[type='time'],\n// input[type='datetime-local'],\n// input[type='month'] {\n// line-height: 34px;\n// }\n// input[type='date'].input-sm,\n// input[type='time'].input-sm,\n// input[type='datetime-local'].input-sm,\n// input[type='month'].input-sm,\n// .input-group-sm input[type='date'],\n// .input-group-sm input[type='time'],\n// .input-group-sm input[type='datetime-local'],\n// .input-group-sm input[type='month'] {\n// line-height: 30px;\n// }\n// input[type='date'].input-lg,\n// input[type='time'].input-lg,\n// input[type='datetime-local'].input-lg,\n// input[type='month'].input-lg,\n// .input-group-lg input[type='date'],\n// .input-group-lg input[type='time'],\n// .input-group-lg input[type='datetime-local'],\n// .input-group-lg input[type='month'] {\n// line-height: 46px;\n// }\n// }\n//.form-group {\n// margin-bottom: 15px;\n//}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type='radio'],\n.radio-inline input[type='radio'],\n.checkbox input[type='checkbox'],\n.checkbox-inline input[type='checkbox'] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n vertical-align: middle;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type='radio'][disabled],\ninput[type='checkbox'][disabled],\ninput[type='radio'].disabled,\ninput[type='checkbox'].disabled,\nfieldset[disabled] input[type='radio'],\nfieldset[disabled] input[type='checkbox'] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.form-group-sm .form-control {\n height: 30px;\n line-height: 30px;\n}\ntextarea.form-group-sm .form-control,\nselect[multiple].form-group-sm .form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.form-group-lg .form-control {\n height: 46px;\n line-height: 46px;\n}\ntextarea.form-group-lg .form-control,\nselect[multiple].form-group-lg .form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type='radio'],\n .form-inline .checkbox input[type='checkbox'] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 14.333333px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n }\n}\n.btn {\n display: inline-block;\n padding: 6px 12px;\n margin-bottom: 0;\n font-size: 14px;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n pointer-events: none;\n cursor: not-allowed;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n opacity: 0.65;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus,\n.btn-default.focus,\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:hover,\n.btn-primary:focus,\n.btn-primary.focus,\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:hover,\n.btn-success:focus,\n.btn-success.focus,\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:hover,\n.btn-info:focus,\n.btn-info.focus,\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:hover,\n.btn-warning:focus,\n.btn-warning.focus,\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:hover,\n.btn-danger:focus,\n.btn-danger.focus,\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n font-weight: normal;\n color: #337ab7;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type='submit'].btn-block,\ninput[type='reset'].btn-block,\ninput[type='button'].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-timing-function: ease;\n -o-transition-timing-function: ease;\n transition-timing-function: ease;\n -webkit-transition-duration: 0.35s;\n -o-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-property: height, visibility;\n -o-transition-property: height, visibility;\n transition-property: height, visibility;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n content: '';\n border-top: 0;\n border-bottom: 4px solid;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle='buttons'] > .btn input[type='radio'],\n[data-toggle='buttons'] > .btn-group > .btn input[type='radio'],\n[data-toggle='buttons'] > .btn input[type='checkbox'],\n[data-toggle='buttons'] > .btn-group > .btn input[type='checkbox'] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*='col-'] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555;\n text-align: center;\n background-color: #eee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type='radio'],\n.input-group-addon input[type='checkbox'] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n margin-left: -1px;\n}\n.nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eee;\n}\n.nav > li.disabled > a {\n color: #777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eee #eee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n -webkit-overflow-scrolling: touch;\n border-top: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-top: 8px;\n margin-right: 15px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n padding: 10px 15px;\n margin-top: 8px;\n margin-right: -15px;\n margin-bottom: 8px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type='radio'],\n .navbar-form .checkbox input[type='checkbox'] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: '/\\00a0';\n}\n.breadcrumb > .active {\n color: #777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n color: #23527c;\n background-color: #eee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 2;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777;\n cursor: not-allowed;\n background-color: #fff;\n}\n.label {\n display: inline;\n padding: 0.2em 0.6em 0.3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: #777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding: 30px 15px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding: 48px 0;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@-o-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n height: 20px;\n margin-bottom: 20px;\n overflow: hidden;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n -webkit-background-size: 40px 40px;\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: -o-linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n background-image: linear-gradient(\n 45deg,\n rgba(255, 255, 255, 0.15) 25%,\n transparent 25%,\n transparent 50%,\n rgba(255, 255, 255, 0.15) 50%,\n rgba(255, 255, 255, 0.15) 75%,\n transparent 75%,\n transparent\n );\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n padding-left: 0;\n margin-bottom: 20px;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\na.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n color: #777;\n cursor: not-allowed;\n background-color: #eee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\na.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\na.list-group-item-success.active:hover,\na.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\na.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\na.list-group-item-info.active:hover,\na.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\na.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\na.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: 0.2;\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\nbutton.close {\n -webkit-appearance: none;\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n outline: 0;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.modal-header {\n min-height: 16.42857143px;\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 12px;\n font-weight: normal;\n line-height: 1.4;\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.tooltip.in {\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n}\n.tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n}\n.tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n}\n.tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n text-decoration: none;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n font-size: 14px;\n font-weight: normal;\n line-height: 1.42857143;\n text-align: left;\n white-space: normal;\n background-color: #fff;\n -webkit-background-clip: padding-box;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n content: '';\n border-width: 10px;\n}\n.popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999;\n border-top-color: rgba(0, 0, 0, 0.25);\n border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: ' ';\n border-top-color: #fff;\n border-bottom-width: 0;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999;\n border-right-color: rgba(0, 0, 0, 0.25);\n border-left-width: 0;\n}\n.popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: ' ';\n border-right-color: #fff;\n border-left-width: 0;\n}\n.popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: ' ';\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: ' ';\n border-right-width: 0;\n border-left-color: #fff;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000;\n perspective: 1000;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n left: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n left: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n left: 0;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -webkit-gradient(\n linear,\n left top,\n right top,\n from(rgba(0, 0, 0, 0.5)),\n to(rgba(0, 0, 0, 0.0001))\n );\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -webkit-gradient(\n linear,\n left top,\n right top,\n from(rgba(0, 0, 0, 0.0001)),\n to(rgba(0, 0, 0, 0.5))\n );\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #fff;\n text-decoration: none;\n filter: alpha(opacity=90);\n outline: 0;\n opacity: 0.9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n margin-top: -10px;\n font-family: serif;\n line-height: 1;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n}\n.carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -15px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-footer:before,\n.modal-footer:after {\n display: table;\n content: ' ';\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n","/*******************************************************************************\n * bootstrap-rtl (version 3.3.4)\n * Author: Morteza Ansarinia (http://github.com/morteza)\n * Created on: August 13,2015\n * Project: bootstrap-rtl\n * Copyright: Unlicensed Public Domain\n *******************************************************************************/\n\n[dir='rtl'] {\n .flip.text-left {\n text-align: right;\n }\n .flip.text-right {\n text-align: left;\n }\n .list-unstyled {\n padding-right: 0;\n padding-left: initial;\n }\n .list-inline {\n padding-right: 0;\n padding-left: initial;\n margin-right: -5px;\n margin-left: 0;\n }\n dd {\n margin-right: 0;\n margin-left: initial;\n }\n @media (min-width: 768px) {\n .dl-horizontal dt {\n float: right;\n clear: right;\n text-align: left;\n }\n .dl-horizontal dd {\n margin-right: 180px;\n margin-left: 0;\n }\n }\n blockquote {\n border-right: 5px solid #eeeeee;\n border-left: 0;\n }\n .blockquote-reverse,\n blockquote.pull-left {\n padding-left: 15px;\n padding-right: 0;\n border-left: 5px solid #eeeeee;\n border-right: 0;\n text-align: left;\n }\n .col-xs-1,\n .col-sm-1,\n .col-md-1,\n .col-lg-1,\n .col-xs-2,\n .col-sm-2,\n .col-md-2,\n .col-lg-2,\n .col-xs-3,\n .col-sm-3,\n .col-md-3,\n .col-lg-3,\n .col-xs-4,\n .col-sm-4,\n .col-md-4,\n .col-lg-4,\n .col-xs-5,\n .col-sm-5,\n .col-md-5,\n .col-lg-5,\n .col-xs-6,\n .col-sm-6,\n .col-md-6,\n .col-lg-6,\n .col-xs-7,\n .col-sm-7,\n .col-md-7,\n .col-lg-7,\n .col-xs-8,\n .col-sm-8,\n .col-md-8,\n .col-lg-8,\n .col-xs-9,\n .col-sm-9,\n .col-md-9,\n .col-lg-9,\n .col-xs-10,\n .col-sm-10,\n .col-md-10,\n .col-lg-10,\n .col-xs-11,\n .col-sm-11,\n .col-md-11,\n .col-lg-11,\n .col-xs-12,\n .col-sm-12,\n .col-md-12,\n .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n }\n .col-xs-1,\n .col-xs-2,\n .col-xs-3,\n .col-xs-4,\n .col-xs-5,\n .col-xs-6,\n .col-xs-7,\n .col-xs-8,\n .col-xs-9,\n .col-xs-10,\n .col-xs-11,\n .col-xs-12 {\n float: right;\n }\n .col-xs-12 {\n width: 100%;\n }\n .col-xs-11 {\n width: 91.66666667%;\n }\n .col-xs-10 {\n width: 83.33333333%;\n }\n .col-xs-9 {\n width: 75%;\n }\n .col-xs-8 {\n width: 66.66666667%;\n }\n .col-xs-7 {\n width: 58.33333333%;\n }\n .col-xs-6 {\n width: 50%;\n }\n .col-xs-5 {\n width: 41.66666667%;\n }\n .col-xs-4 {\n width: 33.33333333%;\n }\n .col-xs-3 {\n width: 25%;\n }\n .col-xs-2 {\n width: 16.66666667%;\n }\n .col-xs-1 {\n width: 8.33333333%;\n }\n .col-xs-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-xs-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-xs-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-xs-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-xs-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-xs-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-xs-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-xs-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-xs-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-xs-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-xs-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-xs-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-xs-pull-0 {\n left: auto;\n right: auto;\n }\n .col-xs-push-12 {\n right: 100%;\n left: 0;\n }\n .col-xs-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-xs-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-xs-push-9 {\n right: 75%;\n left: 0;\n }\n .col-xs-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-xs-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-xs-push-6 {\n right: 50%;\n left: 0;\n }\n .col-xs-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-xs-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-xs-push-3 {\n right: 25%;\n left: 0;\n }\n .col-xs-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-xs-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-xs-push-0 {\n right: auto;\n left: 0;\n }\n .col-xs-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-xs-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-xs-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-xs-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-xs-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-xs-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-xs-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n @media (min-width: 768px) {\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12 {\n float: right;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-sm-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-sm-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-sm-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-sm-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-sm-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-sm-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-sm-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-sm-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-sm-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-sm-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-sm-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-sm-pull-0 {\n left: auto;\n right: auto;\n }\n .col-sm-push-12 {\n right: 100%;\n left: 0;\n }\n .col-sm-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-sm-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-sm-push-9 {\n right: 75%;\n left: 0;\n }\n .col-sm-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-sm-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-sm-push-6 {\n right: 50%;\n left: 0;\n }\n .col-sm-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-sm-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-sm-push-3 {\n right: 25%;\n left: 0;\n }\n .col-sm-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-sm-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-sm-push-0 {\n right: auto;\n left: 0;\n }\n .col-sm-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-sm-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-sm-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-sm-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-sm-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-sm-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-sm-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n @media (min-width: 992px) {\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12 {\n float: right;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-md-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-md-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-md-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-md-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-md-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-md-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-md-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-md-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-md-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-md-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-md-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-md-pull-0 {\n left: auto;\n right: auto;\n }\n .col-md-push-12 {\n right: 100%;\n left: 0;\n }\n .col-md-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-md-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-md-push-9 {\n right: 75%;\n left: 0;\n }\n .col-md-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-md-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-md-push-6 {\n right: 50%;\n left: 0;\n }\n .col-md-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-md-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-md-push-3 {\n right: 25%;\n left: 0;\n }\n .col-md-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-md-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-md-push-0 {\n right: auto;\n left: 0;\n }\n .col-md-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-md-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-md-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-md-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-md-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-md-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-md-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-md-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-md-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-md-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-md-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-md-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-md-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n @media (min-width: 1200px) {\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12 {\n float: right;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n left: 100%;\n right: auto;\n }\n .col-lg-pull-11 {\n left: 91.66666667%;\n right: auto;\n }\n .col-lg-pull-10 {\n left: 83.33333333%;\n right: auto;\n }\n .col-lg-pull-9 {\n left: 75%;\n right: auto;\n }\n .col-lg-pull-8 {\n left: 66.66666667%;\n right: auto;\n }\n .col-lg-pull-7 {\n left: 58.33333333%;\n right: auto;\n }\n .col-lg-pull-6 {\n left: 50%;\n right: auto;\n }\n .col-lg-pull-5 {\n left: 41.66666667%;\n right: auto;\n }\n .col-lg-pull-4 {\n left: 33.33333333%;\n right: auto;\n }\n .col-lg-pull-3 {\n left: 25%;\n right: auto;\n }\n .col-lg-pull-2 {\n left: 16.66666667%;\n right: auto;\n }\n .col-lg-pull-1 {\n left: 8.33333333%;\n right: auto;\n }\n .col-lg-pull-0 {\n left: auto;\n right: auto;\n }\n .col-lg-push-12 {\n right: 100%;\n left: 0;\n }\n .col-lg-push-11 {\n right: 91.66666667%;\n left: 0;\n }\n .col-lg-push-10 {\n right: 83.33333333%;\n left: 0;\n }\n .col-lg-push-9 {\n right: 75%;\n left: 0;\n }\n .col-lg-push-8 {\n right: 66.66666667%;\n left: 0;\n }\n .col-lg-push-7 {\n right: 58.33333333%;\n left: 0;\n }\n .col-lg-push-6 {\n right: 50%;\n left: 0;\n }\n .col-lg-push-5 {\n right: 41.66666667%;\n left: 0;\n }\n .col-lg-push-4 {\n right: 33.33333333%;\n left: 0;\n }\n .col-lg-push-3 {\n right: 25%;\n left: 0;\n }\n .col-lg-push-2 {\n right: 16.66666667%;\n left: 0;\n }\n .col-lg-push-1 {\n right: 8.33333333%;\n left: 0;\n }\n .col-lg-push-0 {\n right: auto;\n left: 0;\n }\n .col-lg-offset-12 {\n margin-right: 100%;\n margin-left: 0;\n }\n .col-lg-offset-11 {\n margin-right: 91.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-10 {\n margin-right: 83.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .col-lg-offset-8 {\n margin-right: 66.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-7 {\n margin-right: 58.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .col-lg-offset-5 {\n margin-right: 41.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-4 {\n margin-right: 33.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .col-lg-offset-2 {\n margin-right: 16.66666667%;\n margin-left: 0;\n }\n .col-lg-offset-1 {\n margin-right: 8.33333333%;\n margin-left: 0;\n }\n .col-lg-offset-0 {\n margin-right: 0%;\n margin-left: 0;\n }\n }\n caption {\n text-align: right;\n }\n th:not(.mx-left-aligned) {\n text-align: right;\n }\n @media screen and (max-width: 767px) {\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-right: 0;\n border-left: initial;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-left: 0;\n border-right: initial;\n }\n }\n .radio label,\n .checkbox label {\n padding-right: 20px;\n padding-left: initial;\n }\n .radio input[type='radio'],\n .radio-inline input[type='radio'],\n .checkbox input[type='checkbox'],\n .checkbox-inline input[type='checkbox'] {\n margin-right: -20px;\n margin-left: auto;\n }\n .radio-inline,\n .checkbox-inline {\n padding-right: 20px;\n padding-left: 0;\n }\n .radio-inline + .radio-inline,\n .checkbox-inline + .checkbox-inline {\n margin-right: 10px;\n margin-left: 0;\n }\n .has-feedback .form-control {\n padding-left: 42.5px;\n padding-right: 12px;\n }\n .form-control-feedback {\n left: 0;\n right: auto;\n }\n @media (min-width: 768px) {\n .form-inline label {\n padding-right: 0;\n padding-left: initial;\n }\n .form-inline .radio input[type='radio'],\n .form-inline .checkbox input[type='checkbox'] {\n margin-right: 0;\n margin-left: auto;\n }\n }\n @media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: left;\n }\n }\n .form-horizontal .has-feedback .form-control-feedback {\n left: 15px;\n right: auto;\n }\n .caret {\n margin-right: 2px;\n margin-left: 0;\n }\n .dropdown-menu {\n right: 0;\n left: auto;\n float: left;\n text-align: right;\n }\n .dropdown-menu.pull-right {\n left: 0;\n right: auto;\n float: right;\n }\n .dropdown-menu-right {\n left: auto;\n right: 0;\n }\n .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n @media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n }\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n float: right;\n }\n .btn-group .btn + .btn,\n .btn-group .btn + .btn-group,\n .btn-group .btn-group + .btn,\n .btn-group .btn-group + .btn-group {\n margin-right: -1px;\n margin-left: 0px;\n }\n .btn-toolbar {\n margin-right: -5px;\n margin-left: 0px;\n }\n .btn-toolbar .btn-group,\n .btn-toolbar .input-group {\n float: right;\n }\n .btn-toolbar > .btn,\n .btn-toolbar > .btn-group,\n .btn-toolbar > .input-group {\n margin-right: 5px;\n margin-left: 0px;\n }\n .btn-group > .btn:first-child {\n margin-right: 0;\n }\n .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .btn-group > .btn:last-child:not(:first-child),\n .btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .btn-group > .btn-group {\n float: right;\n }\n .btn-group.btn-group-justified > .btn,\n .btn-group.btn-group-justified > .btn-group {\n float: none;\n }\n .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n }\n .btn-group > .btn-group:first-child > .btn:last-child,\n .btn-group > .btn-group:first-child > .dropdown-toggle {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .btn-group > .btn-group:last-child > .btn:first-child {\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .btn .caret {\n margin-right: 0;\n }\n .btn-group-vertical > .btn + .btn,\n .btn-group-vertical > .btn + .btn-group,\n .btn-group-vertical > .btn-group + .btn,\n .btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-right: 0;\n }\n .input-group .form-control {\n float: right;\n }\n .input-group .form-control:first-child,\n .input-group-addon:first-child,\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group > .btn,\n .input-group-btn:first-child > .dropdown-toggle,\n .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .input-group-addon:first-child {\n border-left: 0px;\n border-right: 1px solid;\n }\n .input-group .form-control:last-child,\n .input-group-addon:last-child,\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group > .btn,\n .input-group-btn:last-child > .dropdown-toggle,\n .input-group-btn:first-child > .btn:not(:first-child),\n .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .input-group-addon:last-child {\n border-left-width: 1px;\n border-left-style: solid;\n border-right: 0px;\n }\n .input-group-btn > .btn + .btn {\n margin-right: -1px;\n margin-left: auto;\n }\n .input-group-btn:first-child > .btn,\n .input-group-btn:first-child > .btn-group {\n margin-left: -1px;\n margin-right: auto;\n }\n .input-group-btn:last-child > .btn,\n .input-group-btn:last-child > .btn-group {\n margin-right: -1px;\n margin-left: auto;\n }\n .nav {\n padding-right: 0;\n padding-left: initial;\n }\n .nav-tabs > li {\n float: right;\n }\n .nav-tabs > li > a {\n margin-left: auto;\n margin-right: -2px;\n border-radius: 4px 4px 0 0;\n }\n .nav-pills > li {\n float: right;\n }\n .nav-pills > li > a {\n border-radius: 4px;\n }\n .nav-pills > li + li {\n margin-right: 2px;\n margin-left: auto;\n }\n .nav-stacked > li {\n float: none;\n }\n .nav-stacked > li + li {\n margin-right: 0;\n margin-left: auto;\n }\n .nav-justified > .dropdown .dropdown-menu {\n right: auto;\n }\n .nav-tabs-justified > li > a {\n margin-left: 0;\n margin-right: auto;\n }\n @media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-radius: 4px 4px 0 0;\n }\n }\n @media (min-width: 768px) {\n .navbar-header {\n float: right;\n }\n }\n .navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n }\n .navbar-brand {\n float: right;\n }\n @media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-right: -15px;\n margin-left: auto;\n }\n }\n .navbar-toggle {\n float: left;\n margin-left: 15px;\n margin-right: auto;\n }\n @media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 25px 5px 15px;\n }\n }\n @media (min-width: 768px) {\n .navbar-nav {\n float: right;\n }\n .navbar-nav > li {\n float: right;\n }\n }\n @media (min-width: 768px) {\n .navbar-left.flip {\n float: right !important;\n }\n .navbar-right:last-child {\n margin-left: -15px;\n margin-right: auto;\n }\n .navbar-right.flip {\n float: left !important;\n margin-left: -15px;\n margin-right: auto;\n }\n .navbar-right .dropdown-menu {\n left: 0;\n right: auto;\n }\n }\n @media (min-width: 768px) {\n .navbar-text {\n float: right;\n }\n .navbar-text.navbar-right:last-child {\n margin-left: 0;\n margin-right: auto;\n }\n }\n .pagination {\n padding-right: 0;\n }\n .pagination > li > a,\n .pagination > li > span {\n float: right;\n margin-right: -1px;\n margin-left: 0px;\n }\n .pagination > li:first-child > a,\n .pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n .pagination > li:last-child > a,\n .pagination > li:last-child > span {\n margin-right: -1px;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n }\n .pager {\n padding-right: 0;\n padding-left: initial;\n }\n .pager .next > a,\n .pager .next > span {\n float: left;\n }\n .pager .previous > a,\n .pager .previous > span {\n float: right;\n }\n .nav-pills > li > a > .badge {\n margin-left: 0px;\n margin-right: 3px;\n }\n .list-group-item > .badge {\n float: left;\n }\n .list-group-item > .badge + .badge {\n margin-left: 5px;\n margin-right: auto;\n }\n .alert-dismissable,\n .alert-dismissible {\n padding-left: 35px;\n padding-right: 15px;\n }\n .alert-dismissable .close,\n .alert-dismissible .close {\n right: auto;\n left: -21px;\n }\n .progress-bar {\n float: right;\n }\n .media > .pull-left {\n margin-right: 10px;\n }\n .media > .pull-left.flip {\n margin-right: 0;\n margin-left: 10px;\n }\n .media > .pull-right {\n margin-left: 10px;\n }\n .media > .pull-right.flip {\n margin-left: 0;\n margin-right: 10px;\n }\n .media-right,\n .media > .pull-right {\n padding-right: 10px;\n padding-left: initial;\n }\n .media-left,\n .media > .pull-left {\n padding-left: 10px;\n padding-right: initial;\n }\n .media-list {\n padding-right: 0;\n padding-left: initial;\n list-style: none;\n }\n .list-group {\n padding-right: 0;\n padding-left: initial;\n }\n .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 0;\n }\n .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 0;\n }\n .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n border-top-right-radius: 0;\n }\n .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n border-top-left-radius: 0;\n }\n .panel > .table-bordered > thead > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n .panel > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .panel > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .panel > .table-bordered > thead > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n .panel > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .panel > .table-bordered > tfoot > tr > td:first-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-right: 0;\n border-left: none;\n }\n .panel > .table-bordered > thead > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n .panel > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .panel > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .panel > .table-bordered > thead > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n .panel > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .panel > .table-bordered > tfoot > tr > td:last-child,\n .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: none;\n border-left: 0;\n }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object {\n right: 0;\n left: auto;\n }\n .close {\n float: left;\n }\n .modal-footer {\n text-align: left;\n }\n .modal-footer.flip {\n text-align: right;\n }\n .modal-footer .btn + .btn {\n margin-left: auto;\n margin-right: 5px;\n }\n .modal-footer .btn-group .btn + .btn {\n margin-right: -1px;\n margin-left: auto;\n }\n .modal-footer .btn-block + .btn-block {\n margin-right: 0;\n margin-left: auto;\n }\n .popover {\n left: auto;\n text-align: right;\n }\n .popover.top > .arrow {\n right: 50%;\n left: auto;\n margin-right: -11px;\n margin-left: auto;\n }\n .popover.top > .arrow:after {\n margin-right: -10px;\n margin-left: auto;\n }\n .popover.bottom > .arrow {\n right: 50%;\n left: auto;\n margin-right: -11px;\n margin-left: auto;\n }\n .popover.bottom > .arrow:after {\n margin-right: -10px;\n margin-left: auto;\n }\n .carousel-control {\n right: 0;\n bottom: 0;\n }\n .carousel-control.left {\n right: auto;\n left: 0;\n background-image: -webkit-linear-gradient(\n left,\n color-stop(rgba(0, 0, 0, 0.5) 0%),\n color-stop(rgba(0, 0, 0, 0.0001) 100%)\n );\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n }\n .carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(\n left,\n color-stop(rgba(0, 0, 0, 0.0001) 0%),\n color-stop(rgba(0, 0, 0, 0.5) 100%)\n );\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n }\n .carousel-control .icon-prev,\n .carousel-control .glyphicon-chevron-left {\n left: 50%;\n right: auto;\n margin-right: -10px;\n }\n .carousel-control .icon-next,\n .carousel-control .glyphicon-chevron-right {\n right: 50%;\n left: auto;\n margin-left: -10px;\n }\n .carousel-indicators {\n right: 50%;\n left: 0;\n margin-right: -30%;\n margin-left: 0;\n padding-left: 0;\n }\n @media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: 0;\n margin-right: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-left: 0;\n margin-right: -15px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n }\n .pull-right.flip {\n float: left !important;\n }\n .pull-left.flip {\n float: right !important;\n }\n}\n","/* @preserve\n Copyright (c) 2005-2016, Mendix bv. All rights reserved.\n See mxclientsystem/licenses.txt for third party licenses that apply.\n*/\n\n\n/*\n\tEssential styles that themes can inherit.\n\tIn other words, works but doesn't look great.\n*/\n\n\n\n/****\n\t\tGENERIC PIECES\n ****/\n\n .dijitReset {\n\t/* Use this style to null out padding, margin, border in your template elements\n\t\tso that page specific styles don't break them.\n\t\t- Use in all TABLE, TR and TD tags.\n\t*/\n\tmargin:0;\n\tborder:0;\n\tpadding:0;\n\tfont: inherit;\n\tline-height:normal;\n\tcolor: inherit;\n}\n.dj_a11y .dijitReset {\n\t-moz-appearance: none; /* remove predefined high-contrast styling in Firefox */\n}\n\n.dijitInline {\n\t/* To inline block elements.\n\t\tSimilar to InlineBox below, but this has fewer side-effects in Moz.\n\t\tAlso, apparently works on a DIV as well as a FIELDSET.\n\t*/\n\tdisplay:inline-block;\t\t\t/* webkit and FF3 */\n\tborder:0;\n\tpadding:0;\n\tvertical-align:middle;\n}\n\ntable.dijitInline {\n\t/* To inline tables with a given width set */\n\tdisplay:inline-table;\n\tbox-sizing: content-box; -moz-box-sizing: content-box;\n}\n\n.dijitHidden {\n\t/* To hide unselected panes in StackContainer etc. */\n\tposition: absolute; /* remove from normal document flow to simulate display: none */\n\tvisibility: hidden; /* hide element from view, but don't break scrolling, see #18612 */\n}\n.dijitHidden * {\n\tvisibility: hidden !important; /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */\n}\n\n.dijitVisible {\n\t/* To show selected pane in StackContainer etc. */\n\tdisplay: block !important;\t/* override user's display:none setting via style setting or indirectly via class */\n\tposition: relative;\t\t\t/* to support setting width/height, see #2033 */\n\tvisibility: visible;\n}\n\n.dj_ie6 .dijitComboBox .dijitInputContainer,\n.dijitInputContainer {\n\t/* for positioning of placeHolder */\n\toverflow: hidden;\n\tfloat: none !important; /* needed to squeeze the INPUT in */\n\tposition: relative;\n}\n.dj_ie7 .dijitInputContainer {\n\tfloat: left !important; /* needed by IE to squeeze the INPUT in */\n\tclear: left;\n\tdisplay: inline-block !important; /* to fix wrong text alignment in textdir=rtl text box */\n}\n\n.dj_ie .dijitSelect input,\n.dj_ie input.dijitTextBox,\n.dj_ie .dijitTextBox input {\n\tfont-size: 100%;\n}\n.dijitSelect .dijitButtonText {\n\tfloat: left;\n\tvertical-align: top;\n}\nTABLE.dijitSelect {\n\tpadding: 0 !important; /* messes up border alignment */\n\tborder-collapse: separate; /* so jsfiddle works with Normalized CSS checked */\n}\n.dijitTextBox .dijitSpinnerButtonContainer,\n.dijitTextBox .dijitArrowButtonContainer,\n.dijitValidationTextBox .dijitValidationContainer {\n\tfloat: right;\n\ttext-align: center;\n}\n.dijitSelect input.dijitInputField,\n.dijitTextBox input.dijitInputField {\n\t/* override unreasonable user styling of buttons and icons */\n\tpadding-left: 0 !important;\n\tpadding-right: 0 !important;\n}\n.dijitValidationTextBox .dijitValidationContainer {\n\tdisplay: none;\n}\n\n.dijitTeeny {\n\tfont-size:1px;\n\tline-height:1px;\n}\n\n.dijitOffScreen { /* these class attributes should supersede any inline positioning style */\n\tposition: absolute !important;\n\tleft: -10000px !important;\n\ttop: -10000px !important;\n}\n\n/*\n * Popup items have a wrapper div (dijitPopup)\n * with the real popup inside, and maybe an iframe too\n */\n.dijitPopup {\n\tposition: absolute;\n\tbackground-color: transparent;\n\tmargin: 0;\n\tborder: 0;\n\tpadding: 0;\n\t-webkit-overflow-scrolling: touch;\n}\n\n.dijitPositionOnly {\n\t/* Null out all position-related properties */\n\tpadding: 0 !important;\n\tborder: 0 !important;\n\tbackground-color: transparent !important;\n\tbackground-image: none !important;\n\theight: auto !important;\n\twidth: auto !important;\n}\n\n.dijitNonPositionOnly {\n\t/* Null position-related properties */\n\tfloat: none !important;\n\tposition: static !important;\n\tmargin: 0 0 0 0 !important;\n\tvertical-align: middle !important;\n}\n\n.dijitBackgroundIframe {\n\t/* iframe used to prevent problems with PDF or other applets overlaying menus etc */\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: -1;\n\tborder: 0;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.dijitDisplayNone {\n\t/* hide something. Use this as a class rather than element.style so another class can override */\n\tdisplay:none !important;\n}\n\n.dijitContainer {\n\t/* for all layout containers */\n\toverflow: hidden;\t/* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */\n}\n\n/****\n\t\tA11Y\n ****/\n.dj_a11y .dijitIcon,\n.dj_a11y div.dijitArrowButtonInner, /* is this only for Spinner? if so, it should be deleted */\n.dj_a11y span.dijitArrowButtonInner,\n.dj_a11y img.dijitArrowButtonInner,\n.dj_a11y .dijitCalendarIncrementControl,\n.dj_a11y .dijitTreeExpando {\n\t/* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents\n\t * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */\n\tdisplay: none;\n}\n.dijitSpinner div.dijitArrowButtonInner {\n\tdisplay: block; /* override previous rule */\n}\n\n.dj_a11y .dijitA11ySideArrow {\n\tdisplay: inline !important; /* display text instead */\n\tcursor: pointer;\n}\n\n/*\n * Since we can't use shading in a11y mode, and since the underline indicates today's date,\n * use a border to show the selected date.\n * Avoid screen jitter when switching selected date by compensating for the selected node's\n * border w/padding on other nodes.\n */\n.dj_a11y .dijitCalendarDateLabel {\n\tpadding: 1px;\n\tborder: 0px !important;\n}\n.dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel {\n\tborder-style: solid !important;\n\tborder-width: 1px !important;\n\tpadding: 0;\n}\n.dj_a11y .dijitCalendarDateTemplate {\n\tpadding-bottom: 0.1em !important;\t/* otherwise bottom border doesn't appear on IE */\n\tborder: 0px !important;\n}\n.dj_a11y .dijitButtonNode {\n\tborder: black outset medium !important;\n\n\t/* In claro, hovering a toolbar button reduces padding and adds a border.\n\t * Not needed in a11y mode since Toolbar buttons always have a border.\n\t */\n\tpadding: 0 !important;\n}\n.dj_a11y .dijitArrowButton {\n\tpadding: 0 !important;\n}\n\n.dj_a11y .dijitButtonContents {\n\tmargin: 0.15em; /* Margin needed to make focus outline visible */\n}\n\n.dj_a11y .dijitTextBoxReadOnly .dijitInputField,\n.dj_a11y .dijitTextBoxReadOnly .dijitButtonNode {\n\tborder-style: outset!important;\n\tborder-width: medium!important;\n\tborder-color: #999 !important;\n\tcolor:#999 !important;\n}\n\n/* button inner contents - labels, icons etc. */\n.dijitButtonNode * {\n\tvertical-align: middle;\n}\n.dijitSelect .dijitArrowButtonInner,\n.dijitButtonNode .dijitArrowButtonInner {\n\t/* the arrow icon node */\n\tbackground: no-repeat center;\n\twidth: 12px;\n\theight: 12px;\n\tdirection: ltr; /* needed by IE/RTL */\n}\n\n/****\n\t3-element borders: ( dijitLeft + dijitStretch + dijitRight )\n\tThese were added for rounded corners on dijit.form.*Button but never actually used.\n ****/\n\n.dijitLeft {\n\t/* Left part of a 3-element border */\n\tbackground-position:left top;\n\tbackground-repeat:no-repeat;\n}\n\n.dijitStretch {\n\t/* Middle (stretchy) part of a 3-element border */\n\twhite-space:nowrap;\t\t\t/* MOW: move somewhere else */\n\tbackground-repeat:repeat-x;\n}\n\n.dijitRight {\n\t/* Right part of a 3-element border */\n\tbackground-position:right top;\n\tbackground-repeat:no-repeat;\n}\n\n/* Buttons */\n.dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode {\n\topacity: 0.5;\n}\n\n.dijitToggleButton,\n.dijitButton,\n.dijitDropDownButton,\n.dijitComboButton {\n\t/* outside of button */\n\tmargin: 0.2em;\n\tvertical-align: middle;\n}\n\n.dijitButtonContents {\n\tdisplay: block;\t\t/* to make focus border rectangular */\n}\ntd.dijitButtonContents {\n\tdisplay: table-cell;\t/* but don't affect Select, ComboButton */\n}\n\n.dijitButtonNode img {\n\t/* make text and images line up cleanly */\n\tvertical-align:middle;\n\t/*margin-bottom:.2em;*/\n}\n\n.dijitToolbar .dijitComboButton {\n\t/* because Toolbar only draws a border around the hovered thing */\n\tborder-collapse: separate;\n}\n\n.dijitToolbar .dijitToggleButton,\n.dijitToolbar .dijitButton,\n.dijitToolbar .dijitDropDownButton,\n.dijitToolbar .dijitComboButton {\n\tmargin: 0;\n}\n\n.dijitToolbar .dijitButtonContents {\n\t/* just because it used to be this way */\n\tpadding: 1px 2px;\n}\n\n\n.dj_webkit .dijitToolbar .dijitDropDownButton {\n\tpadding-left: 0.3em;\n}\n.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner {\n\tpadding:0;\n}\n\n.dijitSelect {\n\tborder:1px solid gray;\n}\n.dijitButtonNode {\n\t/* Node that is acting as a button -- may or may not be a BUTTON element */\n\tborder:1px solid gray;\n\tmargin:0;\n\tline-height:normal;\n\tvertical-align: middle;\n\ttext-align:center;\n\twhite-space: nowrap;\n}\n.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer {\n\t/* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode)\n\tcan be different than just a single line-height:normal, visible in InlineEditBox/Spinner */\n\tline-height:inherit;\n}\n.dijitTextBox .dijitButtonNode {\n\tborder-width: 0;\n}\n\n.dijitSelect,\n.dijitSelect *,\n.dijitButtonNode,\n.dijitButtonNode * {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dj_ie .dijitButtonNode {\n\t/* ensure hasLayout */\n\tzoom: 1;\n}\n\n.dj_ie .dijitButtonNode button {\n\t/*\n\t\tdisgusting hack to get rid of spurious padding around button elements\n\t\ton IE. MSIE is truly the web's boat anchor.\n\t*/\n\toverflow: visible;\n}\n\ndiv.dijitArrowButton {\n\tfloat: right;\n}\n\n/******\n\tTextBox related.\n\tEverything that has an \n*******/\n\n.dijitTextBox {\n\tborder: solid black 1px;\n\twidth: 15em;\t/* need to set default size on outer node since inner nodes say and . user can override */\n\tvertical-align: middle;\n}\n\n.dijitTextBoxReadOnly,\n.dijitTextBoxDisabled {\n\tcolor: gray;\n}\n.dj_safari .dijitTextBoxDisabled input {\n\tcolor: #B0B0B0; /* because Safari lightens disabled input/textarea no matter what color you specify */\n}\n.dj_safari textarea.dijitTextAreaDisabled {\n\tcolor: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */\n}\n.dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */\n.dj_gecko .dijitTextBoxDisabled input {\n\t-moz-user-input: none; /* prevent focus of disabled textbox buttons */\n}\n\n.dijitPlaceHolder {\n\t/* hint text that appears in a textbox until user starts typing */\n\tcolor: #AAAAAA;\n\tfont-style: italic;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twhite-space: nowrap;\n\tpointer-events: none; /* so cut/paste context menu shows up when right clicking */\n}\n\n.dijitTimeTextBox {\n\twidth: 8em;\n}\n\n/* rules for webkit to deal with fuzzy blue focus border */\n.dijitTextBox input:focus {\n\toutline: none;\t/* blue fuzzy line looks wrong on combobox or something w/validation icon showing */\n}\n.dijitTextBoxFocused {\n\toutline: 5px -webkit-focus-ring-color;\n}\n\n.dijitSelect input,\n.dijitTextBox input {\n\tfloat: left; /* needed by IE to remove secret margin */\n}\n.dj_ie6 input.dijitTextBox,\n.dj_ie6 .dijitTextBox input {\n\tfloat: none;\n}\n.dijitInputInner {\n\t/* for when an is embedded inside an inline-block
with a size and border */\n\tborder:0 !important;\n\tbackground-color:transparent !important;\n\twidth:100% !important;\n\t/* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */\n\tpadding-left: 0 !important;\n\tpadding-right: 0 !important;\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n}\n.dj_a11y .dijitTextBox input {\n\tmargin: 0 !important;\n}\n.dijitValidationTextBoxError input.dijitValidationInner,\n.dijitSelect input,\n.dijitTextBox input.dijitArrowButtonInner {\n\t/* used to display arrow icon/validation icon, or in arrow character in high contrast mode.\n\t * The css below is a trick to hide the character in non-high-contrast mode\n\t */\n\ttext-indent: -2em !important;\n\tdirection: ltr !important;\n\ttext-align: left !important;\n\theight: auto !important;\n}\n.dj_ie .dijitSelect input,\n.dj_ie .dijitTextBox input,\n.dj_ie input.dijitTextBox {\n\toverflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */\n\tline-height: normal; /* strict mode */\n}\n.dijitSelect .dijitSelectLabel span {\n\tline-height: 100%;\n}\n.dj_ie .dijitSelect .dijitSelectLabel {\n\tline-height: normal;\n}\n.dj_ie6 .dijitSelect .dijitSelectLabel,\n.dj_ie7 .dijitSelect .dijitSelectLabel,\n.dj_ie8 .dijitSelect .dijitSelectLabel,\n.dj_iequirks .dijitSelect .dijitSelectLabel,\n.dijitSelect td,\n.dj_ie6 .dijitSelect input,\n.dj_iequirks .dijitSelect input,\n.dj_ie6 .dijitSelect .dijitValidationContainer,\n.dj_ie6 .dijitTextBox input,\n.dj_ie6 input.dijitTextBox,\n.dj_iequirks .dijitTextBox input.dijitValidationInner,\n.dj_iequirks .dijitTextBox input.dijitArrowButtonInner,\n.dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner,\n.dj_iequirks .dijitTextBox input.dijitInputInner,\n.dj_iequirks input.dijitTextBox {\n\tline-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */\n}\n.dj_a11y input.dijitValidationInner,\n.dj_a11y input.dijitArrowButtonInner {\n\t/* (in high contrast mode) revert rules from above so character displays */\n\ttext-indent: 0 !important;\n\twidth: 1em !important;\n\tcolor: black !important;\n}\n.dijitValidationTextBoxError .dijitValidationContainer {\n\tdisplay: inline;\n\tcursor: default;\n}\n\n/* ComboBox & Spinner */\n\n.dijitSpinner .dijitSpinnerButtonContainer,\n.dijitComboBox .dijitArrowButtonContainer {\n\t/* dividing line between input area and up/down button(s) for ComboBox and Spinner */\n\tborder-width: 0 0 0 1px !important; /* !important needed due to wayward \".theme .dijitButtonNode\" rules */\n}\n.dj_a11y .dijitSelect .dijitArrowButtonContainer,\n.dijitToolbar .dijitComboBox .dijitArrowButtonContainer {\n\t/* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */\n\tborder-width: 0 !important;\n}\n\n.dijitComboBoxMenu {\n\t/* Drop down menu is implemented as
  • ... but we don't want circles before each item */\n\tlist-style-type: none;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {\n\t/* dividing line between input area and up/down button(s) for ComboBox and Spinner */\n\tborder-width: 0;\n}\n.dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode {\n\tclear: both; /* IE workaround */\n}\n\n.dj_ie .dijitToolbar .dijitComboBox {\n\t/* make combobox buttons align properly with other buttons in a toolbar */\n\tvertical-align: middle;\n}\n\n/* Spinner */\n\n.dijitTextBox .dijitSpinnerButtonContainer {\n\twidth: 1em;\n\tposition: relative !important;\n\toverflow: hidden;\n}\n.dijitSpinner .dijitSpinnerButtonInner {\n\twidth:1em;\n\tvisibility:hidden !important; /* just a sizing element */\n\toverflow-x:hidden;\n}\n.dijitComboBox .dijitButtonNode,\n.dijitSpinnerButtonContainer .dijitButtonNode {\n\tborder-width: 0;\n}\n.dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode {\n\tborder-width: 0px !important;\n\tborder-style: solid !important;\n}\n.dj_a11y .dijitTextBox .dijitSpinnerButtonContainer,\n.dj_a11y .dijitSpinner .dijitArrowButtonInner,\n.dj_a11y .dijitSpinnerButtonContainer input {\n\twidth: 1em !important;\n}\n.dj_a11y .dijitSpinner .dijitArrowButtonInner {\n\tmargin: 0 auto !important; /* should auto-center */\n}\n.dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tpadding-left: 0.3em !important;\n\tpadding-right: 0.3em !important;\n\tmargin-left: 0.3em !important;\n\tmargin-right: 0.3em !important;\n\twidth: 1.4em !important;\n}\n.dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tpadding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */\n\tpadding-right: 0 !important;\n\twidth: 1em !important;\n}\n.dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tmargin-left: 0.1em !important;\n\tmargin-right: 0.1em !important;\n\twidth: 1em !important;\n}\n.dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n\twidth: 2em !important;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\t/* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings\n\t * for dijit.form.Button\n\t */\n\tpadding: 0;\n\tposition: absolute !important;\n\tright: 0;\n\tfloat: none;\n\theight: 50%;\n\twidth: 100%;\n\tbottom: auto;\n\tleft: 0;\n\tright: auto;\n}\n.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\twidth: auto;\n}\n.dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton {\n\toverflow: visible !important;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton {\n\ttop: 50%;\n\tborder-top-width: 1px !important;\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {\n\ttop: 0;\n}\n.dijitSpinner .dijitArrowButtonInner {\n\tmargin: auto;\n\toverflow-x: hidden;\n\theight: 100% !important;\n}\n.dj_iequirks .dijitSpinner .dijitArrowButtonInner {\n\theight: auto !important;\n}\n.dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\t-moz-transform: scale(0.5);\n\t-moz-transform-origin: center top;\n\t-webkit-transform: scale(0.5);\n\t-webkit-transform-origin: center top;\n\t-o-transform: scale(0.5);\n\t-o-transform-origin: center top;\n\ttransform: scale(0.5);\n\ttransform-origin: left top;\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tpadding-left: 0 !important;\n\tpadding-right: 0 !important;\n\twidth: 100%;\n\tvisibility: hidden;\n}\n.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tzoom: 50%; /* emulate transform: scale(0.5) */\n}\n.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner {\n\toverflow: hidden;\n}\n\n.dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\twidth: 100%;\n}\n.dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton {\n\twidth: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */\n}\n.dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField {\n\tvertical-align:top;\n\tvisibility: visible;\n}\n.dj_a11y .dijitSpinnerButtonContainer {\n\twidth: 1em;\n}\n\n/****\n\t\tdijit.form.CheckBox\n \t &\n \t\tdijit.form.RadioButton\n ****/\n\n.dijitCheckBox,\n.dijitRadio,\n.dijitCheckBoxInput {\n\tpadding: 0;\n\tborder: 0;\n\twidth: 16px;\n\theight: 16px;\n\tbackground-position:center center;\n\tbackground-repeat:no-repeat;\n\toverflow: hidden;\n}\n\n.dijitCheckBox input,\n.dijitRadio input {\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: block;\n}\n\n.dijitCheckBoxInput {\n\t/* place the actual input on top, but invisible */\n\topacity: 0;\n}\n\n.dj_ie .dijitCheckBoxInput {\n\tfilter: alpha(opacity=0);\n}\n\n.dj_a11y .dijitCheckBox,\n.dj_a11y .dijitRadio {\n\t/* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */\n\twidth: auto !important;\n\theight: auto !important;\n}\n.dj_a11y .dijitCheckBoxInput {\n\topacity: 1;\n\tfilter: none;\n\twidth: auto;\n\theight: auto;\n}\n\n.dj_a11y .dijitFocusedLabel {\n\t/* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/\n\tborder: 1px dotted;\n\toutline: 0px !important;\n}\n\n/****\n\t\tdijit.ProgressBar\n ****/\n\n.dijitProgressBar {\n z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */\n}\n.dijitProgressBarEmpty {\n\t/* outer container and background of the bar that's not finished yet*/\n\tposition:relative;overflow:hidden;\n\tborder:1px solid black; \t/* a11y: border necessary for high-contrast mode */\n\tz-index:0;\t\t\t/* establish a stacking context for this progress bar */\n}\n\n.dijitProgressBarFull {\n\t/* outer container for background of bar that is finished */\n\tposition:absolute;\n\toverflow:hidden;\n\tz-index:-1;\n\ttop:0;\n\twidth:100%;\n}\n.dj_ie6 .dijitProgressBarFull {\n\theight:1.6em;\n}\n\n.dijitProgressBarTile {\n\t/* inner container for finished portion */\n\tposition:absolute;\n\toverflow:hidden;\n\ttop:0;\n\tleft:0;\n\tbottom:0;\n\tright:0;\n\tmargin:0;\n\tpadding:0;\n\twidth: 100%; /* needed for IE/quirks */\n\theight:auto;\n\tbackground-color:#aaa;\n\tbackground-attachment: fixed;\n}\n\n.dj_a11y .dijitProgressBarTile {\n\t/* a11y: The border provides visibility in high-contrast mode */\n\tborder-width:2px;\n\tborder-style:solid;\n\tbackground-color:transparent !important;\n}\n\n.dj_ie6 .dijitProgressBarTile {\n\t/* width:auto works in IE6 with position:static but not position:absolute */\n\tposition:static;\n\t/* height:auto or 100% does not work in IE6 */\n\theight:1.6em;\n}\n\n.dijitProgressBarIndeterminate .dijitProgressBarTile {\n\t/* animated gif for 'indeterminate' mode */\n}\n\n.dijitProgressBarIndeterminateHighContrastImage {\n\tdisplay:none;\n}\n\n.dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage {\n\tdisplay:block;\n\tposition:absolute;\n\ttop:0;\n\tbottom:0;\n\tmargin:0;\n\tpadding:0;\n\twidth:100%;\n\theight:auto;\n}\n\n.dijitProgressBarLabel {\n\tdisplay:block;\n\tposition:static;\n\twidth:100%;\n\ttext-align:center;\n\tbackground-color:transparent !important;\n}\n\n/****\n\t\tdijit.Tooltip\n ****/\n\n.dijitTooltip {\n\tposition: absolute;\n\tz-index: 2000;\n\tdisplay: block;\n\t/* make visible but off screen */\n\tleft: 0;\n\ttop: -10000px;\n\toverflow: visible;\n}\n\n.dijitTooltipContainer {\n\tborder: solid black 2px;\n\tbackground: #b8b5b5;\n\tcolor: black;\n\tfont-size: small;\n}\n\n.dijitTooltipFocusNode {\n\tpadding: 2px 2px 2px 2px;\n}\n\n.dijitTooltipConnector {\n\tposition: absolute;\n}\n.dj_a11y .dijitTooltipConnector {\n\tdisplay: none;\t/* won't show b/c it's background-image; hide to avoid border gap */\n}\n\n.dijitTooltipData {\n\tdisplay:none;\n}\n\n/* Layout widgets. This is essential CSS to make layout work (it isn't \"styling\" CSS)\n make sure that the position:absolute in dijitAlign* overrides other classes */\n\n.dijitLayoutContainer {\n\tposition: relative;\n\tdisplay: block;\n\toverflow: hidden;\n}\n\n.dijitAlignTop,\n.dijitAlignBottom,\n.dijitAlignLeft,\n.dijitAlignRight {\n\tposition: absolute;\n\toverflow: hidden;\n}\n\nbody .dijitAlignClient { position: absolute; }\n\n/*\n * BorderContainer\n *\n * .dijitBorderContainer is a stylized layout where panes have border and margin.\n * .dijitBorderContainerNoGutter is a raw layout.\n */\n.dijitBorderContainer, .dijitBorderContainerNoGutter {\n\tposition:relative;\n\toverflow: hidden;\n z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */\n}\n\n.dijitBorderContainerPane,\n.dijitBorderContainerNoGutterPane {\n\tposition: absolute !important;\t/* !important to override position:relative in dijitTabContainer etc. */\n\tz-index: 2;\t\t/* above the splitters so that off-by-one browser errors don't cover up border of pane */\n}\n\n.dijitBorderContainer > .dijitTextArea {\n\t/* On Safari, for SimpleTextArea inside a BorderContainer,\n\t\tdon't want to display the grip to resize */\n\tresize: none;\n}\n\n.dijitGutter {\n\t/* gutter is just a place holder for empty space between panes in BorderContainer */\n\tposition: absolute;\n\tfont-size: 1px;\t\t/* needed by IE6 even though div is empty, otherwise goes to 15px */\n}\n\n/* SplitContainer\n\n\t'V' == container that splits vertically (up/down)\n\t'H' = horizontal (left/right)\n*/\n\n.dijitSplitter {\n\tposition: absolute;\n\toverflow: hidden;\n\tz-index: 10;\t\t/* above the panes so that splitter focus is visible on FF, see #7583*/\n\tbackground-color: #fff;\n\tborder-color: gray;\n\tborder-style: solid;\n\tborder-width: 0;\n}\n.dj_ie .dijitSplitter {\n\tz-index: 1;\t/* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */\n}\n\n.dijitSplitterActive {\n\tz-index: 11 !important;\n}\n\n.dijitSplitterCover {\n\tposition:absolute;\n\tz-index:-1;\n\ttop:0;\n\tleft:0;\n\twidth:100%;\n\theight:100%;\n}\n\n.dijitSplitterCoverActive {\n\tz-index:3 !important;\n}\n\n/* #6945: stop mouse events */\n.dj_ie .dijitSplitterCover {\n\tbackground: white;\n\topacity: 0;\n}\n.dj_ie6 .dijitSplitterCover,\n.dj_ie7 .dijitSplitterCover,\n.dj_ie8 .dijitSplitterCover {\n\tfilter: alpha(opacity=0);\n}\n\n.dijitSplitterH {\n\theight: 7px;\n\tborder-top:1px;\n\tborder-bottom:1px;\n\tcursor: row-resize;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitSplitterV {\n\twidth: 7px;\n\tborder-left:1px;\n\tborder-right:1px;\n\tcursor: col-resize;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitSplitContainer {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: block;\n}\n\n.dijitSplitPane {\n\tposition: absolute;\n}\n\n.dijitSplitContainerSizerH,\n.dijitSplitContainerSizerV {\n\tposition:absolute;\n\tfont-size: 1px;\n\tbackground-color: ThreeDFace;\n\tborder: 1px solid;\n\tborder-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight;\n\tmargin: 0;\n}\n\n.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb {\n\toverflow:hidden;\n\tposition:absolute;\n\ttop:49%;\n}\n\n.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb {\n\tposition:absolute;\n\tleft:49%;\n}\n\n.dijitSplitterShadow,\n.dijitSplitContainerVirtualSizerH,\n.dijitSplitContainerVirtualSizerV {\n\tfont-size: 1px;\n\tbackground-color: ThreeDShadow;\n\t-moz-opacity: 0.5;\n\topacity: 0.5;\n\tfilter: Alpha(Opacity=50);\n\tmargin: 0;\n}\n\n.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH {\n\tcursor: col-resize;\n}\n\n.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV {\n\tcursor: row-resize;\n}\n\n.dj_a11y .dijitSplitterH {\n\tborder-top:1px solid #d3d3d3 !important;\n\tborder-bottom:1px solid #d3d3d3 !important;\n}\n.dj_a11y .dijitSplitterV {\n\tborder-left:1px solid #d3d3d3 !important;\n\tborder-right:1px solid #d3d3d3 !important;\n}\n\n/* ContentPane */\n\n.dijitContentPane {\n\tdisplay: block;\n\toverflow: auto;\t/* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */\n\t-webkit-overflow-scrolling: touch;\n}\n\n.dijitContentPaneSingleChild {\n\t/*\n\t * if the ContentPane holds a single layout widget child which is being sized to match the content pane,\n\t * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449\n\t */\n\toverflow: hidden;\n}\n\n.dijitContentPaneLoading .dijitIconLoading,\n.dijitContentPaneError .dijitIconError {\n\tmargin-right: 9px;\n}\n\n/* TitlePane and Fieldset */\n\n.dijitTitlePane {\n\tdisplay: block;\n\toverflow: hidden;\n}\n.dijitFieldset {\n\tborder: 1px solid gray;\n}\n.dijitTitlePaneTitle, .dijitFieldsetTitle {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitTitlePaneTitleFixedOpen, .dijitTitlePaneTitleFixedClosed,\n.dijitFieldsetTitleFixedOpen, .dijitFieldsetTitleFixedClosed {\n\t/* TitlePane or Fieldset that cannot be toggled */\n\tcursor: default;\n}\n.dijitTitlePaneTitle * {\n\tvertical-align: middle;\n}\n.dijitTitlePane .dijitArrowNodeInner, .dijitFieldset .dijitArrowNodeInner {\n\t/* normally, hide arrow text in favor of icon */\n\tdisplay: none;\n}\n.dj_a11y .dijitTitlePane .dijitArrowNodeInner, .dj_a11y .dijitFieldset .dijitArrowNodeInner {\n\t/* ... except in a11y mode, then show text arrow */\n\tdisplay: inline;\n\tfont-family: monospace;\t\t/* because - and + are different widths */\n}\n.dj_a11y .dijitTitlePane .dijitArrowNode, .dj_a11y .dijitFieldset .dijitArrowNode {\n\t/* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */\n\tdisplay: none;\n}\n.dijitTitlePaneTitleFixedOpen .dijitArrowNode, .dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner,\n.dijitTitlePaneTitleFixedClosed .dijitArrowNode, .dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner,\n.dijitFieldsetTitleFixedOpen .dijitArrowNode, .dijitFieldsetTitleFixedOpen .dijitArrowNodeInner,\n.dijitFieldsetTitleFixedClosed .dijitArrowNode, .dijitFieldsetTitleFixedClosed .dijitArrowNodeInner {\n\t/* don't show the open close icon or text arrow; it makes the user think the pane is closable */\n\tdisplay: none !important;\t/* !important to override above a11y rules to show text arrow */\n}\n\n.dj_ie6 .dijitTitlePaneContentOuter,\n.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle {\n\t/* force hasLayout to ensure borders etc, show up */\n\tzoom: 1;\n}\n\n/* Color Palette\n * Sizes designed so that table cell positions match icons in underlying image,\n * which appear at 20x20 intervals.\n */\n\n.dijitColorPalette {\n\tborder: 1px solid #999;\n\tbackground: #fff;\n\tposition: relative;\n}\n\n.dijitColorPalette .dijitPaletteTable {\n\t/* Table that holds the palette cells, and overlays image file with color swatches.\n\t * padding/margin to align table with image.\n\t */\n\tpadding: 2px 3px 3px 3px;\n\tposition: relative;\n\toverflow: hidden;\n\toutline: 0;\n\tborder-collapse: separate;\n}\n.dj_ie6 .dijitColorPalette .dijitPaletteTable,\n.dj_ie7 .dijitColorPalette .dijitPaletteTable,\n.dj_iequirks .dijitColorPalette .dijitPaletteTable {\n\t/* using padding above so that focus border isn't cutoff on moz/webkit,\n\t * but using margin on IE because padding doesn't seem to work\n\t */\n\tpadding: 0;\n\tmargin: 2px 3px 3px 3px;\n}\n\n.dijitColorPalette .dijitPaletteCell {\n\t/* in the */\n\tfont-size: 1px;\n\tvertical-align: middle;\n\ttext-align: center;\n\tbackground: none;\n}\n.dijitColorPalette .dijitPaletteImg {\n\t/* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */\n\tpadding: 1px;\t\t/* white area between gray border and color swatch */\n\tborder: 1px solid #999;\n\tmargin: 2px 1px;\n\tcursor: default;\n\tfont-size: 1px;\t\t/* prevent from getting bigger just to hold a character */\n}\n.dj_gecko .dijitColorPalette .dijitPaletteImg {\n\tpadding-bottom: 0;\t/* workaround rendering glitch on FF, it adds an extra pixel at the bottom */\n}\n.dijitColorPalette .dijitColorPaletteSwatch {\n\t/* the actual part where the color is */\n\twidth: 14px;\n\theight: 12px;\n}\n.dijitPaletteTable td {\n\t\tpadding: 0;\n}\n.dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg {\n\t/* hovered color swatch */\n\tborder: 1px solid #000;\n}\n\n.dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg,\n.dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg {\n\tborder: 2px solid #000;\n\tmargin: 1px 0;\t/* reduce margin to compensate for increased border */\n}\n\n\n.dj_a11y .dijitColorPalette .dijitPaletteTable,\n.dj_a11y .dijitColorPalette .dijitPaletteTable * {\n\t/* table cells are to catch events, but the swatches are in the PaletteImg behind the table */\n\tbackground-color: transparent !important;\n}\n\n/* AccordionContainer */\n\n.dijitAccordionContainer {\n\tborder:1px solid #b7b7b7;\n\tborder-top:0 !important;\n}\n.dijitAccordionTitle {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitAccordionTitleSelected {\n\tcursor: default;\n}\n\n/* images off, high-contrast mode styles */\n.dijitAccordionTitle .arrowTextUp,\n.dijitAccordionTitle .arrowTextDown {\n\tdisplay: none;\n\tfont-size: 0.65em;\n\tfont-weight: normal !important;\n}\n\n.dj_a11y .dijitAccordionTitle .arrowTextUp,\n.dj_a11y .dijitAccordionTitleSelected .arrowTextDown {\n\tdisplay: inline;\n}\n\n.dj_a11y .dijitAccordionTitleSelected .arrowTextUp {\n\tdisplay: none;\n}\n\n.dijitAccordionChildWrapper {\n\t/* this is the node whose height is adjusted */\n\toverflow: hidden;\n}\n\n/* Calendar */\n\n.dijitCalendarContainer table {\n\twidth: auto;\t/* in case user has specified a width for the TABLE nodes, see #10553 */\n\tclear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */\n}\n.dijitCalendarContainer th, .dijitCalendarContainer td {\n\tpadding: 0;\n\tvertical-align: middle;\n}\n\n.dijitCalendarMonthContainer {\n\ttext-align: center;\n}\n.dijitCalendarDecrementArrow {\n\tfloat: left;\n}\n.dijitCalendarIncrementArrow {\n\tfloat: right;\n}\n\n.dijitCalendarYearLabel {\n white-space: nowrap; /* make sure previous, current, and next year appear on same row */\n}\n\n.dijitCalendarNextYear {\n\tmargin:0 0 0 0.55em;\n}\n\n.dijitCalendarPreviousYear {\n\tmargin:0 0.55em 0 0;\n}\n\n.dijitCalendarIncrementControl {\n\tvertical-align: middle;\n}\n\n.dijitCalendarIncrementControl,\n.dijitCalendarDateTemplate,\n.dijitCalendarMonthLabel,\n.dijitCalendarPreviousYear,\n.dijitCalendarNextYear {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitCalendarDisabledDate {\n\tcolor: gray;\n\ttext-decoration: line-through;\n\tcursor: default;\n}\n\n.dijitSpacer {\n\t/* don't display it, but make it affect the width */\n \tposition: relative;\n \theight: 1px;\n \toverflow: hidden;\n \tvisibility: hidden;\n}\n\n/* Styling for month drop down list */\n\n.dijitCalendarMonthMenu .dijitCalendarMonthLabel {\n\ttext-align:center;\n}\n\n/* Menu */\n\n.dijitMenu {\n\tborder:1px solid black;\n\tbackground-color:white;\n}\n.dijitMenuTable {\n\tborder-collapse:collapse;\n\tborder-width:0;\n\tbackground-color:white;\n}\n\n/* workaround for webkit bug #8427, remove this when it is fixed upstream */\n.dj_webkit .dijitMenuTable td[colspan=\"2\"]{\n\tborder-right:hidden;\n}\n\n.dijitMenuItem {\n\ttext-align: left;\n\twhite-space: nowrap;\n\tpadding:.1em .2em;\n\tcursor:pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n/*\nNo need to show a focus border since it's obvious from the shading, and there's a .dj_a11y .dijitMenuItemSelected\nrule below that handles the high contrast case when there's no shading.\nHiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779.\n*/\n.dijitMenuItem:focus {\n\toutline: none\n}\n\n.dijitMenuPassive .dijitMenuItemHover,\n.dijitMenuItemSelected {\n\t/*\n\t * dijitMenuItemHover refers to actual mouse over\n\t * dijitMenuItemSelected is used after a menu has been \"activated\" by\n\t * clicking it, tabbing into it, or being opened from a parent menu,\n\t * and denotes that the menu item has focus or that focus is on a child\n\t * menu\n\t */\n\tbackground-color:black;\n\tcolor:white;\n}\n\n.dijitMenuItemIcon, .dijitMenuExpand {\n\tbackground-repeat: no-repeat;\n}\n\n.dijitMenuItemDisabled * {\n\t/* for a disabled menu item, just set it to mostly transparent */\n\topacity:0.5;\n\tcursor:default;\n}\n.dj_ie .dj_a11y .dijitMenuItemDisabled,\n.dj_ie .dj_a11y .dijitMenuItemDisabled *,\n.dj_ie .dijitMenuItemDisabled * {\n\tcolor: gray;\n\tfilter: alpha(opacity=35);\n}\n\n.dijitMenuItemLabel {\n\tvertical-align: middle;\n}\n\n.dj_a11y .dijitMenuItemSelected {\n\tborder: 1px dotted black !important;\t/* for 2.0 use outline instead, to prevent jitter */\n}\n\n.dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel {\n\tborder-width: 1px;\n\tborder-style: solid;\n}\n.dj_ie8 .dj_a11y .dijitMenuItemLabel {\n\tposition:static;\n}\n\n.dijitMenuExpandA11y {\n\tdisplay: none;\n}\n.dj_a11y .dijitMenuExpandA11y {\n\tdisplay: inline;\n}\n\n.dijitMenuSeparator td {\n\tborder: 0;\n\tpadding: 0;\n}\n\n/* separator can be two pixels -- set border of either one to 0 to have only one */\n.dijitMenuSeparatorTop {\n\theight: 50%;\n\tmargin: 0;\n\tmargin-top:3px;\n\tfont-size: 1px;\n}\n\n.dijitMenuSeparatorBottom {\n\theight: 50%;\n\tmargin: 0;\n\tmargin-bottom:3px;\n\tfont-size: 1px;\n}\n\n/* CheckedMenuItem and RadioMenuItem */\n.dijitMenuItemIconChar {\n\tdisplay: none;\t\t/* don't display except in high contrast mode */\n\tvisibility: hidden;\t/* for high contrast mode when menuitem is unchecked: leave space for when it is checked */\n}\n.dj_a11y .dijitMenuItemIconChar {\n\tdisplay: inline;\t/* display character in high contrast mode, since icon doesn't show */\n}\n.dijitCheckedMenuItemChecked .dijitMenuItemIconChar,\n.dijitRadioMenuItemChecked .dijitMenuItemIconChar {\n\tvisibility: visible; /* menuitem is checked */\n}\n.dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem {\n\t/* so bottom border of MenuBar appears on IE7 in high-contrast mode */\n\tmargin: 0;\n}\n\n/* StackContainer */\n\n.dijitStackController .dijitToggleButtonChecked * {\n\tcursor: default;\t/* because pressing it has no effect */\n}\n\n/***\nTabContainer\n\nMain class hierarchy:\n\n.dijitTabContainer - the whole TabContainer\n .dijitTabController / .dijitTabListContainer-top - wrapper for tab buttons, scroll buttons\n\t .dijitTabListWrapper / .dijitTabContainerTopStrip - outer wrapper for tab buttons (normal width)\n\t\t.nowrapTabStrip / .dijitTabContainerTop-tabs - inner wrapper for tab buttons (50K width)\n .dijitTabPaneWrapper - wrapper for content panes, has all borders except the one between content and tabs\n***/\n\n.dijitTabContainer {\n z-index: 0; /* so z-index settings below have no effect outside of the TabContainer */\n overflow: visible; /* prevent off-by-one-pixel errors from hiding bottom border (opposite tab labels) */\n}\n.dj_ie6 .dijitTabContainer {\n /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */\n overflow: hidden;\n\n}\n.dijitTabContainerNoLayout {\n\twidth: 100%;\t/* otherwise ScrollingTabController goes to 50K pixels wide */\n}\n\n.dijitTabContainerBottom-tabs,\n.dijitTabContainerTop-tabs,\n.dijitTabContainerLeft-tabs,\n.dijitTabContainerRight-tabs {\n z-index: 1;\n\toverflow: visible !important; /* so tabs can cover up border adjacent to container */\n}\n\n.dijitTabController {\n z-index: 1;\n}\n.dijitTabContainerBottom-container,\n.dijitTabContainerTop-container,\n.dijitTabContainerLeft-container,\n.dijitTabContainerRight-container {\n\tz-index:0;\n\toverflow: hidden;\n\tborder: 1px solid black;\n}\n.nowrapTabStrip {\n\twidth: 50000px;\n\tdisplay: block;\n\tposition: relative;\n text-align: left; /* just in case ancestor has non-standard setting */\n z-index: 1;\n}\n.dijitTabListWrapper {\n\toverflow: hidden;\n z-index: 1;\n}\n\n.dj_a11y .tabStripButton img {\n\t/* hide the icons (or rather the empty space where they normally appear) because text will appear instead */\n\tdisplay: none;\n}\n\n.dijitTabContainerTop-tabs {\n\tborder-bottom: 1px solid black;\n}\n.dijitTabContainerTop-container {\n\tborder-top: 0;\n}\n\n.dijitTabContainerLeft-tabs {\n\tborder-right: 1px solid black;\n\tfloat: left; /* needed for IE7 RTL mode */\n}\n.dijitTabContainerLeft-container {\n\tborder-left: 0;\n}\n\n.dijitTabContainerBottom-tabs {\n\tborder-top: 1px solid black;\n}\n.dijitTabContainerBottom-container {\n\tborder-bottom: 0;\n}\n\n.dijitTabContainerRight-tabs {\n\tborder-left: 1px solid black;\n\tfloat: left; /* needed for IE7 RTL mode */\n}\n.dijitTabContainerRight-container {\n\tborder-right: 0;\n}\n\ndiv.dijitTabDisabled, .dj_ie div.dijitTabDisabled {\n\tcursor: auto;\n}\n\n.dijitTab {\n\tposition:relative;\n\tcursor:pointer;\n\t-webkit-tap-highlight-color: transparent;\n\twhite-space:nowrap;\n\tz-index:3;\n}\n.dijitTab * {\n\t/* make tab icons and close icon line up w/text */\n\tvertical-align: middle;\n}\n.dijitTabChecked {\n\tcursor: default;\t/* because clicking will have no effect */\n}\n\n.dijitTabContainerTop-tabs .dijitTab {\n\ttop: 1px;\t/* to overlap border on .dijitTabContainerTop-tabs */\n}\n.dijitTabContainerBottom-tabs .dijitTab {\n\ttop: -1px;\t/* to overlap border on .dijitTabContainerBottom-tabs */\n}\n.dijitTabContainerLeft-tabs .dijitTab {\n\tleft: 1px;\t/* to overlap border on .dijitTabContainerLeft-tabs */\n}\n.dijitTabContainerRight-tabs .dijitTab {\n\tleft: -1px;\t/* to overlap border on .dijitTabContainerRight-tabs */\n}\n\n\n.dijitTabContainerTop-tabs .dijitTab,\n.dijitTabContainerBottom-tabs .dijitTab {\n\t/* Inline-block */\n\tdisplay:inline-block;\t\t\t/* webkit and FF3 */\n}\n\n.tabStripButton {\n\tz-index: 12;\n}\n\n.dijitTabButtonDisabled .tabStripButton {\n\tdisplay: none;\n}\n\n\n.dijitTabCloseButton {\n\tmargin-left: 1em;\n}\n\n.dijitTabCloseText {\n\tdisplay:none;\n}\n\n.dijitTab .tabLabel {\n\t/* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font.\n\t * assumes <=15px height for close button icon.\n\t */\n\tmin-height: 15px;\n\tdisplay: inline-block;\n}\n.dijitNoIcon {\n\t/* applied to / node when there is no icon specified */\n\tdisplay: none;\n}\n.dj_ie6 .dijitTab .dijitNoIcon {\n\t/* because min-height (on .tabLabel, above) doesn't work on IE6 */\n\tdisplay: inline;\n\theight: 15px;\n\twidth: 1px;\n}\n\n/* images off, high-contrast mode styles */\n\n.dj_a11y .dijitTabCloseButton {\n\tbackground-image: none !important;\n\twidth: auto !important;\n\theight: auto !important;\n}\n\n.dj_a11y .dijitTabCloseText {\n\tdisplay: inline;\n}\n\n.dijitTabPane,\n.dijitStackContainer-child,\n.dijitAccordionContainer-child {\n\t/* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders\n\t * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself.\n\t */\n border: none !important;\n}\n\n/* InlineEditBox */\n.dijitInlineEditBoxDisplayMode {\n\tborder: 1px solid transparent;\t/* so keyline (border) on hover can appear without screen jump */\n\tcursor: text;\n}\n\n.dj_a11y .dijitInlineEditBoxDisplayMode,\n.dj_ie6 .dijitInlineEditBoxDisplayMode {\n\t/* except that IE6 doesn't support transparent borders, nor does high contrast mode */\n\tborder: none;\n}\n\n.dijitInlineEditBoxDisplayModeHover,\n.dj_a11y .dijitInlineEditBoxDisplayModeHover,\n.dj_ie6 .dijitInlineEditBoxDisplayModeHover {\n\t/* An InlineEditBox in view mode (click this to edit the text) */\n\tbackground-color: #e2ebf2;\n\tborder: solid 1px black;\n}\n\n.dijitInlineEditBoxDisplayModeDisabled {\n\tcursor: default;\n}\n\n/* Tree */\n.dijitTree {\n\toverflow: auto;\t/* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitTreeContainer {\n\tfloat: left;\t/* for correct highlighting during horizontal scroll, see #16132 */\n}\n\n.dijitTreeIndent {\n\t/* amount to indent each tree node (relative to parent node) */\n\twidth: 19px;\n}\n\n.dijitTreeRow, .dijitTreeContent {\n\twhite-space: nowrap;\n}\n\n.dj_ie .dijitTreeLabel:focus {\n\t/* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */\n\toutline: 1px dotted black;\n}\n\n.dijitTreeRow img {\n\t/* make the expando and folder icons line up with the label */\n\tvertical-align: middle;\n}\n\n.dijitTreeContent {\n cursor: default;\n}\n\n.dijitExpandoText {\n\tdisplay: none;\n}\n\n.dj_a11y .dijitExpandoText {\n\tdisplay: inline;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n\tfont-family: monospace;\n\tborder-style: solid;\n\tborder-width: thin;\n\tcursor: pointer;\n}\n\n.dijitTreeLabel {\n\tmargin: 0 4px;\n}\n\n/* Dialog */\n\n.dijitDialog {\n\tposition: absolute;\n\tz-index: 999;\n\toverflow: hidden;\t/* override overflow: auto; from ContentPane to make dragging smoother */\n}\n\n.dijitDialogTitleBar {\n\tcursor: move;\n}\n.dijitDialogFixed .dijitDialogTitleBar {\n\tcursor:default;\n}\n.dijitDialogCloseIcon {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitDialogPaneContent {\n\t-webkit-overflow-scrolling: touch;\n}\n.dijitDialogUnderlayWrapper {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tz-index: 998;\n\tdisplay: none;\n\tbackground: transparent !important;\n}\n\n.dijitDialogUnderlay {\n\tbackground: #eee;\n\topacity: 0.5;\n}\n\n.dj_ie .dijitDialogUnderlay {\n\tfilter: alpha(opacity=50);\n}\n\n/* images off, high-contrast mode styles */\n.dj_a11y .dijitSpinnerButtonContainer,\n.dj_a11y .dijitDialog {\n\topacity: 1 !important;\n\tbackground-color: white !important;\n}\n\n.dijitDialog .closeText {\n\tdisplay:none;\n\t/* for the onhover border in high contrast on IE: */\n\tposition:absolute;\n}\n\n.dj_a11y .dijitDialog .closeText {\n\tdisplay:inline;\n}\n\n/* Slider */\n\n.dijitSliderMoveable {\n\tz-index:99;\n\tposition:absolute !important;\n\tdisplay:block;\n\tvertical-align:middle;\n}\n\n.dijitSliderMoveableH {\n\tright:0;\n}\n.dijitSliderMoveableV {\n\tright:50%;\n}\n\n.dj_a11y div.dijitSliderImageHandle,\n.dijitSliderImageHandle {\n\tmargin:0;\n\tpadding:0;\n\tposition:relative !important;\n\tborder:8px solid gray;\n\twidth:0;\n\theight:0;\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dj_iequirks .dj_a11y .dijitSliderImageHandle {\n\tfont-size: 0;\n}\n.dj_ie7 .dijitSliderImageHandle {\n\toverflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */\n}\n.dj_ie7 .dj_a11y .dijitSliderImageHandle {\n\toverflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */\n}\n.dj_a11y .dijitSliderFocused .dijitSliderImageHandle {\n\tborder:4px solid #000;\n\theight:8px;\n\twidth:8px;\n}\n\n.dijitSliderImageHandleV {\n\ttop:-8px;\n\tright: -50%;\n}\n\n.dijitSliderImageHandleH {\n\tleft:50%;\n\ttop:-5px;\n\tvertical-align:top;\n}\n\n.dijitSliderBar {\n\tborder-style:solid;\n\tborder-color:black;\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitSliderBarContainerV {\n\tposition:relative;\n\theight:100%;\n\tz-index:1;\n}\n\n.dijitSliderBarContainerH {\n\tposition:relative;\n\tz-index:1;\n}\n\n.dijitSliderBarH {\n\theight:4px;\n\tborder-width:1px 0;\n}\n\n.dijitSliderBarV {\n\twidth:4px;\n\tborder-width:0 1px;\n}\n\n.dijitSliderProgressBar {\n\tbackground-color:red;\n\tz-index:1;\n}\n\n.dijitSliderProgressBarV {\n\tposition:static !important;\n\theight:0;\n\tvertical-align:top;\n\ttext-align:left;\n}\n\n.dijitSliderProgressBarH {\n\tposition:absolute !important;\n\twidth:0;\n\tvertical-align:middle;\n\toverflow:visible;\n}\n\n.dijitSliderRemainingBar {\n\toverflow:hidden;\n\tbackground-color:transparent;\n\tz-index:1;\n}\n\n.dijitSliderRemainingBarV {\n\theight:100%;\n\ttext-align:left;\n}\n\n.dijitSliderRemainingBarH {\n\twidth:100% !important;\n}\n\n/* the slider bumper is the space consumed by the slider handle when it hangs over an edge */\n.dijitSliderBumper {\n\toverflow:hidden;\n\tz-index:1;\n}\n\n.dijitSliderBumperV {\n\twidth:4px;\n\theight:8px;\n\tborder-width:0 1px;\n}\n\n.dijitSliderBumperH {\n\twidth:8px;\n\theight:4px;\n\tborder-width:1px 0;\n}\n\n.dijitSliderBottomBumper,\n.dijitSliderLeftBumper {\n\tbackground-color:red;\n}\n\n.dijitSliderTopBumper,\n.dijitSliderRightBumper {\n\tbackground-color:transparent;\n}\n\n.dijitSliderDecoration {\n\ttext-align:center;\n}\n\n.dijitSliderDecorationC,\n.dijitSliderDecorationV {\n\tposition: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */\n}\n\n.dijitSliderDecorationH {\n\twidth: 100%;\n}\n\n.dijitSliderDecorationV {\n\theight: 100%;\n\twhite-space: nowrap;\n}\n\n.dijitSliderButton {\n\tfont-family:monospace;\n\tmargin:0;\n\tpadding:0;\n\tdisplay:block;\n}\n\n.dj_a11y .dijitSliderButtonInner {\n\tvisibility:visible !important;\n}\n\n.dijitSliderButtonContainer {\n\ttext-align:center;\n\theight:0;\t/* ??? */\n}\n.dijitSliderButtonContainer * {\n\tcursor: pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n\n.dijitSlider .dijitButtonNode {\n\tpadding:0;\n\tdisplay:block;\n}\n\n.dijitRuleContainer {\n\tposition:relative;\n\toverflow:visible;\n}\n\n.dijitRuleContainerV {\n\theight:100%;\n\tline-height:0;\n\tfloat:left;\n\ttext-align:left;\n}\n\n.dj_opera .dijitRuleContainerV {\n\tline-height:2%;\n}\n\n.dj_ie .dijitRuleContainerV {\n\tline-height:normal;\n}\n\n.dj_gecko .dijitRuleContainerV {\n\tmargin:0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */\n}\n\n.dijitRuleMark {\n\tposition:absolute;\n\tborder:1px solid black;\n\tline-height:0;\n\theight:100%;\n}\n\n.dijitRuleMarkH {\n\twidth:0;\n\tborder-top-width:0 !important;\n\tborder-bottom-width:0 !important;\n\tborder-left-width:0 !important;\n}\n\n.dijitRuleLabelContainer {\n\tposition:absolute;\n}\n\n.dijitRuleLabelContainerH {\n\ttext-align:center;\n\tdisplay:inline-block;\n}\n\n.dijitRuleLabelH {\n\tposition:relative;\n\tleft:-50%;\n}\n\n.dijitRuleLabelV {\n\t/* so that long labels don't overflow to multiple rows, or overwrite slider itself */\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\toverflow: hidden;\n}\n\n.dijitRuleMarkV {\n\theight:0;\n\tborder-right-width:0 !important;\n\tborder-bottom-width:0 !important;\n\tborder-left-width:0 !important;\n\twidth:100%;\n\tleft:0;\n}\n\n.dj_ie .dijitRuleLabelContainerV {\n\tmargin-top:-.55em;\n}\n\n.dj_a11y .dijitSliderReadOnly,\n.dj_a11y .dijitSliderDisabled {\n\topacity:0.6;\n}\n.dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar,\n.dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar {\n\tfilter: alpha(opacity=40);\n}\n\n/* + and - Slider buttons: override theme settings to display icons */\n.dj_a11y .dijitSlider .dijitSliderButtonContainer div {\n\tfont-family: monospace; /* otherwise hyphen is larger and more vertically centered */\n\tfont-size: 1em;\n\tline-height: 1em;\n\theight: auto;\n\twidth: auto;\n\tmargin: 0 4px;\n}\n\n/* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */\n.dj_a11y .dijitButtonContents .dijitButtonText,\n.dj_a11y .dijitTab .tabLabel {\n\tdisplay: inline !important;\n}\n.dj_a11y .dijitSelect .dijitButtonText {\n\tdisplay: inline-block !important;\n}\n\n/* TextArea, SimpleTextArea */\n.dijitTextArea {\n\twidth:100%;\n\toverflow-y: auto;\t/* w/out this IE's SimpleTextArea goes to overflow: scroll */\n}\n.dijitTextArea[cols] {\n\twidth:auto; /* SimpleTextArea cols */\n}\n.dj_ie .dijitTextAreaCols {\n\twidth:auto;\n}\n\n.dijitExpandingTextArea {\n\t/* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */\n\tresize: none;\n}\n\n\n/* Toolbar\n * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file.\n */\n\n.dijitToolbarSeparator {\n\theight: 18px;\n\twidth: 5px;\n\tpadding: 0 1px;\n\tmargin: 0;\n}\n\n/* Editor */\n.dijitIEFixedToolbar {\n\tposition:absolute;\n\t/* top:0; */\n\ttop: expression(eval((document.documentElement||document.body).scrollTop));\n}\n\n.dijitEditor {\n\tdisplay: block;\t/* prevents glitch on FF with InlineEditBox, see #8404 */\n}\n\n.dijitEditorDisabled,\n.dijitEditorReadOnly {\n\tcolor: gray;\n}\n\n/* TimePicker */\n\n.dijitTimePicker {\n\tbackground-color: white;\n}\n.dijitTimePickerItem {\n\tcursor:pointer;\n\t-webkit-tap-highlight-color: transparent;\n}\n.dijitTimePickerItemHover {\n\tbackground-color:gray;\n\tcolor:white;\n}\n.dijitTimePickerItemSelected {\n\tfont-weight:bold;\n\tcolor:#333;\n\tbackground-color:#b7cdee;\n}\n.dijitTimePickerItemDisabled {\n\tcolor:gray;\n\ttext-decoration:line-through;\n}\n\n.dijitTimePickerItemInner {\n\ttext-align:center;\n\tborder:0;\n\tpadding:2px 8px 2px 8px;\n}\n\n.dijitTimePickerTick,\n.dijitTimePickerMarker {\n\tborder-bottom:1px solid gray;\n}\n\n.dijitTimePicker .dijitDownArrowButton {\n\tborder-top: none !important;\n}\n\n.dijitTimePickerTick {\n\tcolor:#CCC;\n}\n\n.dijitTimePickerMarker {\n\tcolor:black;\n\tbackground-color:#CCC;\n}\n\n.dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner {\n\tborder: solid 4px black;\n}\n.dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner {\n\tborder: dashed 4px black;\n}\n\n\n.dijitToggleButtonIconChar {\n\t/* character (instead of icon) to show that ToggleButton is checked */\n\tdisplay:none !important;\n}\n.dj_a11y .dijitToggleButton .dijitToggleButtonIconChar {\n\tdisplay:inline !important;\n\tvisibility:hidden;\n}\n.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText {\n\tfont-family: \"Arial Unicode MS\";\t/* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */\n}\n.dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar {\n\tdisplay: inline !important; /* In high contrast mode, display the check symbol */\n\tvisibility:visible !important;\n}\n\n.dijitArrowButtonChar {\n\tdisplay:none !important;\n}\n.dj_a11y .dijitArrowButtonChar {\n\tdisplay:inline !important;\n}\n\n.dj_a11y .dijitDropDownButton .dijitArrowButtonInner,\n.dj_a11y .dijitComboButton .dijitArrowButtonInner {\n\tdisplay:none !important;\n}\n\n/* Select */\n.dj_a11y .dijitSelect {\n\tborder-collapse: separate !important;\n\tborder-width: 1px;\n\tborder-style: solid;\n}\n.dj_ie .dijitSelect {\n\tvertical-align: middle; /* Set this back for what we hack in dijit inline */\n}\n.dj_ie6 .dijitSelect .dijitValidationContainer,\n.dj_ie8 .dijitSelect .dijitButtonText {\n\tvertical-align: top;\n}\n.dj_ie6 .dijitTextBox .dijitInputContainer,\n.dj_iequirks .dijitTextBox .dijitInputContainer,\n.dj_ie6 .dijitTextBox .dijitArrowButtonInner,\n.dj_ie6 .dijitSpinner .dijitSpinnerButtonInner,\n.dijitSelect .dijitSelectLabel {\n\tvertical-align: baseline;\n}\n\n.dijitNumberTextBox {\n\ttext-align: left;\n\tdirection: ltr;\n}\n\n.dijitNumberTextBox .dijitInputInner {\n\ttext-align: inherit; /* input */\n}\n\n.dijitNumberTextBox input.dijitInputInner,\n.dijitCurrencyTextBox input.dijitInputInner,\n.dijitSpinner input.dijitInputInner {\n\ttext-align: right;\n}\n\n.dj_ie8 .dijitNumberTextBox input.dijitInputInner, .dj_ie9 .dijitNumberTextBox input.dijitInputInner,\n.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner, .dj_ie9 .dijitCurrencyTextBox input.dijitInputInner,\n.dj_ie8 .dijitSpinner input.dijitInputInner, .dj_ie9 .dijitSpinner input.dijitInputInner {\n\t/* workaround bug where caret invisible in empty textboxes */\n\tpadding-right: 1px !important;\n}\n\n.dijitToolbar .dijitSelect {\n\tmargin: 0;\n}\n.dj_webkit .dijitToolbar .dijitSelect {\n\tpadding-left: 0.3em;\n}\n.dijitSelect .dijitButtonContents {\n\tpadding: 0;\n\twhite-space: nowrap;\n\ttext-align: left;\n\tborder-style: none solid none none;\n\tborder-width: 1px;\n}\n.dijitSelectFixedWidth .dijitButtonContents {\n\twidth: 100%;\n}\n\n.dijitSelectMenu .dijitMenuItemIcon {\n\t/* avoid blank area in left side of menu (since we have no icons) */\n\tdisplay:none;\n}\n.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel,\n.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel {\n\t/* Set back to static due to bug in ie6/ie7 - See Bug #9651 */\n\tposition: static;\n}\n\n/* Fix the baseline of our label (for multi-size font elements) */\n.dijitSelectLabel *\n{\n\tvertical-align: baseline;\n}\n\n/* Styling for the currently-selected option (rich text can mess this up) */\n.dijitSelectSelectedOption * {\n\tfont-weight: bold;\n}\n\n/* Fix the styling of the dropdown menu to be more combobox-like */\n.dijitSelectMenu {\n\tborder-width: 1px;\n}\n\n/* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */\n.dijitForceStatic {\n\tposition: static !important;\n}\n\n/**** Disabled cursor *****/\n.dijitReadOnly *,\n.dijitDisabled *,\n.dijitReadOnly,\n.dijitDisabled {\n\t/* a region the user would be able to click on, but it's disabled */\n\tcursor: default;\n}\n\n/* Drag and Drop */\n.dojoDndItem {\n padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */\n\n\t/* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none; /* Disable selection/Copy of UIWebView */\n}\n.dojoDndHorizontal .dojoDndItem {\n /* make contents of horizontal container be side by side, rather than vertical */\n display: inline-block;\n}\n\n.dojoDndItemBefore,\n.dojoDndItemAfter {\n\tborder: 0px solid #369;\n}\n.dojoDndItemBefore {\n border-width: 2px 0 0 0;\n padding: 0 2px 2px 2px;\n}\n.dojoDndItemAfter {\n border-width: 0 0 2px 0;\n padding: 2px 2px 0 2px;\n}\n.dojoDndHorizontal .dojoDndItemBefore {\n border-width: 0 0 0 2px;\n padding: 2px 2px 2px 0;\n}\n.dojoDndHorizontal .dojoDndItemAfter {\n border-width: 0 2px 0 0;\n padding: 2px 0 2px 2px;\n}\n\n.dojoDndItemOver {\n\tcursor:pointer;\n}\n.dj_gecko .dijitArrowButtonInner INPUT,\n.dj_gecko INPUT.dijitArrowButtonInner {\n\t-moz-user-focus:ignore;\n}\n.dijitFocused .dijitMenuItemShortcutKey {\n\ttext-decoration: underline;\n}\n\n/* Dijit custom styling */\n.dijitBorderContainer {\n height: 350px;\n}\n.dijitTooltipContainer {\n background: #fff;\n border: 1px solid #ccc;\n border-radius: 6px;\n}\n.dijitContentPane {\n box-sizing: content-box;\n overflow: auto !important; /* Widgets like the data grid pass their scroll\n offset to the parent if there is not enough room to display a scroll bar\n in the widget itself, so do not hide the overflow. */\n}\n\n/* Global Bootstrap changes */\n\n/* Client defaults and helpers */\n.mx-dataview-content, .mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested), .mx-tabcontainer-content, .mx-grid-content {\n -webkit-overflow-scrolling: touch;\n}\nhtml, body, #content {\n height: 100%;\n}\n#content > .mx-page {\n width: 100%;\n min-height: 100%;\n}\n\n.mx-left-aligned {\n text-align: left;\n}\n.mx-right-aligned {\n text-align: right;\n}\n.mx-center-aligned {\n text-align: center;\n}\n\n.mx-table {\n width: 100%;\n}\n.mx-table th,\n.mx-table td {\n padding: 8px;\n vertical-align: top;\n}\n.mx-table th.nopadding,\n.mx-table td.nopadding {\n\tpadding: 0;\n}\n\n.mx-offscreen {\n /* When position relative is not set IE doesn't properly render when this class is removed\n * with the effect that elements are not displayed or are not clickable.\n */\n position: relative;\n height: 0;\n overflow: hidden;\n}\n\n.mx-ie-event-shield {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n}\n\n.mx-swipe-navigation-progress {\n position: absolute;\n height: 54px;\n width: 54px;\n top: calc(50% - 27px);\n left: calc(50% - 27px);\n background: url(data:image/gif;base64,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);\n}\n\n\n/* Bacause we use checkboxes without labels, align them with other widgets. */\ninput[type=\"checkbox\"] {\n margin: 9px 0;\n}\n\n.mx-checkbox input[type=\"checkbox\"] {\n margin-left: 0;\n margin-right: 8px;\n position: static;\n}\n\n.form-vertical .form-group.mx-checkbox input[type=\"checkbox\"] {\n display: block;\n}\n\n.form-vertical .form-group.mx-checkbox.label-after input[type=\"checkbox\"] {\n display: inline-block;\n}\n\n.form-horizontal .form-group.no-columns {\n padding-left: 15px;\n padding-right: 15px;\n}\n\n.mx-radiobuttons.inline .radio {\n display: inline-block;\n margin-right: 20px;\n}\n\n.mx-radiobuttons .radio input[type=\"radio\"] {\n /* Reset bootstrap rules */\n position: static;\n margin-right: 8px;\n margin-left: 0;\n}\n\n.mx-radiobuttons .radio label {\n /* Reset bootstrap rules */\n padding-left: 0;\n}\n\n.alert {\n margin-top: 8px;\n margin-bottom: 10px;\n white-space: pre-line;\n}\n\n.mx-compound-control {\n display: flex;\n}\n\n.mx-compound-control button {\n margin-left: 5px;\n}\n\n[dir=\"rtl\"] .mx-compound-control button {\n margin-left: 0;\n margin-right: 5px;\n}\n\n.mx-tooltip {\n margin: 10px;\n}\n.mx-tooltip-content {\n width: 400px;\n overflow-y: auto;\n}\n.mx-tooltip-prepare {\n height: 24px;\n padding: 8px;\n background: transparent url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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) no-repeat scroll center center;\n}\n.mx-tooltip-content .table th,\n.mx-tooltip-content .table td {\n padding: 2px 8px;\n}\n\n.mx-tabcontainer-pane {\n height: 100%;\n}\n.mx-tabcontainer-content.loading {\n min-height: 48px;\n background: url(data:image/gif;base64,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) no-repeat center center;\n background-size: 32px 32px;\n}\n.mx-tabcontainer-tabs {\n margin-bottom: 8px;\n}\n.mx-tabcontainer-tabs li {\n position: relative;\n}\n.mx-tabcontainer-indicator {\n position: absolute;\n background: #f2dede;\n border-radius: 8px;\n color: #b94a48;\n top: 0px;\n right: -5px;\n width: 16px;\n height: 16px;\n line-height: 16px;\n text-align: center;\n vertical-align: middle;\n font-size: 10px;\n font-weight: 600;\n z-index: 1; /* indicator should not hide behind other tab */\n}\n\n/* base structure */\n.mx-grid {\n padding: 8px;\n overflow: hidden; /* to prevent any margin from escaping grid and foobaring our size calculations */\n}\n.mx-grid-controlbar, .mx-grid-searchbar {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n}\n.mx-grid-controlbar .mx-button,\n.mx-grid-search-controls .mx-button {\n margin-bottom: 8px;\n}\n\n.mx-grid-search-controls .mx-button + .mx-button,\n.mx-grid-controlbar .mx-button + .mx-button {\n margin-left: 0.3em;\n}\n\n[dir=\"rtl\"] .mx-grid-search-controls .mx-button + .mx-button,\n[dir=\"rtl\"] .mx-grid-controlbar .mx-button + .mx-button {\n margin-left: 0;\n margin-right: 0.3em;\n}\n\n.mx-grid-pagingbar,\n.mx-grid-search-controls {\n display: flex;\n white-space: nowrap;\n align-items: baseline;\n margin-left: auto;\n}\n\n.mx-grid-toolbar, .mx-grid-search-inputs {\n margin-right: 5px;\n flex: 1;\n}\n\n[dir=\"rtl\"] .mx-grid-toolbar,\n[dir=\"rtl\"] .mx-grid-search-inputs {\n margin-left: 5px;\n margin-right: 0px;\n}\n[dir=\"rtl\"] .mx-grid-pagingbar,\n[dir=\"rtl\"] .mx-grid-search-controls {\n margin-left: 0px;\n margin-right: auto;\n}\n\n.mx-grid-paging-status {\n padding: 0 8px 5px;\n}\n\n/* search fields */\n.mx-grid-search-item {\n display: inline-block;\n vertical-align: top;\n margin-bottom: 8px;\n}\n.mx-grid-search-label {\n width: 110px;\n padding: 0 5px;\n text-align: right;\n display: inline-block;\n vertical-align: top;\n overflow: hidden;\n}\n[dir=\"rtl\"] .mx-grid-search-label {\n text-align: left;\n}\n.mx-grid-search-input {\n width: 150px;\n padding: 0 5px;\n display: inline-block;\n vertical-align: top;\n}\n.mx-grid-search-message {\n flex-basis: 100%;\n}\n\n/* widget combinations */\n.mx-dataview .mx-grid {\n border: 1px solid #ddd;\n border-radius: 3px;\n}\n\n.mx-calendar {\n z-index: 1000;\n}\n\n.mx-calendar-month-dropdown-options {\n position: absolute;\n}\n\n.mx-calendar, .mx-calendar-month-dropdown {\n user-select: none;\n}\n\n.mx-calendar-month-current {\n display: inline-block;\n}\n\n.mx-calendar-month-spacer {\n position: relative;\n height: 0px;\n overflow: hidden;\n visibility: hidden;\n}\n\n.mx-calendar, .mx-calendar-month-dropdown-options {\n border: 1px solid lightgrey;\n background-color: white;\n}\n\n.mx-datagrid tr {\n cursor: pointer;\n}\n\n.mx-datagrid tr.mx-datagrid-row-empty {\n cursor: default;\n}\n\n.mx-datagrid table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n margin-bottom: 0;\n}\n\n.mx-datagrid th, .mx-datagrid td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: bottom;\n border: 1px solid #ddd;\n}\n\n/* head */\n.mx-datagrid th {\n position: relative; /* Required for the positioning of the column resizers */\n border-bottom-width: 2px;\n}\n.mx-datagrid-head-caption {\n overflow: hidden;\n white-space: nowrap;\n}\n.mx-datagrid-sort-icon {\n float: right;\n padding-left: 5px;\n}\n[dir=\"rtl\"] .mx-datagrid-sort-icon {\n float: left;\n padding: 0 5px 0 0;\n}\n.mx-datagrid-column-resizer {\n position: absolute;\n top: 0;\n left: -6px;\n width: 10px;\n height: 100%;\n cursor: col-resize;\n}\n[dir=\"rtl\"] .mx-datagrid-column-resizer {\n left: auto;\n right: -6px;\n}\n\n/* body */\n.mx-datagrid tbody tr:first-child td {\n border-top: none;\n}\n//.mx-datagrid tbody tr:nth-child(2n+1) td {\n// background-color: #f9f9f9;\n//}\n.mx-datagrid tbody .selected td {\n background-color: #eee;\n}\n.mx-datagrid-data-wrapper {\n overflow: hidden;\n white-space: nowrap;\n}\n.mx-datagrid tbody img {\n max-width: 16px;\n max-height: 16px;\n}\n.mx-datagrid input,\n.mx-datagrid select,\n.mx-datagrid textarea {\n cursor: auto;\n}\n\n/* foot */\n.mx-datagrid tfoot th,\n.mx-datagrid tfoot td {\n padding: 3px 8px;\n}\n.mx-datagrid tfoot th {\n border-top: 1px solid #ddd;\n}\n.mx-datagrid.mx-content-loading .mx-content-loader {\n display: inline-block;\n width: 90%;\n animation: placeholderGradient 1s linear infinite;\n border-radius: 4px;\n background: #F5F5F5;\n background: repeating-linear-gradient(to right, #F5F5F5 0%, #F5F5F5 5%, #F9F9F9 50%, #F5F5F5 95%, #F5F5F5 100%);\n background-size: 200px 100px;\n animation-fill-mode: both;\n}\n@keyframes placeholderGradient {\n 0% { background-position: 100px 0; }\n 100% { background-position: -100px 0; }\n}\n\n.mx-datagrid-table-resizing th,\n.mx-datagrid-table-resizing td {\n cursor: col-resize !important;\n}\n\n.mx-templategrid-content-wrapper {\n display: table;\n width: 100%;\n border-collapse: collapse;\n box-sizing: border-box;\n}\n.mx-templategrid-row {\n display: table-row;\n}\n.mx-templategrid-item {\n padding: 5px;\n display: table-cell;\n border: 1px solid #ddd;\n cursor: pointer;\n box-sizing: border-box;\n}\n.mx-templategrid-empty {\n display: table-cell;\n}\n.mx-templategrid-item.selected {\n background-color: #f5f5f5;\n}\n.mx-templategrid-item .mx-table th,\n.mx-templategrid-item .mx-table td {\n padding: 2px 8px;\n}\n\n.mx-scrollcontainer-horizontal {\n width: 100%;\n display: table;\n table-layout: fixed;\n}\n.mx-scrollcontainer-horizontal > div {\n display: table-cell;\n vertical-align: top;\n}\n//.mx-scrollcontainer-wrapper {\n// padding: 10px;\n//}\n.mx-scrollcontainer-nested {\n padding: 0;\n}\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-middle > .mx-scrollcontainer-wrapper,\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-left > .mx-scrollcontainer-wrapper,\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-center > .mx-scrollcontainer-wrapper,\n.mx-scrollcontainer-fixed > .mx-scrollcontainer-right > .mx-scrollcontainer-wrapper {\n overflow: auto;\n}\n\n.mx-scrollcontainer-move-in {\n transition: left 250ms ease-out;\n}\n.mx-scrollcontainer-move-out {\n transition: left 250ms ease-in;\n}\n.mx-scrollcontainer-shrink .mx-scrollcontainer-toggleable {\n transition-property: width;\n}\n\n.mx-scrollcontainer-toggleable {\n background-color: #fff;\n}\n//.mx-scrollcontainer-slide > .mx-scrollcontainer-toggleable > .mx-scrollcontainer-wrapper {\n// position: relative;\n// z-index: 1;\n// background-color: inherit;\n//}\n.mx-scrollcontainer-push {\n position: relative;\n}\n.mx-scrollcontainer-shrink > .mx-scrollcontainer-toggleable {\n overflow: hidden;\n}\n.mx-scrollcontainer-push.mx-scrollcontainer-open > div,\n.mx-scrollcontainer-slide.mx-scrollcontainer-open > div {\n pointer-events: none;\n}\n.mx-scrollcontainer-push.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable,\n.mx-scrollcontainer-slide.mx-scrollcontainer-open > .mx-scrollcontainer-toggleable {\n pointer-events: auto;\n}\n\n.mx-navbar-item img,\n.mx-navbar-subitem img {\n height: 16px;\n}\n\n\n.mx-navigationtree .navbar-inner {\n padding-left: 0;\n padding-right: 0;\n}\n.mx-navigationtree ul {\n list-style: none;\n}\n.mx-navigationtree ul li {\n border-bottom: 1px solid #dfe6ea;\n}\n.mx-navigationtree li:last-child {\n border-style: none;\n}\n.mx-navigationtree a {\n display: block;\n padding: 5px 10px;\n color: #777;\n text-shadow: 0 1px 0 #fff;\n text-decoration: none;\n}\n.mx-navigationtree a.active {\n color: #FFF;\n text-shadow: none;\n background: #3498DB;\n border-radius: 3px;\n}\n.mx-navigationtree .mx-navigationtree-collapsed ul {\n display: none;\n}\n.mx-navigationtree ul {\n margin: 0;\n padding: 0;\n}\n.mx-navigationtree ul li {\n padding: 5px 0;\n}\n.mx-navigationtree ul li ul {\n padding: 0;\n margin-left: 10px;\n}\n.mx-navigationtree ul li ul li {\n margin-left: 8px;\n padding: 5px 0;\n}\n[dir=\"rtl\"] .mx-navigationtree ul li ul li {\n margin-left: auto;\n margin-right: 8px;\n}\n.mx-navigationtree ul li ul li ul li {\n font-size: 10px;\n padding-top: 3px;\n padding-bottom: 3px;\n}\n.mx-navigationtree ul li ul li ul li img {\n vertical-align: top;\n}\n\n.mx-link img,\n.mx-button img {\n height: 16px;\n}\n.mx-link {\n padding: 6px 12px;\n display: inline-block;\n}\n\n.mx-groupbox {\n margin-bottom: 10px;\n}\n.mx-groupbox-header {\n margin: 0;\n padding: 10px 15px;\n color: #eee;\n background: #333;\n font-size: inherit;\n line-height: inherit;\n border-radius: 4px 4px 0 0;\n}\n.mx-groupbox-collapsible > .mx-groupbox-header {\n cursor: pointer;\n}\n.mx-groupbox.collapsed > .mx-groupbox-header {\n border-radius: 4px;\n}\n.mx-groupbox-body {\n padding: 8px;\n border: 1px solid #ddd;\n border-radius: 4px;\n}\n.mx-groupbox.collapsed > .mx-groupbox-body {\n display: none;\n}\n.mx-groupbox-header + .mx-groupbox-body {\n border-top: none;\n border-radius: 0 0 4px 4px;\n}\n.mx-groupbox-collapse-icon {\n float: right;\n}\n[dir=\"rtl\"] .mx-groupbox-collapse-icon {\n float: left;\n}\n\n.mx-dataview {\n position: relative;\n}\n.mx-dataview-controls {\n padding: 19px 20px 12px;\n background-color: #f5f5f5;\n border-top: 1px solid #eee;\n}\n\n.mx-dataview-controls .mx-button {\n margin-bottom: 8px;\n}\n\n.mx-dataview-controls .mx-button + .mx-button {\n margin-left: 0.3em;\n}\n\n.mx-dataview-message {\n background: #fff;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.mx-dataview-message > div {\n display: table;\n width: 100%;\n height: 100%;\n}\n.mx-dataview-message > div > p {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n}\n\n/* Top-level data view in window is a special case, handle it as such. */\n.mx-window-view .mx-window-body {\n padding: 0;\n}\n.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-content,\n.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-content {\n padding: 15px;\n}\n.mx-window-view .mx-window-body > .mx-dataview > .mx-dataview-controls,\n.mx-window-view .mx-window-body > .mx-placeholder > .mx-dataview > .mx-dataview-controls {\n border-radius: 0px 0px 6px 6px;\n}\n\n.mx-dialog {\n position: fixed;\n left: auto;\n right: auto;\n padding: 0;\n width: 500px;\n /* If the margin is set to auto, IE9 reports the calculated value of the\n * margin as the actual value. Other browsers will just report 0. Eliminate\n * this difference by setting margin to 0 for every browser. */\n margin: 0;\n}\n.mx-dialog-header {\n cursor: move;\n}\n.mx-dialog-body {\n overflow: auto;\n}\n\n.mx-window {\n position: fixed;\n left: auto;\n right: auto;\n padding: 0;\n width: 600px;\n /* If the margin is set to auto, IE9 reports the calculated value of the\n * margin as the actual value. Other browsers will just report 0. Eliminate\n * this difference by setting margin to 0 for every browser. */\n margin: 0;\n}\n.mx-window-content {\n height: 100%;\n overflow: hidden;\n}\n.mx-window-active .mx-window-header {\n background-color: #f5f5f5;\n border-radius: 6px 6px 0 0;\n}\n.mx-window-header {\n cursor: move;\n}\n.mx-window-body {\n overflow: auto;\n}\n\n.mx-dropdown-list * {\n cursor: pointer;\n}\n.mx-dropdown-list img {\n width: 35px;\n vertical-align: middle;\n margin-right: 10px;\n}\n[dir=\"rtl\"] .mx-dropdown-list img {\n margin-left: 10px;\n margin-right: auto;\n}\n\n.mx-dropdown-list {\n padding: 0;\n list-style: none;\n}\n.mx-dropdown-list > li {\n padding: 5px 10px 10px;\n border: 1px #ddd;\n border-style: solid solid none;\n background-color: #fff;\n}\n.mx-dropdown-list > li:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.mx-dropdown-list > li:last-child {\n border-bottom-style: solid;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.mx-dropdown-list-striped > li:nth-child(2n+1) {\n background: #f9f9f9;\n}\n.mx-dropdown-list > li:hover {\n background: #f5f5f5;\n}\n\n.mx-header {\n position: relative;\n padding: 9px;\n background: #333;\n text-align: center;\n}\n.mx-header-center {\n display: inline-block;\n color: #eee;\n line-height: 30px; /* height of buttons */\n}\nbody[dir=\"ltr\"] .mx-header-left,\nbody[dir=\"rtl\"] .mx-header-right {\n position: absolute;\n top: 9px;\n left: 9px;\n}\nbody[dir=\"ltr\"] .mx-header-right,\nbody[dir=\"rtl\"] .mx-header-left {\n position: absolute;\n top: 9px;\n right: 9px;\n}\n\n.mx-title {\n margin-bottom: 0px;\n margin-top: 0px;\n}\n\n.mx-listview {\n padding: 8px;\n}\n.mx-listview > ul {\n padding: 0px;\n list-style: none;\n}\n// .mx-listview > ul > li {\n// padding: 5px 10px 10px;\n// border: 1px #ddd;\n// border-style: solid solid none;\n// background-color: #fff;\n// outline: none;\n// }\n// .mx-listview > ul > li:first-child {\n// border-top-left-radius: 4px;\n// border-top-right-radius: 4px;\n// }\n// .mx-listview > ul > li:last-child {\n// border-bottom-style: solid;\n// border-bottom-left-radius: 4px;\n// border-bottom-right-radius: 4px;\n// }\n//.mx-listview li:nth-child(2n+1) {\n// background: #f9f9f9;\n//}\n//.mx-listview li:nth-child(2n+1):hover {\n// background: #f5f5f5;\n//}\n.mx-listview > ul > li.selected {\n// background: #eee;\n}\n.mx-listview-clickable > ul > li {\n cursor: pointer;\n}\n.mx-listview-empty {\n color: #999;\n text-align: center;\n}\n.mx-listview .mx-listview-loading {\n padding: 10px;\n line-height: 0;\n text-align: center;\n}\n.mx-listview-searchbar {\n display: flex;\n margin-bottom: 10px;\n}\n.mx-listview-searchbar > input {\n width: 100%;\n}\n.mx-listview-searchbar > button {\n margin-left: 5px;\n}\n[dir=\"rtl\"] .mx-listview-searchbar > button {\n margin-left: 0;\n margin-right: 5px;\n}\n.mx-listview-selection {\n display: table-cell;\n vertical-align: middle;\n padding: 0 15px 0 5px;\n}\n[dir=\"rtl\"] .mx-listview-selection {\n padding: 0 5px 0 15px;\n}\n.mx-listview-selectable .mx-listview-content {\n display: table-cell;\n vertical-align: middle;\n width: 100%;\n}\n.mx-listview .selected {\n background: #def;\n}\n.mx-listview .mx-table th,\n.mx-listview .mx-table td {\n padding: 2px;\n}\n\n.mx-login .form-control {\n margin-top: 10px;\n}\n\n.mx-menubar {\n padding: 8px;\n}\n.mx-menubar-icon {\n height: 16px;\n}\n.mx-menubar-more-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=) no-repeat center center;\n background-size: 16px 16px;\n vertical-align: middle;\n}\n\n.mx-navigationlist {\n padding: 8px;\n}\n.mx-navigationlist li:hover,\n.mx-navigationlist li:focus,\n.mx-navigationlist li.active {\n color: #FFF;\n background-color: #3498DB;\n}\n.mx-navigationlist * {\n cursor: pointer;\n}\n.mx-navigationlist .table th,\n.mx-navigationlist .table td {\n padding: 2px;\n}\n\n.mx-progress {\n position: fixed;\n top: 30%;\n left: 0;\n right: 0;\n margin: auto;\n width: 250px;\n max-width: 90%;\n background: #333;\n opacity: 0.8;\n z-index: 5000;\n border-radius: 4px;\n padding: 20px 15px;\n transition: opacity 0.4s ease-in-out;\n}\n.mx-progress-hidden {\n opacity: 0;\n}\n.mx-progress-message {\n color: #fff;\n text-align: center;\n margin-bottom: 15px;\n}\n.mx-progress-empty .mx-progress-message {\n display: none;\n}\n.mx-progress-indicator {\n width: 70px;\n height: 10px;\n margin: auto;\n background: url(data:image/gif;base64,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);\n}\n\n.mx-reload-notification {\n position: fixed;\n z-index: 1001;\n top: 0;\n width: 100%;\n padding: 1rem;\n\n border: 1px solid hsl(200, 96%, 41%);\n background-color: hsl(200, 96%, 44%);\n\n box-shadow: 0 5px 20px rgba(1, 37, 55, 0.16);\n color: white;\n\n text-align: center;\n font-size: 14px;\n}\n\n.mx-resizer-n,\n.mx-resizer-s {\n position: absolute;\n left: 0;\n width: 100%;\n height: 10px;\n}\n.mx-resizer-n {\n top: -5px;\n cursor: n-resize;\n}\n.mx-resizer-s {\n bottom: -5px;\n cursor: s-resize;\n}\n\n.mx-resizer-e,\n.mx-resizer-w {\n position: absolute;\n top: 0;\n width: 10px;\n height: 100%;\n}\n.mx-resizer-e {\n right: -5px;\n cursor: e-resize;\n}\n.mx-resizer-w {\n left: -5px;\n cursor: w-resize;\n}\n\n.mx-resizer-nw,\n.mx-resizer-ne,\n.mx-resizer-sw,\n.mx-resizer-se {\n position: absolute;\n width: 20px;\n height: 20px;\n}\n\n.mx-resizer-nw,\n.mx-resizer-ne {\n top: -5px;\n}\n.mx-resizer-sw,\n.mx-resizer-se {\n bottom: -5px;\n}\n.mx-resizer-nw,\n.mx-resizer-sw {\n left: -5px;\n}\n.mx-resizer-ne,\n.mx-resizer-se {\n right: -5px;\n}\n\n.mx-resizer-nw {\n cursor: nw-resize;\n}\n.mx-resizer-ne {\n cursor: ne-resize;\n}\n.mx-resizer-sw {\n cursor: sw-resize;\n}\n.mx-resizer-se {\n cursor: se-resize;\n}\n\n.mx-text {\n white-space: pre-line;\n}\n\n.mx-textarea textarea {\n resize: none;\n overflow-y: hidden;\n}\n.mx-textarea .mx-textarea-noresize {\n height: auto;\n resize: vertical;\n overflow-y: auto;\n}\n.mx-textarea .mx-textarea-counter {\n font-size: smaller;\n}\n.mx-textarea .form-control-static {\n white-space: pre-line;\n}\n\n.mx-underlay {\n position: fixed;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 1000;\n opacity: 0.5;\n background-color: #333;\n}\n\n.mx-imagezoom {\n position: absolute;\n display: table;\n width: 100%;\n height: 100%;\n background-color: #999;\n}\n.mx-imagezoom-wrapper {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n}\n.mx-imagezoom-image {\n max-width: none;\n}\n\n.mx-dropdown li {\n padding: 3px 20px;\n cursor: pointer;\n}\n.mx-dropdown label {\n padding: 0;\n color: #333;\n white-space: nowrap;\n cursor: pointer;\n}\n.mx-dropdown input {\n margin: 0;\n vertical-align: middle;\n cursor: pointer;\n}\n.mx-dropdown .selected {\n background: #f8f8f8;\n}\n//.mx-selectbox {\n// text-align: left;\n//}\n//.mx-selectbox-caret-wrapper {\n// float: right;\n// height: 100%;\n//}\n\n.mx-demouserswitcher {\n position: fixed;\n top: 0;\n right: 0;\n width: 360px;\n height: 100%;\n z-index: 20000;\n box-shadow: -1px 0 5px rgba(28,59,86,.2);\n}\n.mx-demouserswitcher-content {\n padding: 80px 40px 20px;\n height: 100%;\n color: #387ea2;\n font-size: 14px;\n overflow: auto;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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) top right no-repeat #1b3149;\n /* background-attachement local is not supported on IE8\n * when this is part of background the complete background is ignored */\n background-attachment: local;\n}\n.mx-demouserswitcher ul {\n padding: 0;\n margin-top: 25px;\n list-style-type: none;\n border-top: 1px solid #496076;\n}\n.mx-demouserswitcher a {\n display: block;\n padding: 10px 0;\n color: #387ea2;\n border-bottom: 1px solid #496076;\n}\n.mx-demouserswitcher h2 {\n margin: 20px 0 5px;\n color: #5bc4fe;\n font-size: 28px;\n}\n.mx-demouserswitcher h3 {\n margin: 0 0 2px;\n color: #5bc4fe;\n font-size: 18px;\n font-weight: normal;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mx-demouserswitcher .active h3 {\n color: #11efdb;\n}\n.mx-demouserswitcher p {\n margin-bottom: 0;\n}\n.mx-demouserswitcher-toggle {\n position: absolute;\n top: 25%;\n left: -35px;\n width: 35px;\n height: 38px;\n margin-top: -40px;\n cursor: pointer;\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n box-shadow: -1px 0 5px rgba(28,59,86,.2);\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC) center center no-repeat #1b3149;\n}\n\n/* master details screen for mobile */\n.mx-master-detail-screen {\n top: 0;\n left: 0;\n overflow: auto;\n width: 100%;\n height: 100%;\n position: absolute;\n background-color: white;\n will-change: transform;\n}\n\n.mx-master-detail-screen .mx-master-detail-details {\n padding: 15px;\n}\n\n.mx-master-detail-screen-header {\n position: relative;\n overflow: auto;\n border-bottom: 1px solid #ccc;\n background-color: #f7f7f7;\n}\n\n.mx-master-detail-screen-header-caption {\n text-align: center;\n font-size: 17px;\n line-height: 24px;\n font-weight: 600;\n}\n\n.mx-master-detail-screen-header-close {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n width: 50px;\n border: none;\n background: transparent;\n color: #007aff;\n}\n\nbody[dir=\"rtl\"] .mx-master-detail-screen-header-close {\n right: 0;\n left: auto;\n}\n\n.mx-master-detail-screen-header-close::before {\n content: \"\\2039\";\n font-size: 52px;\n line-height: 24px;\n}\n\n/* classes for content page */\n.mx-master-detail-content-fix {\n height: 100vh;\n overflow: hidden;\n}\n\n.mx-master-detail-content-hidden {\n transform: translateX(-200%);\n}\n\nbody[dir=\"rtl\"] .mx-master-detail-content-hidden {\n transform: translateX(200%);\n}\n.reportingReport {\n padding: 5px;\n border: 1px solid #ddd;\n -webkit-border-radius: 3px;\n -moz-border-radius: 3px;\n border-radius: 3px;\n}\n\n.reportingReportParameter th {\n text-align: right;\n}\n\n.reportingDateRange table {\n width: 100%;\n table-layout: fixed;\n}\n.reportingDateRange th {\n padding: 5px;\n text-align: right;\n background-color: #eee;\n}\n.reportingDateRange td {\n padding: 5px;\n}\n\n.mx-reportmatrix table {\n width: 100%;\n max-width: 100%;\n table-layout: fixed;\n margin-bottom: 0;\n}\n\n.mx-reportmatrix th, .mx-reportmatrix td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: bottom;\n border: 1px solid #ddd;\n}\n\n.mx-reportmatrix tbody tr:first-child td {\n border-top: none;\n}\n\n.mx-reportmatrix tbody tr:nth-child(2n+1) td {\n background-color: #f9f9f9;\n}\n\n.mx-reportmatrix tbody img {\n max-width: 16px;\n max-height: 16px;\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .dijitInline {\n zoom: 1; /* set hasLayout:true to mimic inline-block */\n display:inline; /* don't use .dj_ie since that increases the priority */\n vertical-align: auto;\t/* makes TextBox,Button line up w/native counterparts on IE6 */\n }\n\n .dj_ie6 .dijitComboBox .dijitInputContainer,\n .dijitInputContainer {\n zoom: 1;\n }\n\n .dijitRight {\n /* Right part of a 3-element border */\n display:inline;\t\t\t\t/* IE7 sizes to outer size w/o this */\n }\n\n .dijitButtonNode {\n vertical-align: auto;\n }\n\n .dijitTextBox {\n overflow: hidden; /* #6027, #6067 */\n }\n\n .dijitPlaceHolder {\n filter: \"\"; /* make this show up in IE6 after the rendering of the widget */\n }\n\n .dijitValidationTextBoxError input.dijitValidationInner,\n .dijitSelect input,\n .dijitTextBox input.dijitArrowButtonInner {\n text-indent: 0 !important;\n letter-spacing: -5em !important;\n text-align: right !important;\n }\n\n .dj_a11y input.dijitValidationInner,\n .dj_a11y input.dijitArrowButtonInner {\n text-align: left !important;\n }\n\n .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton {\n bottom: 50%;\t/* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */\n }\n\n .dijitTabContainerTop-tabs .dijitTab,\n .dijitTabContainerBottom-tabs .dijitTab {\n zoom: 1; /* set hasLayout:true to mimic inline-block */\n display:inline; /* don't use .dj_ie since that increases the priority */\n }\n\n .dojoDndHorizontal .dojoDndItem {\n /* make contents of horizontal container be side by side, rather than vertical */\n display: inline;\n }\n}\n\n\n\n/* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */\n\n/* dijit base */\n\n/* mendix base */\n\n/* widgets */\n\n/* reporting */\n\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7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QUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/\n","//== Gray Shades\n//## Different gray shades to be used for our variables and components\n$gray-darker: #222222;\n$gray-dark: #333333;\n$gray: #555555;\n$gray-light: #888888;\n$gray-primary: #D7D7D7;\n$gray-lighter: #EEEEEE;\n\n//== Step 1: Brand Colors\n$brand-default: #DDDDDD;\n$brand-primary: #0595DB;\n$brand-inverse: #252C36;\n$brand-info: #48B0F7;\n$brand-success: #76CA02;\n$brand-warning: #F99B1D;\n$brand-danger: #ED1C24;\n\n// Used for other variables\n$default-border-color: $gray-primary;\n\n//== Step 3: Typography\n$font-family-import: \"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700\";\n@if $font-family-import != false {\n // Only import, if the import is set\n @import url($font-family-import);\n}\n$font-family-base: \"Open Sans\", sans-serif;\n$font-base-size: 14px;\n$font-base-color: #555555;\n$link-color: $brand-primary;\n$font-size-h1: 31px;\n$font-size-h2: 26px;\n$font-size-h3: 24px;\n$font-size-h4: 18px;\n$font-color-detail: $gray-light;\n$font-color-headers: #17347B;\n\n//== Step 2: UI Customization\n\n// Topbar\n$topbar-bg: #FFFFFF;\n$navtopbar-border-color: $default-border-color;\n$topbar-border-color: $navtopbar-border-color;\n$topbar-minimalheight: 60px;\n$navtopbar-color: $font-base-color;\n$navbar-brand-name: $default-border-color;\n$brand-logo: false;\n$brand-logo-height: 30px;\n$brand-logo-width: 30px;\n\n// Sidebar\n$sidebar-bg: $brand-inverse;\n$navsidebar-color: #FFFFFF;\n$navsidebar-color-hover: $navsidebar-color;\n\n// Backgrounds\n$bg-color: #FFFFFF;\n$bg-color-secondary: #F5F8FD;\n\n// == Old variables used in theme customizer to the new lib variables\n$font-size-default: $font-base-size;\n$font-color-default: $font-base-color;\n$border-color-default: $default-border-color;\n$font-color-header:\t\t\t\t $font-color-headers;\n\n\n//== Settings\n//## Enable or disable your desired framework features\n// Use of !important\n$important-flex: true; // ./base/flex.scss\n$important-spacing: true; // ./base/spacing.scss\n$important-helpers: true; // ./helpers/helperclasses.scss\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n//\n// ██████╗ █████╗ ███████╗██╗ ██████╗\n// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝\n// ██████╔╝███████║███████╗██║██║\n// ██╔══██╗██╔══██║╚════██║██║██║\n// ██████╔╝██║ ██║███████║██║╚██████╗\n// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝\n//\n\n\n//== Gray Shades\n//## Different gray shades to be used for our variables and components\n$gray-darker: #222 !default;\n$gray-dark: #333 !default;\n$gray: #555 !default;\n$gray-light: #888 !default;\n$gray-primary: #d7d7d7 !default;\n$gray-lighter: #eee !default;\n\n\n//== Step 1: Brand Colors\n$brand-default: #DDDDDD !default;\n$brand-primary: #0595DB !default;\n$brand-inverse: #252C36 !default;\n$brand-info: #48B0F7 !default;\n$brand-success: #76CA02 !default;\n$brand-warning: #f99b1d !default;\n$brand-danger: #ed1c24 !default;\n\n$brand-logo:\t\t\t\t\t\t\tfalse !default;\n$brand-logo-height:\t\t\t\t\t\t26px !default;\n$brand-logo-width:\t\t\t\t\t\t26px !default; // Only used for CSS brand logo\n\n\n\n\n\n//== Step 2: UI Customization\n\n// Default Font Size & Color\n$font-size-default: 14px !default;\n$font-color-default: #555 !default;\n\n// Global Border Color\n$border-color-default: $gray-primary !default;\n$border-radius-default: 4px !default;\n\n// Topbar\n$topbar-bg: #FFF !default;\n$topbar-minimalheight: 60px !default;\n$topbar-border-color: $border-color-default !default;\n\n// Topbar mobile\n$m-header-height: \t45px !default;\n$m-header-bg: $topbar-bg !default;\n$m-header-color: #555 !default;\n$m-header-title-size: 17px !default;\n\n\n// Sidebar\n$sidebar-bg: $brand-inverse !default;\n\n// Navbar Brand Name / For your company, product, or project name (used in layouts/base/)\n$navbar-brand-name: $font-color-default !default;\n\n// Background Colors\n$bg-color: #FFF !default;\n$bg-color-secondary: #F5F8FD !default; // Background color that is used for specific page templates background\n\n// Default Link Color\n$link-color: $brand-primary !default;\n$link-hover-color: darken($link-color, 15%) !default;\n\n\n\n\n\n//\n// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗\n// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗\n// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║\n// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║\n// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝\n// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝\n//\n\n\n//== Typography\n//## Change your font family, weight, line-height, headings and more (used in components/typography)\n\n// Font Family Import (Used for google font plugin in theme creater https://ux.mendix.com/theme-creator.html)\n$font-family-import: \"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700\" !default;\n@if $font-family-import != false {\n // Only import, if the import is set\n @import url($font-family-import);\n}\n\n// Font Family / False = fallback from Bootstrap (Helvetica Neue)\n$font-family-base: 'Open Sans', sans-serif !default;\n\n// Font Sizes\n$font-size-large: 16px !default;\n$font-size-small: 12px !default;\n\n// Font Weights\n$font-weight-light: 100 !default;\n$font-weight-normal: normal !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: bold !default;\n\n// Font Size Headers\n$font-size-h1: 31px !default;\n$font-size-h2: 26px !default;\n$font-size-h3: 24px !default;\n$font-size-h4: 18px !default;\n$font-size-h5: $font-size-default !default;\n$font-size-h6: 12px !default;\n\n// Font Weight Headers\n$font-weight-header: $font-weight-normal !default;\n\n// Line Height\n$line-height-base: 1.428571429 !default;\n\n// Spacing\n$font-header-margin:\t\t\t\t\t15px 0 30px 0 !default;\n\n// Text Colors\n$font-color-header:\t\t\t\t #17347B !default;\n$font-color-detail: $gray-light !default;\n\n\n\n\n\n//== Navigation\n//## Used in components/navigation\n\n// Default Navigation styling\n$navigation-item-height: 60px !default;\n$navigation-item-padding: 5px 15px !default;\n\n$navigation-font-size: $font-size-default !default;\n$navigation-sub-font-size: $font-size-small !default;\n$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navigation-bg: $brand-inverse !default;\n$navigation-bg-hover: lighten($navigation-bg, 4) !default;\n$navigation-bg-active: lighten($navigation-bg, 8) !default;\n$navigation-color: #FFF !default;\n$navigation-color-hover: #FFF !default;\n$navigation-color-active: #FFF !default;\n\n$navigation-sub-bg: darken($navigation-bg, 4) !default;\n$navigation-sub-bg-hover: $navigation-sub-bg !default;\n$navigation-sub-bg-active: $navigation-sub-bg !default;\n$navigation-sub-color: #AAA !default;\n$navigation-sub-color-hover: $brand-primary !default;\n$navigation-sub-color-active: $brand-primary !default;\n\n$navigation-border-color: $navigation-bg-hover !default;\n\n// Navigation Sidebar\n$navsidebar-font-size: $font-size-default !default;\n$navsidebar-sub-font-size: $font-size-small !default;\n$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navsidebar-bg: $sidebar-bg !default;\n$navsidebar-bg-hover: lighten($navsidebar-bg, 4) !default;\n$navsidebar-bg-active: lighten($navsidebar-bg, 8) !default;\n$navsidebar-color: #FFF !default;\n$navsidebar-color-hover: #FFF !default;\n$navsidebar-color-active: #FFF !default;\n\n$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default;\n$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default;\n$navsidebar-sub-bg-active: $navsidebar-sub-bg !default;\n$navsidebar-sub-color: #AAA !default;\n$navsidebar-sub-color-hover: $brand-primary !default;\n$navsidebar-sub-color-active: $brand-primary !default;\n\n$navsidebar-border-color: $navsidebar-bg-hover !default;\n\n// Navigation topbar\n$navtopbar-font-size: $font-size-default !default;\n$navtopbar-sub-font-size: $font-size-small !default;\n$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler\n\n$navtopbar-bg: $topbar-bg !default;\n$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default;\n$navtopbar-bg-active: darken($navtopbar-bg, 8) !default;\n$navtopbar-color: $font-color-default !default;\n$navtopbar-color-hover: $navtopbar-color !default;\n$navtopbar-color-active: $navtopbar-color !default;\n\n$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default;\n$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default;\n$navtopbar-sub-bg-active: $navtopbar-sub-bg !default;\n$navtopbar-sub-color: #AAA !default;\n$navtopbar-sub-color-hover: $brand-primary !default;\n$navtopbar-sub-color-active: $brand-primary !default;\n\n//## Used in layouts/base\n$navtopbar-border-color: $topbar-border-color !default;\n\n\n\n\n//== Form\n//## Used in components/inputs\n\n// Values that can be used default | lined\n$form-input-style: default !default;\n\n// Form Label\n$form-label-color: #666 !default;\n$form-label-size: $font-size-default !default;\n$form-label-weight: $font-weight-semibold !default;\n$form-label-gutter: 8px !default;\n\n// Form Input dimensions\n$form-input-height: auto !default;\n$form-input-padding-y: 8px !default;\n$form-input-padding-x: 10px !default;\n$form-input-font-size: $form-label-size !default;\n$form-input-line-height: $line-height-base !default;\n$form-input-border-radius: $border-radius-default !default;\n\n// Form Input styling\n$form-input-bg: #FFF !default;\n$form-input-bg-focus: #FFF !default;\n$form-input-bg-hover: $gray-primary !default;\n$form-input-bg-disabled: $gray-lighter !default;\n$form-input-color: $font-color-default !default;\n$form-input-focus-color: $form-input-color !default;\n$form-input-disabled-color: $form-input-color !default;\n$form-input-placeholder-color: $gray-light !default;\n$form-input-border-color: $border-color-default !default;\n$form-input-border-focus-color: $brand-primary !default;\n\n// Form Input Static styling\n$form-input-static-border-color:\t\t#F0F0EE !default;\n\n// Form Group\n$form-group-margin-bottom: 15px !default;\n$form-group-gutter: 15px !default;\n\n\n\n\n//== Buttons\n//## Define background-color, border-color and text. Used in components/buttons\n\n// Default button style\n$btn-font-size: 14px !default;\n$btn-bordered: false !default; // Default value false, set to true if you want this effect\n$btn-border-radius: $border-radius-default !default;\n\n// Button Background Color\n$btn-default-bg: #FFF !default;\n$btn-inverse-bg: $brand-inverse !default;\n$btn-primary-bg: $brand-primary !default;\n$btn-info-bg: $brand-info !default;\n$btn-success-bg: $brand-success !default;\n$btn-warning-bg: $brand-warning !default;\n$btn-danger-bg: $brand-danger !default;\n\n// Button Border Color\n$btn-default-border-color: $brand-default !default;\n$btn-inverse-border-color: $btn-inverse-bg !default;\n$btn-primary-border-color: $btn-primary-bg !default;\n$btn-info-border-color: $btn-info-bg !default;\n$btn-success-border-color: $btn-success-bg !default;\n$btn-warning-border-color: $btn-warning-bg !default;\n$btn-danger-border-color: $btn-danger-bg !default;\n\n// Button Text Color\n$btn-default-color: $brand-primary !default;\n$btn-inverse-color: #FFF !default;\n$btn-primary-color: #FFF !default;\n$btn-info-color: #FFF !default;\n$btn-success-color: #FFF !default;\n$btn-warning-color: #FFF !default;\n$btn-danger-color: #FFF !default;\n\n// Button Background Color\n$btn-default-bg-hover: $btn-default-border-color !default;\n$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default;\n$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default;\n$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default;\n$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default;\n$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default;\n$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default;\n$btn-link-bg-hover: $gray-lighter !default;\n\n\n\n\n//== Header blocks\n//## Define look and feel over multible building blocks that serve as header\n$header-bg-color: $bg-color-secondary !default;\n$header-text-color: #FFF !default;\n$header-text-color-detail: rgba(0,0,0, 0.2) !default;\n\n\n\n\n\n//\n// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗\n// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝\n// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║\n// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║\n// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║\n// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝\n//\n\n//== Color variations\n//## These variations are used to support several other variables and components\n\n// Color variations\n$color-default-darker: mix($brand-default, black, 60%) !default;\n$color-default-dark: mix($brand-default, black, 70%) !default;\n$color-default-light: mix($brand-default, white, 60%) !default;\n$color-default-lighter: mix($brand-default, white, 20%) !default;\n\n$color-inverse-darker: mix($brand-inverse, black, 60%) !default;\n$color-inverse-dark: mix($brand-inverse, black, 70%) !default;\n$color-inverse-light: mix($brand-inverse, white, 60%) !default;\n$color-inverse-lighter: mix($brand-inverse, white, 20%) !default;\n\n$color-primary-darker: mix($brand-primary, black, 60%) !default;\n$color-primary-dark: mix($brand-primary, black, 70%) !default;\n$color-primary-light: mix($brand-primary, white, 60%) !default;\n$color-primary-lighter: mix($brand-primary, white, 20%) !default;\n\n$color-info-darker: mix($brand-info, black, 60%) !default;\n$color-info-dark: mix($brand-info, black, 70%) !default;\n$color-info-light: mix($brand-info, white, 60%) !default;\n$color-info-lighter: mix($brand-info, white, 20%) !default;\n\n$color-success-darker: mix($brand-success, black, 60%) !default;\n$color-success-dark: mix($brand-success, black, 70%) !default;\n$color-success-light: mix($brand-success, white, 60%) !default;\n$color-success-lighter: mix($brand-success, white, 20%) !default;\n\n$color-warning-darker: mix($brand-warning, black, 60%) !default;\n$color-warning-dark: mix($brand-warning, black, 70%) !default;\n$color-warning-light: mix($brand-warning, white, 60%) !default;\n$color-warning-lighter: mix($brand-warning, white, 20%) !default;\n\n$color-danger-darker: mix($brand-danger, black, 60%) !default;\n$color-danger-dark: mix($brand-danger, black, 70%) !default;\n$color-danger-light: mix($brand-danger, white, 60%) !default;\n$color-danger-lighter: mix($brand-danger, white, 20%) !default;\n\n$brand-gradient: linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%) !default;\n\n\n//== Grids\n//## Used for Datagrid, Templategrid, Listview & Tables (see components folder)\n\n// Default Border Colors\n$grid-border-color: $border-color-default !default;\n\n// Spacing\n// Default\n$grid-padding-top: 15px !default;\n$grid-padding-right: 15px !default;\n$grid-padding-bottom: 15px !default;\n$grid-padding-left: 15px !default;\n\n// Listview\n$listview-padding-top: 15px !default;\n$listview-padding-right: 15px !default;\n$listview-padding-bottom: 15px !default;\n$listview-padding-left: 15px !default;\n\n// Background Colors\n$grid-bg: #FFF !default;\n$grid-bg-header: transparent !default; // Grid Headers\n$grid-bg-hover: mix($grid-border-color, #FFF, 20%) !default;\n$grid-bg-selected: mix($grid-border-color, #FFF, 30%) !default;\n$grid-bg-selected-hover: mix($grid-border-color, #FFF, 50%) !default;\n\n// Striped Background Color\n$grid-bg-striped: mix($grid-border-color, #FFF, 10%) !default;\n\n// Background Footer Color\n$grid-footer-bg: $gray-primary !default;\n\n// Text Color\n$grid-selected-color: $font-color-default !default;\n\n// Paging Colors\n$grid-paging-bg: transparent !default;\n$grid-paging-bg-hover: transparent !default;\n$grid-paging-border-color: transparent !default;\n$grid-paging-border-color-hover: transparent !default;\n$grid-paging-color: $gray-light !default;\n$grid-paging-color-hover: $brand-primary !default;\n\n\n\n\n//== Tabs\n//## Default variables for Tab Container Widget (used in components/tabcontainer)\n\n// Text Color\n$tabs-color: $font-color-detail !default;\n$tabs-color-active: $font-color-default !default;\n$tabs-lined-color-active: $brand-primary !default;\n\n// Border Color\n$tabs-border-color: $border-color-default !default;\n$tabs-lined-border-color: $brand-primary !default;\n\n// Background Color\n$tabs-bg: #FFF !default;\n$tabs-bg-hover: lighten($tabs-border-color,5) !default;\n$tabs-bg-active: $brand-primary !default;\n\n\n\n\n//== Modals\n//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals)\n\n// Background Color\n$modal-header-bg: transparent !default;\n\n// Border Color\n$modal-header-border-color: $border-color-default !default;\n\n// Text Color\n$modal-header-color: $font-color-default !default;\n\n\n\n\n//== Dataview\n//## Default variables for Dataview Widget (used in components/dataview)\n\n// Controls\n$dataview-controls-bg: transparent !default;\n$dataview-controls-border-color: $border-color-default !default;\n\n// Empty Message\n$dataview-emptymessage-bg: $bg-color !default;\n$dataview-emptymessage-color: $font-color-default !default;\n\n\n\n\n//== Alerts\n//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts)\n\n// Background Color\n$alert-info-bg: $color-info-lighter !default;\n$alert-success-bg: $color-success-lighter !default;\n$alert-warning-bg: $color-warning-lighter !default;\n$alert-danger-bg: $color-danger-lighter !default;\n\n// Text Color\n$alert-info-color: $color-info-darker !default;\n$alert-success-color: $color-success-darker !default;\n$alert-warning-color: $color-warning-darker !default;\n$alert-danger-color: $color-danger-darker !default;\n\n// Border Color\n$alert-info-border-color: $color-info-dark !default;\n$alert-success-border-color: $color-success-dark !default;\n$alert-warning-border-color: $color-warning-dark !default;\n$alert-danger-border-color: $color-danger-dark !default;\n\n\n\n\n//== Labels\n//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels)\n\n// Background Color\n$label-default-bg: $brand-default !default;\n$label-primary-bg: $brand-primary !default;\n$label-info-bg: $brand-info !default;\n$label-inverse-bg: $brand-inverse !default;\n$label-success-bg: $brand-success !default;\n$label-warning-bg: $brand-warning !default;\n$label-danger-bg: $brand-danger !default;\n\n// Border Color\n$label-default-border-color: $brand-default !default;\n$label-primary-border-color: $brand-primary !default;\n$label-info-border-color: $brand-info !default;\n$label-success-border-color: $brand-success !default;\n$label-warning-border-color: $brand-warning !default;\n$label-danger-border-color: $brand-danger !default;\n\n// Text Color\n$label-default-color: $font-color-default !default;\n$label-primary-color: #FFF !default;\n$label-info-color: #FFF !default;\n$label-inverse-color: #FFF !default;\n$label-success-color: #FFF !default;\n$label-warning-color: #FFF !default;\n$label-danger-color: #FFF !default;\n\n\n\n\n//== Groupbox\n//## Default variables for Groupbox Widget (used in components/groupbox)\n\n// Background Color\n$groupbox-default-bg: $brand-default !default;\n$groupbox-inverse-bg: $brand-inverse !default;\n$groupbox-primary-bg: $brand-primary !default;\n$groupbox-info-bg: $brand-info !default;\n$groupbox-success-bg: $brand-success !default;\n$groupbox-warning-bg: $brand-warning !default;\n$groupbox-danger-bg: $brand-danger !default;\n$groupbox-white-bg: #FFF !default;\n\n// Text Color\n$groupbox-default-color: $font-color-default !default;\n$groupbox-inverse-color: #FFF !default;\n$groupbox-primary-color: #FFF !default;\n$groupbox-info-color: #FFF !default;\n$groupbox-success-color: #FFF !default;\n$groupbox-warning-color: #FFF !default;\n$groupbox-danger-color: #FFF !default;\n$groupbox-white-color: $font-color-default !default;\n\n\n\n\n//== Callout (groupbox) Colors\n//## Extended variables for Groupbox Widget (used in components/groupbox)\n\n// Text and Border Color\n$callout-default-color: $font-color-default !default;\n$callout-info-color: $brand-info !default;\n$callout-success-color: $brand-success !default;\n$callout-warning-color: $brand-warning !default;\n$callout-danger-color: $brand-danger !default;\n\n// Background Color\n$callout-default-bg: $color-default-lighter!default;\n$callout-info-bg: $color-info-lighter !default;\n$callout-success-bg: $color-success-lighter !default;\n$callout-warning-bg: $color-warning-lighter !default;\n$callout-danger-bg: $color-danger-lighter !default;\n\n\n\n\n\n//== Spacing\n//## Advanced layout options (used in base/mixins/default-spacing)\n\n// Small spacing\n$spacing-small: 5px !default;\n\n// Medium spacing\n$spacing-medium: 15px !default;\n$t-spacing-medium: 15px !default;\n$m-spacing-medium: 15px !default;\n\n// Large spacing\n$spacing-large: 30px !default;\n$t-spacing-large: 30px !default;\n$m-spacing-large: 15px !default;\n\n// Layout spacing\n$layout-spacing-top: 30px !default;\n$layout-spacing-right: 30px !default;\n$layout-spacing-bottom: 30px !default;\n$layout-spacing-left: 30px !default;\n\n$t-layout-spacing-top: 30px !default;\n$t-layout-spacing-right: 30px !default;\n$t-layout-spacing-bottom: 30px !default;\n$t-layout-spacing-left: 30px !default;\n\n$m-layout-spacing-top: 15px !default;\n$m-layout-spacing-right: 15px !default;\n$m-layout-spacing-bottom: 15px !default;\n$m-layout-spacing-left: 15px !default;\n\n// Combined layout spacing\n$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default;\n$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default;\n$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default;\n\n// Gutter size\n$gutter-size: 15px !default;\n\n\n\n\n\n//== Tables\n//## Table spacing options (used in components/tables)\n\n$padding-table-cell-top: 8px !default;\n$padding-table-cell-bottom: 8px !default;\n$padding-table-cell-left: 8px !default;\n$padding-table-cell-right: 8px !default;\n\n\n\n\n//== Media queries breakpoints\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n$screen-xs: 480px !default;\n$screen-sm: 576px !default;\n$screen-md: 768px !default;\n$screen-lg: 992px !default;\n$screen-xl: 1200px !default;\n\n// So media queries don't overlap when required, provide a maximum (used for max-width)\n$screen-xs-max: ($screen-sm - 1) !default;\n$screen-sm-max: ($screen-md - 1) !default;\n$screen-md-max: ($screen-lg - 1) !default;\n$screen-lg-max: ($screen-xl - 1) !default;\n\n\n//== Settings\n//## Enable or disable your desired framework features\n// Use of !important\n$important-flex: true !default; // ./base/flex.scss\n$important-spacing: true !default; // ./base/spacing.scss\n$important-helpers: true !default; // ./helpers/helperclasses.scss\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin transition(\n $style: initial,\n $delay: 0s,\n $duration: 0.3s,\n $property: all,\n $timing-fucntion: cubic-bezier(0.4, 0, 0.2, 1)\n) {\n -webkit-transition: $property $duration $delay $timing-fucntion;\n -moz-transition: $property $duration $delay $timing-fucntion;\n -o-transition: $property $duration $delay $timing-fucntion;\n transition: $property $duration $delay $timing-fucntion;\n transform-style: $style;\n}\n\n@mixin ripple($color: #000, $transparency: 10%, $scale: 10) {\n position: relative;\n overflow: hidden;\n transform: translate3d(0, 0, 0);\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n pointer-events: none;\n background-image: radial-gradient(circle, $color $transparency, transparent $transparency);\n background-repeat: no-repeat;\n background-position: 50%;\n -webkit-transform: scale($scale, $scale);\n transform: scale($scale, $scale);\n opacity: 0;\n -webkit-transition: transform 0.5s, opacity 1s;\n -moz-transition: transform 0.5s, opacity 1s;\n -o-transition: transform 0.5s, opacity 1s;\n transition: transform 0.5s, opacity 1s;\n }\n\n &:active:after {\n -webkit-transform: scale(0, 0);\n transform: scale(0, 0);\n opacity: 0.1;\n transition: 0s;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin get-responsive-spacing-large($type: padding, $direction: all, $is_important: false) {\n $suffix: '';\n $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)\n\n @if $is_important != false {\n $suffix: ' !important';\n }\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$spacing-large}#{$suffix};\n }\n } @else {\n @media (max-width: $screen-sm-max) {\n #{$type}#{$dash}#{$direction}: #{$m-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}#{$dash}#{$direction}: #{$t-spacing-large}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}#{$dash}#{$direction}: #{$spacing-large}#{$suffix};\n }\n }\n}\n\n@mixin get-responsive-spacing-medium($type: padding, $direction: all, $is_important: false) {\n $suffix: '';\n $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler)\n\n @if $is_important != false {\n $suffix: ' !important';\n }\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$spacing-medium}#{$suffix};\n }\n } @else {\n @media (max-width: $screen-sm-max) {\n #{$type}#{$dash}#{$direction}: #{$m-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}#{$dash}#{$direction}: #{$t-spacing-medium}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}#{$dash}#{$direction}: #{$spacing-medium}#{$suffix};\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: false) {\n $suffix: '';\n @if $is_important != false {\n $suffix: ' !important';\n }\n @if $device==responsive {\n @if $direction==all {\n @media (max-width: $screen-sm-max) {\n #{$type}: #{$m-layout-spacing}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}: #{$t-layout-spacing}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}: #{$layout-spacing}#{$suffix};\n }\n } @else if $direction==top {\n @media (max-width: $screen-sm-max) {\n #{$type}-top: #{$m-layout-spacing-top}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-top: #{$t-layout-spacing-top}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-top: #{$layout-spacing-top}#{$suffix};\n }\n } @else if $direction==right {\n @media (max-width: $screen-sm-max) {\n #{$type}-right: #{$m-layout-spacing-right}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-right: #{$t-layout-spacing-right}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-right: #{$layout-spacing-right}#{$suffix};\n }\n } @else if $direction==bottom {\n @media (max-width: $screen-sm-max) {\n #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-bottom: #{$layout-spacing-bottom}#{$suffix};\n }\n } @else if $direction==left {\n @media (max-width: $screen-sm-max) {\n #{$type}-left: #{$m-layout-spacing-left}#{$suffix};\n }\n @media (min-width: $screen-md) {\n #{$type}-left: #{$t-layout-spacing-left}#{$suffix};\n }\n @media (min-width: $screen-lg) {\n #{$type}-left: #{$layout-spacing-left}#{$suffix};\n }\n }\n } @else if $device==tablet {\n @if $direction==all {\n #{$type}: #{$t-layout-spacing}#{$suffix};\n } @else if $direction==top {\n #{$type}-top: #{$t-layout-spacing-top}#{$suffix};\n } @else if $direction==right {\n #{$type}-right: #{$t-layout-spacing-right}#{$suffix};\n } @else if $direction==bottom {\n #{$type}-bottom: #{$t-layout-spacing-bottom}#{$suffix};\n } @else if $direction==left {\n #{$type}-left: #{$t-layout-spacing-left}#{$suffix};\n }\n } @else if $device==mobile {\n @if $direction==all {\n #{$type}: #{$m-layout-spacing}#{$suffix};\n } @else if $direction==top {\n #{$type}-top: #{$m-layout-spacing-top}#{$suffix};\n } @else if $direction==right {\n #{$type}-right: #{$m-layout-spacing-right}#{$suffix};\n } @else if $direction==bottom {\n #{$type}-bottom: #{$m-layout-spacing-bottom}#{$suffix};\n } @else if $direction==left {\n #{$type}-left: #{$m-layout-spacing-left}#{$suffix};\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin button-variant($color, $background, $border, $hover) {\n color: $color;\n border-color: $border;\n background-color: $background;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n border-color: $hover;\n background-color: $hover;\n }\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n &[aria-disabled],\n fieldset[disabled] {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n border-color: $border;\n background-color: $background;\n }\n }\n // Button bordered\n &.btn-bordered {\n background-color: transparent;\n @if $color != $btn-default-color {\n color: $border;\n }\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open > &.dropdown-toggle {\n color: $color;\n border-color: $border;\n background-color: $border;\n }\n }\n // Button as link\n &.btn-link {\n text-decoration: none;\n border-color: transparent;\n background-color: transparent;\n @if $color != $btn-default-color {\n color: $background;\n }\n\n &:hover {\n border-color: $btn-link-bg-hover;\n background-color: $btn-link-bg-hover;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@mixin groupbox-variant($color, $background) {\n > .mx-groupbox-header {\n color: $color;\n border-color: $background;\n background: $background;\n }\n > .mx-groupbox-body {\n border-color: $background;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n@keyframes slideInUp {\n from {\n visibility: visible;\n transform: translate3d(0, 100%, 0);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.animated {\n animation-duration: 0.4s;\n animation-fill-mode: both;\n}\n\n.slideInUp {\n animation-name: slideInUp;\n}\n\n@keyframes slideInDown {\n from {\n visibility: visible;\n transform: translate3d(0, -100%, 0);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.slideInDown {\n animation-name: slideInDown;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Flex\n\n Flex classes\n========================================================================== */\n$important-flex-value: if($important-flex, ' !important', '');\n\n// Flex layout\n.flexcontainer {\n display: flex;\n overflow: hidden;\n flex: 1;\n flex-direction: row;\n\n .flexitem {\n margin-right: $gutter-size;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .flexitem-main {\n overflow: hidden;\n flex: 1;\n }\n}\n\n// These classes define the order of the children\n.flex-row {\n flex-direction: row #{$important-flex-value};\n}\n\n.flex-column {\n flex-direction: column #{$important-flex-value};\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse #{$important-flex-value};\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse #{$important-flex-value};\n}\n\n.flex-wrap {\n flex-wrap: wrap #{$important-flex-value};\n}\n\n.flex-nowrap {\n flex-wrap: nowrap #{$important-flex-value};\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse #{$important-flex-value};\n}\n\n// Align children in both directions\n.flex-center {\n align-items: center #{$important-flex-value};\n justify-content: center #{$important-flex-value};\n}\n\n// These classes define the alignment of the children\n.justify-content-start {\n justify-content: flex-start #{$important-flex-value};\n}\n\n.justify-content-end {\n justify-content: flex-end #{$important-flex-value};\n}\n\n.justify-content-center {\n justify-content: center #{$important-flex-value};\n}\n\n.justify-content-between {\n justify-content: space-between #{$important-flex-value};\n}\n\n.justify-content-around {\n justify-content: space-around #{$important-flex-value};\n}\n\n.justify-content-evenly {\n // Not Supported in IE11\n justify-content: space-evenly #{$important-flex-value};\n}\n\n.justify-content-stretch {\n justify-content: stretch #{$important-flex-value};\n}\n\n/// These classes define the alignment of the children in the cross-direction\n.align-children-start {\n align-items: flex-start #{$important-flex-value};\n}\n\n.align-children-end {\n align-items: flex-end #{$important-flex-value};\n}\n\n.align-children-center {\n align-items: center #{$important-flex-value};\n}\n\n.align-children-baseline {\n align-items: baseline #{$important-flex-value};\n}\n\n.align-children-stretch {\n align-items: stretch #{$important-flex-value};\n}\n\n/// These classes define the alignment of the rows of children in the cross-direction\n.align-content-start {\n align-content: flex-start #{$important-flex-value};\n}\n\n.align-content-end {\n align-content: flex-end #{$important-flex-value};\n}\n\n.align-content-center {\n align-content: center #{$important-flex-value};\n}\n\n.align-content-between {\n align-content: space-between #{$important-flex-value};\n}\n\n.align-content-around {\n align-content: space-around #{$important-flex-value};\n}\n\n.align-content-stretch {\n align-content: stretch #{$important-flex-value};\n}\n\n/// These classes allow the default alignment to be overridden for individual items\n.align-self-auto {\n align-self: auto #{$important-flex-value};\n}\n\n.align-self-start {\n align-self: flex-start #{$important-flex-value};\n}\n\n.align-self-end {\n align-self: flex-end #{$important-flex-value};\n}\n\n.align-self-center {\n align-self: center #{$important-flex-value};\n}\n\n.align-self-baseline {\n align-self: baseline #{$important-flex-value};\n}\n\n.align-self-stretch {\n align-self: stretch #{$important-flex-value};\n}\n\n/// These classes define the percentage of available free space within a flex container a flex item will take.\n@mixin flex-items($number) {\n @for $i from 1 through $number {\n .flexitem-#{$i} {\n flex: #{$i} #{$i} 1%;\n }\n }\n}\n\n@include flex-items($number: 12);\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Spacing\n\n Spacing classes\n========================================================================== */\n$important-spacing-value: if($important-spacing, ' !important', '');\n\n// Spacing none\n.spacing-inner-none {\n padding: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-top-none {\n padding-top: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-right-none {\n padding-right: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-bottom-none {\n padding-bottom: 0 #{$important-spacing-value};\n}\n\n.spacing-inner-left-none {\n padding-left: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-none {\n margin: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-top-none {\n margin-top: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-right-none {\n margin-right: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-bottom-none {\n margin-bottom: 0 #{$important-spacing-value};\n}\n\n.spacing-outer-left-none {\n margin-left: 0 #{$important-spacing-value};\n}\n\n// Spacing small\n.spacing-inner {\n padding: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-top {\n padding-top: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-right {\n padding-right: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-bottom {\n padding-bottom: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-inner-left {\n padding-left: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer {\n margin: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-top {\n margin-top: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-right {\n margin-right: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-bottom {\n margin-bottom: $spacing-small #{$important-spacing-value};\n}\n\n.spacing-outer-left {\n margin-left: $spacing-small #{$important-spacing-value};\n}\n\n// Spacing Medium\n.spacing-inner-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-top-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-right-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-bottom-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-left-medium {\n @include get-responsive-spacing-medium($type: padding, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-top-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-right-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-bottom-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-left-medium {\n @include get-responsive-spacing-medium($type: margin, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n// Spacing Large\n.spacing-inner-large {\n @include get-responsive-spacing-large($type: padding, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-top-large {\n @include get-responsive-spacing-large($type: padding, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-right-large {\n @include get-responsive-spacing-large($type: padding, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-bottom-large {\n @include get-responsive-spacing-large($type: padding, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-left-large {\n @include get-responsive-spacing-large($type: padding, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-large {\n @include get-responsive-spacing-large($type: margin, $direction: all, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-top-large {\n @include get-responsive-spacing-large($type: margin, $direction: top, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-right-large {\n @include get-responsive-spacing-large($type: margin, $direction: right, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-bottom-large {\n @include get-responsive-spacing-large($type: margin, $direction: bottom, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-left-large {\n @include get-responsive-spacing-large($type: margin, $direction: left, $is_important: #{$important-spacing-value});\n}\n\n// Spacing layouts\n.spacing-inner-layout {\n @include layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-top-layout {\n @include layout-spacing($type: padding, $direction: top, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-right-layout {\n @include layout-spacing($type: padding, $direction: right, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-bottom-layout {\n @include layout-spacing($type: padding, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-inner-left-layout {\n @include layout-spacing($type: padding, $direction: left, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-layout {\n @include layout-spacing($type: margin, $direction: all, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-top-layout {\n @include layout-spacing($type: margin, $direction: top, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-right-layout {\n @include layout-spacing($type: margin, $direction: right, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-bottom-layout {\n @include layout-spacing($type: margin, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value});\n}\n\n.spacing-outer-left-layout {\n @include layout-spacing($type: margin, $direction: left, $device: responsive, $is_important: #{$important-spacing-value});\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n// Basic styling Scroll container\n// .mx-scrollcontainer {\n// .mx-scrollcontainer-wrapper {\n// padding: 0;\n// // Convert width to max-width when in scroll container to make sure you dont get scrollbars\n// .mx-layoutgrid-fixed {\n// width: 100%;\n// margin: auto;\n// @media (min-width: $screen-md) {\n// max-width: 750px;\n// }\n// @media (min-width: $screen-lg) {\n// max-width: 970px;\n// }\n// @media (min-width: $screen-xl) {\n// max-width: 1170px;\n// }\n// }\n// }\n// }\n\n.mx-scrollcontainer .mx-placeholder {\n width: 100%;\n height: 100%;\n .mx-layoutgrid,\n .mx-layoutgrid-fluid {\n @include layout-spacing($type: padding, $direction: all, $device: responsive);\n .mx-layoutgrid,\n .mx-layoutgrid-fluid {\n padding: 0;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Base\n\n Default settings\n========================================================================== */\nhtml {\n height: 100%;\n}\n\nbody {\n min-height: 100%;\n color: $font-color-default;\n background-color: $bg-color;\n font-family: $font-family-base;\n font-size: $font-size-default;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n}\n\na {\n -moz-transition: 0.25s;\n -o-transition: 0.25s;\n -webkit-transition: 0.25s;\n transition: 0.25s;\n color: $link-color;\n -webkit-backface-visibility: hidden;\n}\n\na:hover {\n text-decoration: underline;\n color: $link-hover-color;\n}\n\n// Address `outline` inconsistency between Chrome and other browsers.\na:focus {\n outline: thin dotted;\n}\n\n// Improve readability when focused and also mouse hovered in all browsers\na:active,\na:hover {\n outline: 0;\n}\n\n// Removes large blue border in chrome on focus and active states\ninput:focus,\nbutton:focus,\n.mx-link:focus {\n outline: 0;\n}\n\n// Removes large blue border for tabindexes from widgets\ndiv[tabindex] {\n outline: 0;\n}\n\n// Disabled State\n.disabled,\n[disabled] {\n cursor: not-allowed;\n // opacity: 0.65;\n -webkit-box-shadow: none;\n box-shadow: none;\n filter: alpha(opacity=65);\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\nbody {\n height: 100%;\n}\n\n.loginpage {\n display: flex;\n height: 100%;\n}\n.loginpage-logo {\n position: absolute;\n top: 30px;\n right: 30px;\n width: 120px;\n}\n\n.loginpage-left {\n display: none;\n}\n\n.loginpage-right {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-around;\n}\n.loginpage-formwrapper {\n width: 400px;\n margin: 0 auto;\n}\n// Form\n.loginpage-form {\n .alert {\n display: none;\n }\n\n .btn {\n border-radius: 40px;\n }\n\n // Form label + input\n .form-group {\n width: 100%;\n align-items: center;\n\n .control-label {\n flex: 4;\n margin-bottom: 0;\n font-size: $font-size-default;\n font-weight: 500;\n }\n\n .inputwrapper {\n flex: 8;\n position: relative;\n width: 100%;\n\n .glyphicon {\n &:before {\n -webkit-transition: color 0.4s;\n -moz-transition: color 0.4s;\n -o-transition: color 0.4s;\n transition: color 0.4s;\n }\n\n position: absolute;\n top: 50%;\n left: $form-input-padding-x;\n -webkit-transform: translateY(-50%);\n -moz-transform: translateY(-50%);\n -ms-transform: translateY(-50%);\n -o-transform: translateY(-50%);\n transform: translateY(-50%);\n\n &-eye-open:hover,\n &-eye-close:hover {\n cursor: pointer;\n color: $brand-primary;\n }\n }\n\n .form-control {\n padding: $form-input-padding-y $form-input-padding-x $form-input-padding-y 45px;\n }\n\n .form-control:focus ~ .glyphicon:before {\n color: $brand-primary;\n }\n }\n }\n}\n// Divider - only on login-with-sso.html\n.loginpage-alternativelabel {\n display: flex;\n align-items: center;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n margin: 25px 0px;\n\n hr {\n flex: 1;\n margin: 20px 0 20px 10px;\n border: 0;\n border-color: #d8d8d8;\n border-top: 1px solid #eeeeee;\n }\n}\n\n.loginpage-signin {\n color: #555555;\n}\n\n// Show only on wide screens\n@media screen and (min-width: $screen-xl) {\n .loginpage-logo {\n width: 150px;\n }\n\n .loginpage-left {\n position: relative;\n display: block;\n flex: 1;\n width: 100%;\n height: 100%;\n }\n // Image and clipping mask\n .loginpage-image {\n height: 100%;\n animation: makePointer 1s ease-out both;\n background: left / cover no-repeat url('../../../resources/work-do-more.jpeg'); // Microsoft EDGE\n background: left / cover no-repeat\n linear-gradient(to right, rgba($brand-primary, 0.9) 0%, rgba($brand-primary, 0.6) 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -moz-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -webkit-gradient(linear, left bottom, right bottom, color-stop(0%, rgba($brand-primary, 0.9)), color-stop(100%, rgba($brand-primary, 0.6))),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -webkit-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -o-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n background: left / cover no-repeat -ms-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba(\n $brand-primary,\n 0.6\n )\n 100%),\n left / cover no-repeat url('../../../resources/work-do-more.jpeg');\n -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%);\n }\n\n .loginpage-formwrapper {\n width: 400px;\n }\n}\n\n// Animate image clipping mask\n@keyframes makePointer {\n 100% {\n -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n }\n}\n@-webkit-keyframes makePointer {\n 100% {\n -webkit-clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Inputs\n\n The form-control class style all inputs\n========================================================================== */\n.form-control {\n display: flex;\n flex: 1;\n min-width: 50px;\n height: $form-input-height;\n padding: $form-input-padding-y $form-input-padding-x;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n color: $form-input-color;\n border: 1px solid $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: $form-input-bg;\n background-image: none;\n box-shadow: none;\n font-size: $form-input-font-size;\n line-height: $form-input-line-height;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n @if $form-input-style==lined {\n @extend .form-control-lined;\n }\n}\n\n.form-control:not([readonly]):focus {\n border-color: $form-input-border-focus-color;\n outline: 0;\n background-color: $form-input-bg-focus;\n box-shadow: none;\n}\n\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n opacity: 1;\n background-color: #EEEEEE;\n}\n\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\n\n// Lined\n.form-control-lined {\n border: 0;\n border-bottom: 1px solid $form-input-border-color;\n border-radius: 0;\n background-color: transparent;\n\n &:focus {\n background-color: transparent;\n }\n}\n\n// Read only form control class\n.form-control-static {\n overflow: hidden;\n flex: 1;\n min-height: auto;\n padding: $form-input-padding-y $form-input-padding-x;\n border-bottom: 1px solid $form-input-static-border-color;\n font-size: $form-input-font-size;\n line-height: $form-input-line-height;\n\n & + .control-label {\n margin-left: $form-label-gutter;\n }\n}\n\n// Dropdown input widget\nselect.form-control {\n $arrow: \"data:image/svg+xml;utf8,\";\n padding-right: 30px;\n background-image: url($arrow);\n background-repeat: no-repeat;\n background-position: calc(100% - #{$form-input-padding-x}) center;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n.form-control.mx-selectbox {\n align-items: center;\n flex-direction: row-reverse;\n justify-content: space-between;\n}\n\n// Not editable textarea, textarea will be rendered as a label\n.mx-textarea .control-label {\n height: auto;\n}\n\ntextarea.form-control {\n flex-basis: auto;\n}\n\n.mx-compound-control {\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n max-width: 100%;\n\n .mx-validation-message {\n flex-basis: 100%;\n margin-top: 5px;\n }\n}\n\n// Form Group\n.form-group {\n display: flex;\n flex-direction: row;\n margin-bottom: $form-group-margin-bottom;\n\n & > div[class*='col-'] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n\n & > [class*='col-'] {\n padding-right: $form-group-gutter;\n padding-left: $form-group-gutter;\n }\n\n // Alignment content\n div[class*='textBox'] > .control-label,\n div[class*='textArea'] > .control-label,\n div[class*='datePicker'] > .control-label {\n @extend .form-control-static;\n }\n\n // Label\n .control-label {\n overflow: hidden;\n margin-bottom: 5px;\n text-overflow: ellipsis;\n color: $form-label-color;\n font-size: $form-label-size;\n font-weight: $form-label-weight;\n }\n\n .mx-validation-message {\n flex-basis: 100%;\n }\n\n &.no-columns:not(.label-after) {\n flex-direction: column;\n }\n}\n\n.form-group.label-after {\n .form-control-static {\n flex: unset;\n }\n\n .control-label {\n margin-bottom: 0;\n }\n}\n\n.mx-dateinput,\n.mx-referenceselector,\n.mx-referencesetselector {\n flex: 1;\n}\n\n// Targets only webkit iOS devices\n.dj_webkit.dj_ios .form-control {\n transform: translateZ(0);\n}\n\n@media only screen and (min-width: $screen-md) {\n .form-horizontal {\n .control-label {\n margin-bottom: 0;\n padding-top: $form-input-padding-y;\n padding-bottom: $form-input-padding-y;\n line-height: $form-input-line-height;\n }\n }\n}\n\n@media only screen and (max-width: $screen-sm-max) {\n .form-group {\n flex-direction: column;\n }\n}\n\n@media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) {\n // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically\n input[type='date'],\n input[type='time'],\n input[type='datetime-local'],\n input[type='month'] {\n line-height: 1;\n }\n // Fix shrinking of date inputs because inability of setting a placeholder\n input[type='time']:not(.has-value):before,\n input[type='date']:not(.has-value):before,\n input[type='month']:not(.has-value):before,\n input[type='datetime-local']:not(.has-value):before {\n margin-right: 0.5em;\n content: attr(placeholder) !important;\n color: #AAAAAA;\n }\n input[type='time'].has-value:before,\n input[type='date'].has-value:before,\n input[type='month'].has-value:before,\n input[type='datetime-local'].has-value:before {\n content: '' !important;\n }\n}\n\n@media (-ms-high-contrast: none), (-ms-high-contrast: active) {\n // Target IE10+\n .form-group {\n display: block;\n }\n}\n\n[dir='rtl'] {\n // Dropdown input widget\n select.form-control {\n padding-right: 30px;\n padding-left: 0;\n background-position: #{$form-input-padding-x} center;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Alerts\n\n Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages\n========================================================================== */\n\n.alert {\n margin-top: 0; // want to align it with padding of a page\n padding: 15px;\n border: 0;\n border-radius: 4px;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Alerts\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n.alert-bordered {\n border: 1px solid;\n}\n\n// Color variations\n.alert-success {\n color: $alert-success-color;\n border-color: $alert-success-border-color;\n background-color: $alert-success-bg;\n}\n\n.alert-info {\n color: $alert-info-color;\n border-color: $alert-info-border-color;\n background-color: $alert-info-bg;\n}\n\n.alert-warning {\n color: $alert-warning-color;\n border-color: $alert-warning-border-color;\n background-color: $alert-warning-bg;\n}\n\n.alert-danger {\n color: $alert-danger-color;\n border-color: $alert-danger-border-color;\n background-color: $alert-danger-bg;\n}\n\n//== State\n//## Styling when component is in certain state\n//-------------------------------------------------------------------------------------------------------------------//\n.has-error .alert {\n margin-top: 8px;\n margin-bottom: 0;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Backgrounds\n\n Different background components, all managed by variables\n========================================================================== */\n\n.background-main {\n background-color: $bg-color !important;\n}\n\n.background-secondary {\n background-color: $bg-color-secondary !important;\n}\n\n.background-default {\n background-color: $brand-default !important;\n}\n\n.background-default-darker {\n background-color: $color-default-darker !important;\n}\n\n.background-default-dark {\n background-color: $color-default-dark !important;\n}\n\n.background-default-light {\n background-color: $color-default-light !important;\n}\n\n.background-default-lighter {\n background-color: $color-default-lighter !important;\n}\n\n.background-inverse {\n background-color: $brand-inverse !important;\n}\n\n.background-inverse-darker {\n background-color: $color-inverse-darker !important;\n}\n\n.background-inverse-dark {\n background-color: $color-inverse-dark !important;\n}\n\n.background-inverse-light {\n background-color: $color-inverse-light !important;\n}\n\n.background-inverse-lighter {\n background-color: $color-inverse-lighter !important;\n}\n\n.background-primary {\n background-color: $brand-primary !important;\n}\n\n.background-primary-darker {\n background-color: $color-primary-darker !important;\n}\n\n.background-primary-dark {\n background-color: $color-primary-dark !important;\n}\n\n.background-primary-light {\n background-color: $color-primary-light !important;\n}\n\n.background-primary-lighter {\n background-color: $color-primary-lighter !important;\n}\n\n.background-info {\n background-color: $brand-info !important;\n}\n\n.background-info-darker {\n background-color: $color-info-darker !important;\n}\n\n.background-info-dark {\n background-color: $color-info-dark !important;\n}\n\n.background-info-light {\n background-color: $color-info-light !important;\n}\n\n.background-info-lighter {\n background-color: $color-info-lighter !important;\n}\n\n.background-success {\n background-color: $brand-success !important;\n}\n\n.background-success-darker {\n background-color: $color-success-darker !important;\n}\n\n.background-success-dark {\n background-color: $color-success-dark !important;\n}\n\n.background-success-light {\n background-color: $color-success-light !important;\n}\n\n.background-success-lighter {\n background-color: $color-success-lighter !important;\n}\n\n.background-warning {\n background-color: $brand-warning !important;\n}\n\n.background-warning-darker {\n background-color: $color-warning-darker !important;\n}\n\n.background-warning-dark {\n background-color: $color-warning-dark !important;\n}\n\n.background-warning-light {\n background-color: $color-warning-light !important;\n}\n\n.background-warning-lighter {\n background-color: $color-warning-lighter !important;\n}\n\n.background-danger {\n background-color: $brand-danger !important;\n}\n\n.background-danger-darker {\n background-color: $color-danger-darker !important;\n}\n\n.background-danger-dark {\n background-color: $color-danger-dark !important;\n}\n\n.background-danger-light {\n background-color: $color-danger-light !important;\n}\n\n.background-danger-lighter {\n background-color: $color-danger-lighter !important;\n}\n\n.background-brand-gradient {\n background-image: $brand-gradient !important;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Buttons\n\n Default Bootstrap and Mendix Buttons\n========================================================================== */\n\n.btn,\n.mx-button {\n display: inline-block;\n margin-bottom: 0;\n padding: 0.6em 1em;\n cursor: pointer;\n -moz-user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n -moz-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n -webkit-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n text-align: center;\n vertical-align: middle;\n white-space: nowrap;\n color: $btn-default-color;\n border: 1px solid $btn-default-border-color;\n border-radius: $btn-border-radius;\n background-color: $btn-default-bg;\n background-image: none;\n box-shadow: none;\n text-shadow: none;\n font-size: $btn-font-size;\n line-height: $line-height-base;\n\n &:hover,\n &:focus,\n &:active,\n &:active:focus {\n outline: none;\n box-shadow: none;\n }\n\n &[aria-disabled] {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n filter: alpha(opacity=65);\n }\n\n @if $btn-bordered != false {\n @extend .btn-bordered;\n }\n}\n\n// Mendix button link\n.mx-link {\n padding: 0;\n color: $link-color;\n\n &[aria-disabled='true'] {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 0.65;\n filter: alpha(opacity=65);\n }\n}\n\n// Images and icons in buttons\n.btn,\n.mx-button,\n.mx-link {\n img {\n //height: auto; // MXUI override who set the height on 16px default\n height: $font-size-default + 4px;\n margin-right: 5px;\n vertical-align: text-top;\n }\n}\n\n//== Phone specific\n//-------------------------------------------------------------------------------------------------------------------//\n.profile-phone {\n .btn,\n .mx-link {\n &:active {\n -webkit-transform: translateY(1px);\n transform: translateY(1px);\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Buttons\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Color variations\n.btn,\n.btn-default {\n @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover);\n}\n\n.btn-primary {\n @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover);\n}\n\n.btn-inverse {\n @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover);\n}\n\n.btn-success {\n @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover);\n}\n\n.btn-info {\n @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover);\n}\n\n.btn-warning {\n @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover);\n}\n\n.btn-danger {\n @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover);\n}\n\n// Button Sizes\n.btn-lg {\n font-size: $font-size-large;\n img {\n height: calc(#{$font-size-small} + 4px);\n }\n}\n\n.btn-sm {\n font-size: $font-size-small;\n img {\n height: calc(#{$font-size-small} + 4px);\n }\n}\n\n// Button Image\n.btn-image {\n padding: 0;\n vertical-align: middle;\n border-style: none;\n background-color: transparent;\n img {\n display: block; // or else the button doesn't get a width\n height: auto; // Image set height\n }\n &:hover,\n &:focus {\n background-color: transparent;\n }\n}\n\n// Icon buttons\n.btn-icon {\n & > img,\n & > .glyphicon {\n margin: 0;\n }\n}\n\n.btn-icon-right {\n & > img,\n & > .glyphicon {\n float: right;\n margin-left: 5px;\n }\n}\n\n.btn-icon-top {\n padding-right: 0;\n padding-left: 0;\n & > img,\n & > .glyphicon {\n display: block;\n margin: 0 0 5px 0;\n }\n}\n\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Checkbox\n\n Default Mendix Checkbox Widget\n========================================================================== */\n\n.mx-checkbox.label-after {\n flex-wrap: wrap;\n\n .control-label {\n padding: 0;\n }\n}\n\ninput[type='checkbox'] {\n position: relative !important; //Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0 !important; // Remove after mxui merge\n cursor: pointer;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n\n &::-ms-check {\n color: $form-input-border-color;\n border-color: $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: $form-input-bg;\n }\n\n &:focus::-ms-check,\n &:checked::-ms-check {\n color: $form-input-border-focus-color;\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg-focus;\n }\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease;\n }\n\n &:before {\n // Checkbox\n width: 100%;\n height: 100%;\n content: '';\n border: 1px solid $form-input-border-color;\n border-radius: $form-input-border-radius;\n background-color: transparent;\n }\n\n &:after {\n // Checkmark\n width: 8px;\n height: 4px;\n margin: 5px 4px;\n transform: rotate(-45deg);\n pointer-events: none;\n border: 2px solid #FFFFFF;\n border-top: 0;\n border-right: 0;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n content: '';\n border-color: $form-input-bg-hover; // color of checkmark on hover\n }\n\n &:checked:before {\n border-color: $form-input-border-focus-color;\n background-color: $form-input-border-focus-color;\n }\n\n &:checked:after {\n content: '';\n }\n\n &:disabled:before {\n background-color: $form-input-bg-disabled;\n }\n\n &:checked:disabled:before {\n border-color: transparent;\n background-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n &:disabled:after,\n &:checked:disabled:after {\n border-color: $form-input-bg-disabled;\n }\n\n & + .control-label {\n margin-left: $form-label-gutter;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Grid\n\n Default Mendix Grid (used for Mendix Datagrid)\n========================================================================== */\n\n.mx-grid {\n padding: 0px;\n border: 0;\n border-radius: 0;\n .mx-grid-controlbar {\n margin: 10px 0;\n /* Paging */\n .mx-grid-pagingbar {\n /* Buttons */\n .mx-button {\n padding: 6px;\n color: $grid-paging-color;\n border-color: $grid-paging-border-color;\n background-color: $grid-paging-bg;\n &:hover {\n color: $grid-paging-color-hover;\n border-color: $grid-paging-border-color-hover;\n background-color: $grid-paging-bg-hover;\n }\n }\n /* Text Paging .. to .. to .. */\n .mx-grid-paging-status {\n padding: 0 8px 8px;\n }\n }\n }\n .mx-grid-searchbar {\n margin: 10px 0;\n .mx-grid-search-item {\n .mx-grid-search-label {\n vertical-align: middle;\n label {\n padding-top: 5px;\n }\n }\n .mx-grid-search-input {\n display: inline-flex;\n .form-control {\n height: 28px;\n font-size: 11px;\n }\n select.form-control {\n padding: 3px;\n vertical-align: middle;\n }\n .mx-button {\n height: 28px;\n padding-top: 2px;\n padding-bottom: 2px;\n }\n }\n }\n }\n}\n\n// Remove default border from grid inside a Mendix Dataview\n.mx-dataview .mx-grid {\n border: 0;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Datagrid Default\n\n Default Mendix Datagrid Widget. The datagrid shows a list of objects in a grid\n========================================================================== */\n\n.mx-datagrid {\n table {\n border-width: 0;\n background-color: transparent;\n /* Table header */\n th {\n border-style: solid;\n border-color: $grid-border-color;\n border-top-width: 0;\n border-right: 0;\n border-bottom-width: 1px;\n border-left: 0;\n background-color: $grid-bg-header;\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n vertical-align: middle;\n .mx-datagrid-head-caption {\n white-space: normal;\n }\n }\n /* Table Body */\n tbody tr {\n td {\n @include transition();\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n vertical-align: middle;\n border-width: 0;\n border-color: $grid-border-color;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n background-color: $grid-bg;\n &:focus {\n outline: none;\n }\n /* Text without spaces */\n .mx-datagrid-data-wrapper {\n text-overflow: ellipsis;\n }\n }\n &.selected td,\n &.selected:hover td {\n color: $grid-selected-color;\n background-color: $grid-bg-selected !important;\n }\n }\n /* Table Footer */\n tfoot {\n > tr > th {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 0;\n background-color: $grid-footer-bg;\n }\n > tr > td {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 0;\n background-color: $grid-bg;\n font-weight: $font-weight-bold;\n }\n }\n & *:focus {\n outline: 0;\n }\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Datagrid Default\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Striped style\n.datagrid-striped.mx-datagrid {\n table {\n th {\n border-width: 0;\n }\n\n tbody tr {\n td {\n border-top-width: 0;\n }\n\n &:nth-child(odd) td {\n background-color: $grid-bg-striped;\n }\n }\n }\n}\n\n// Bordered style\n.datagrid-bordered.mx-datagrid {\n table {\n border: 1px solid;\n\n th {\n border: 1px solid $grid-border-color;\n }\n\n tbody tr {\n td {\n border: 1px solid $grid-border-color;\n }\n }\n }\n\n tfoot {\n > tr > th {\n border-width: 0;\n background-color: $grid-footer-bg;\n }\n\n > tr > td {\n border-width: 1px;\n }\n }\n}\n\n// Transparent style so you can see the background\n.datagrid-transparent.mx-datagrid {\n table {\n background-color: transparent;\n\n tbody tr {\n &:nth-of-type(odd) {\n background-color: transparent;\n }\n\n td {\n background-color: transparent;\n }\n }\n }\n}\n\n// Hover style activated\n.datagrid-hover.mx-datagrid {\n table {\n tbody tr {\n &:hover td {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected:hover td {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n}\n\n// Datagrid Row Sizes\n.datagrid-lg.mx-datagrid {\n table {\n th {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n\n tbody tr {\n td {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n }\n }\n}\n\n.datagrid-sm.mx-datagrid {\n table {\n th {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2);\n }\n\n tbody tr {\n td {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left/ 2);\n }\n }\n }\n}\n\n// Datagrid Full Search\n// Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed\n.datagrid-fullsearch.mx-grid {\n .mx-grid-search-button {\n @extend .btn-primary;\n }\n\n .mx-grid-reset-button {\n display: none;\n }\n\n .mx-grid-search-item {\n display: block;\n }\n\n .mx-grid-search-label {\n display: none;\n }\n\n .mx-grid-searchbar {\n .mx-grid-search-controls {\n position: absolute;\n right: 0;\n }\n\n .mx-grid-search-input {\n width: 80%;\n padding-left: 0;\n\n .btn,\n .form-control {\n height: 35px;\n font-size: 12px;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Dataview\n\n Default Mendix Dataview Widget. The data view is used for showing the contents of exactly one object\n========================================================================== */\n\n.mx-dataview {\n /* Control bar */\n .mx-dataview-controls {\n // Needed to clear the bootstrap columns (get float: left)\n clear: both;\n margin-top: 10px;\n padding: 8px 0;\n border-top: 1px solid $dataview-controls-border-color;\n border-radius: 0;\n background-color: $dataview-controls-bg;\n /* Buttons */\n .mx-button {\n margin-right: 0.3em;\n margin-bottom: 0;\n &:last-child {\n margin-right: 0;\n }\n }\n }\n /* Dataview-content gives problems for nexted layout grid containers */\n > .mx-dataview-content > .mx-container-nested {\n > .row {\n margin-right: 0;\n margin-left: 0;\n }\n }\n /* Dataview empty message */\n .mx-dataview-message {\n color: $dataview-emptymessage-color;\n background: $dataview-emptymessage-bg;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Date Picker\n \n Default Mendix Date Picker Widget.\n========================================================================== */\n\n.mx-calendar {\n /* (must be higher than popup z-index) */\n z-index: 10010 !important;\n padding: 10px;\n font-size: 12px;\n background: $bg-color;\n border-radius: $border-radius-default;\n border: 1px solid $border-color-default;\n box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06);\n .mx-calendar-month-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin: 0 3px 10px 3px;\n }\n .mx-calendar-month-next,\n .mx-calendar-month-previous,\n .mx-calendar-month-dropdown {\n border: 0;\n cursor: pointer;\n background: transparent;\n }\n .mx-calendar-month-next,\n .mx-calendar-month-previous {\n &:hover {\n color: $brand-primary;\n }\n }\n .mx-calendar-month-dropdown {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n .mx-calendar-month-current:first-child {\n margin-right: 10px;\n }\n }\n th {\n color: $brand-primary;\n }\n th,\n td {\n width: 35px;\n height: 35px;\n text-align: center;\n }\n td {\n color: $font-color-default;\n\n &:hover {\n cursor: pointer;\n border-radius: 50%;\n color: $brand-primary;\n background-color: $brand-default;\n }\n }\n .mx-calendar-day-month-next,\n .mx-calendar-day-month-previous {\n color: lighten($font-color-default, 45%);\n }\n .mx-calendar-day-selected,\n .mx-calendar-day-selected:hover {\n color: #fff;\n border-radius: 50%;\n background: $brand-primary;\n }\n\n //\n\n .mx-calendar-year-switcher {\n text-align: center;\n margin-top: 10px;\n color: lighten($brand-primary, 30%);\n span.mx-calendar-year-selected {\n color: $brand-primary;\n margin-left: 10px;\n margin-right: 10px;\n }\n span:hover {\n cursor: pointer;\n text-decoration: underline;\n background-color: transparent;\n }\n }\n}\n\n.mx-calendar-month-dropdown-options {\n /* (must be higher than popup z-index) */\n z-index: 10020 !important;\n position: absolute;\n top: 25px;\n padding: 2px 10px;\n border-radius: $border-radius-default;\n background-color: $bg-color;\n div {\n cursor: pointer;\n font-size: 12px;\n padding: 2px 0;\n &:hover,\n &:focus {\n color: $brand-primary;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Header\n\n Default Mendix Mobile Header\n========================================================================== */\n\n.mx-header {\n z-index: 100;\n display: flex;\n width: 100%;\n height: $m-header-height;\n padding: 0;\n text-align: initial;\n color: $m-header-color;\n border-bottom: 1px solid $border-color-default;\n background-color: $m-header-bg;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n // Reset mxui\n div.mx-header-left,\n div.mx-header-right {\n position: relative;\n top: initial;\n right: initial;\n left: initial;\n display: flex;\n align-items: center;\n width: 25%;\n height: 100%;\n .mx-placeholder {\n display: flex;\n align-items: center;\n height: 100%;\n }\n }\n\n div.mx-header-left .mx-placeholder {\n order: 1;\n .mx-placeholder {\n justify-content: flex-start;\n }\n }\n div.mx-header-center {\n overflow: hidden;\n flex: 1;\n order: 2;\n text-align: center;\n\n .mx-title {\n overflow: hidden;\n width: 100%;\n margin: 0;\n text-overflow: ellipsis;\n color: $m-header-color;\n font-size: $m-header-title-size;\n line-height: $m-header-height;\n }\n }\n div.mx-header-right {\n order: 3;\n .mx-placeholder {\n justify-content: flex-end;\n }\n }\n\n // Content magic\n .mx-link {\n display: flex;\n align-items: center;\n height: 100%;\n -webkit-transition: all 0.2s;\n -moz-transition: all 0.2s;\n transition: all 0.2s;\n text-decoration: none;\n .glyphicon {\n top: 0;\n font-size: 23px;\n }\n &:active {\n -webkit-transform: translateY(1px);\n transform: translateY(1px);\n color: $link-hover-color;\n }\n }\n\n .mx-link,\n .btn,\n img {\n padding: 0 8px;\n }\n\n .mx-sidebartoggle {\n font-size: 24px;\n line-height: $m-header-height;\n img {\n height: 20px;\n }\n }\n}\n\n// RTL support\nbody[dir='rtl'] {\n .mx-header-left {\n order: 3;\n }\n .mx-header-right {\n order: 1;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Glyphicons\n\n Default Mendix Glyphicons\n========================================================================== */\n\n.mx-glyphicon {\n &:before {\n display: inline-block;\n margin-top: -0.2em;\n margin-right: 0.4555555em;\n vertical-align: middle;\n font-family: \"Glyphicons Halflings\";\n font-weight: $font-weight-normal;\n font-style: normal;\n line-height: inherit;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Groupbox\n\n Default Mendix Groupboxes\n========================================================================== */\n\n.mx-groupbox {\n margin: 0;\n > .mx-groupbox-header {\n margin: 0;\n color: $groupbox-default-color;\n border-width: 1px 1px 0 1px;\n border-style: solid;\n border-color: $groupbox-default-bg;\n background: $groupbox-default-bg;\n font-size: $font-size-h5;\n .mx-groupbox-collapse-icon {\n margin-top: 0.1em;\n }\n }\n > .mx-groupbox-body {\n padding: 10px 15px;\n border-width: 1px;\n border-style: solid;\n border-color: $groupbox-default-bg;\n background-color: #FFFFFF;\n }\n .mx-groupbox-header + .mx-groupbox-body {\n border-top: none;\n }\n &.collapsed > .mx-groupbox-header {\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Groupbox\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Color variations\n.groupbox-default {\n @include groupbox-variant($groupbox-default-color, $groupbox-default-bg);\n}\n\n.groupbox-primary {\n @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg);\n}\n\n.groupbox-inverse {\n @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg);\n}\n\n// Success appears as green\n.groupbox-success {\n @include groupbox-variant($groupbox-success-color, $groupbox-success-bg);\n}\n\n// Info appears as blue-green\n.groupbox-info {\n @include groupbox-variant($groupbox-info-color, $groupbox-info-bg);\n}\n\n// Warning appears as orange\n.groupbox-warning {\n @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg);\n}\n\n// Danger and error appear as red\n.groupbox-danger {\n @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg);\n}\n\n// white appears as full white\n.groupbox-white {\n @include groupbox-variant($groupbox-white-color, $groupbox-white-bg);\n}\n\n.groupbox-transparent {\n border-bottom: 1px solid $border-color-default;\n > .mx-groupbox-header {\n padding: 15px 0;\n color: $gray-darker;\n border-style: none;\n background: transparent;\n font-size: 16px;\n font-weight: $font-weight-semibold;\n }\n .mx-groupbox-body {\n padding: 15px 0;\n border-style: none;\n background-color: transparent;\n }\n .mx-groupbox-collapse-icon {\n color: $brand-primary;\n }\n}\n\n// Header options\n.groupbox-h1 > .mx-groupbox-header {\n font-size: $font-size-h1;\n}\n\n.groupbox-h2 > .mx-groupbox-header {\n font-size: $font-size-h2;\n}\n\n.groupbox-h3 > .mx-groupbox-header {\n font-size: $font-size-h3;\n}\n\n.groupbox-h4 > .mx-groupbox-header {\n font-size: $font-size-h4;\n}\n\n.groupbox-h5 > .mx-groupbox-header {\n font-size: $font-size-h5;\n}\n\n.groupbox-h6 > .mx-groupbox-header {\n font-size: $font-size-h6;\n}\n\n// Callout Look and Feel\n.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n border: 0;\n background-color: $callout-info-bg;\n }\n .mx-groupbox-header + .mx-groupbox-body {\n padding-top: 0;\n }\n}\n\n.groupbox-info.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-info-bg;\n }\n > .mx-groupbox-header {\n color: $callout-info-color;\n }\n}\n\n.groupbox-success.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-success-bg;\n }\n > .mx-groupbox-header {\n color: $callout-success-color;\n }\n}\n\n.groupbox-warning.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-warning-bg;\n }\n > .mx-groupbox-header {\n color: $callout-warning-color;\n }\n}\n\n.groupbox-danger.groupbox-callout {\n > .mx-groupbox-header,\n > .mx-groupbox-body {\n background-color: $callout-danger-bg;\n }\n > .mx-groupbox-header {\n color: $callout-danger-color;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Images\n\n Default Mendix Image Widgets\n========================================================================== */\n\nimg.img-rounded,\n.img-rounded img {\n border-radius: 6px;\n}\n\nimg.img-thumbnail,\n.img-thumbnail img {\n display: inline-block;\n max-width: 100%;\n height: auto;\n padding: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -moz-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n border: 1px solid $brand-default;\n border-radius: 4px;\n background-color: #FFFFFF;\n line-height: $line-height-base;\n}\n\nimg.img-circle,\n.img-circle img {\n border-radius: 50%;\n}\n\nimg.img-auto,\n.img-auto img {\n width: auto !important;\n max-width: 100% !important;\n height: auto !important;\n max-height: 100% !important;\n}\n\nimg.img-center,\n.img-center img {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Labels\n\n Default labels combined with Bootstrap labels\n========================================================================== */\n\n.label {\n display: inline-block;\n padding: 0.2em 0.6em 0.3em;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n color: #ffffff;\n border-radius: 0.25em;\n font-size: 100%;\n line-height: 1;\n margin: 0;\n\n .form-control-static {\n all: unset;\n font-weight: $font-weight-normal;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Labels\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Color variations\n.label-default {\n color: $label-default-color;\n background-color: $label-default-bg;\n}\n\n.label-primary {\n color: $label-primary-color;\n background-color: $label-primary-bg;\n}\n\n.label-success {\n color: $label-success-color;\n background-color: $label-success-bg;\n}\n\n.label-inverse {\n color: $label-inverse-color;\n background-color: $label-inverse-bg;\n}\n\n.label-info {\n color: $label-info-color;\n background-color: $label-info-bg;\n}\n\n.label-warning {\n color: $label-warning-color;\n background-color: $label-warning-bg;\n}\n\n.label-danger {\n color: $label-danger-color;\n background-color: $label-danger-bg;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Listview\n\n Default Mendix Listview Widget. The list view shows a list of objects arranged vertically. Each object is shown using a template\n========================================================================== */\n.mx-listview {\n // Remove widget padding\n padding: 0;\n /* Clear search button (overrides load more button stying) */\n // Search bar\n .mx-listview-searchbar {\n margin-bottom: $gutter-size;\n\n .btn {\n width: auto;\n }\n }\n\n /* Load more button */\n & > .btn {\n width: 100%;\n margin: 10px auto;\n }\n\n & > ul {\n margin: 0;\n\n .mx-listview-empty {\n border-style: none;\n background-color: transparent;\n }\n\n & > li {\n @include transition();\n padding: $listview-padding-top $listview-padding-right $listview-padding-bottom $listview-padding-left;\n border-width: 1px 0 0 0;\n border-style: solid;\n border-color: $grid-border-color;\n background-color: $grid-bg;\n\n &:first-child {\n border-radius: 0; // Reset mxui listview style\n }\n\n &:last-child {\n border-bottom: 1px solid $grid-border-color;\n border-radius: 0; // Reset mxui listview style\n }\n\n &:focus,\n &:active {\n outline: 0;\n background-color: $grid-bg-hover;\n }\n\n &.selected {\n background-color: $grid-bg-selected;\n }\n }\n }\n\n .mx-layoutgrid {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n}\n\n//== Phone specific\n//-------------------------------------------------------------------------------------------------------------------//\n.profile-phone .mx-listview {\n .mx-listview-searchbar {\n margin-bottom: 3px;\n background: #FFFFFF;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n input {\n padding: 14px 15px;\n color: #555555;\n border-style: none;\n border-radius: 0;\n box-shadow: none;\n }\n\n .btn {\n padding: 14px 15px;\n color: inherit;\n border-style: none;\n }\n }\n\n & > ul > li {\n &:first-child {\n border-top: none;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Listview\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Bordered\n.listview-bordered.mx-listview {\n & > ul > li {\n border: 1px solid $grid-border-color;\n border-top: 0;\n\n &:first-child {\n border-top: 1px solid $grid-border-color;\n border-radius: 0;\n }\n\n &:last-child {\n border-radius: 0;\n }\n }\n}\n\n// Striped\n.listview-striped.mx-listview {\n & > ul > li:nth-child(2n + 1) {\n background-color: $grid-bg-striped;\n }\n}\n\n// Items as seperated blocks\n.listview-seperated.mx-listview {\n & > ul > li {\n margin-bottom: $gutter-size;\n border-width: 1px;\n border-style: solid;\n border-radius: $border-radius-default;\n }\n}\n\n// Remove all styling\n.listview-stylingless.mx-listview {\n & > ul > li {\n padding: 0;\n cursor: default;\n border: 0;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background-color: transparent;\n }\n\n &.selected {\n background-color: transparent !important;\n\n &:hover,\n &:focus,\n &:active {\n background-color: transparent !important;\n }\n }\n }\n}\n\n// Hover style activated\n.listview-hover.mx-listview {\n & > ul > li {\n &:hover,\n &:focus,\n &:active {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected {\n &:hover,\n &:focus,\n &:active {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n}\n\n// Templategrid Row Sizes\n.listview-lg.mx-listview {\n & > ul > li {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n}\n\n.listview-sm.mx-listview {\n & > ul > li {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2);\n }\n}\n\n// Bootstrap columns\n.mx-listview[class*='lv-col'] {\n overflow: hidden; // For if it is not in a layout, to prevent scrollbars\n & > ul {\n display: block; // normal a table\n margin-right: -1 * $gutter-size;\n margin-left: -1 * $gutter-size;\n\n &::before,\n &::after {\n // clearfix\n display: table;\n clear: both;\n content: ' ';\n }\n\n & > li {\n // bootstrap col\n position: relative;\n display: block; // normal a table\n float: left;\n min-height: 1px;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n border: 0;\n @media (max-width: $screen-md-max) {\n width: 100% !important;\n }\n\n & > .mx-dataview {\n overflow: hidden;\n }\n }\n }\n\n &.lv-col-xs-12 > ul > li {\n width: 100% !important;\n }\n\n &.lv-col-xs-11 > ul > li {\n width: 91.66666667% !important;\n }\n\n &.lv-col-xs-10 > ul > li {\n width: 83.33333333% !important;\n }\n\n &.lv-col-xs-9 > ul > li {\n width: 75% !important;\n }\n\n &.lv-col-xs-8 > ul > li {\n width: 66.66666667% !important;\n }\n\n &.lv-col-xs-7 > ul > li {\n width: 58.33333333% !important;\n }\n\n &.lv-col-xs-6 > ul > li {\n width: 50% !important;\n }\n\n &.lv-col-xs-5 > ul > li {\n width: 41.66666667% !important;\n }\n\n &.lv-col-xs-4 > ul > li {\n width: 33.33333333% !important;\n }\n\n &.lv-col-xs-3 > ul > li {\n width: 25% !important;\n }\n\n &.lv-col-xs-2 > ul > li {\n width: 16.66666667% !important;\n }\n\n &.lv-col-xs-1 > ul > li {\n width: 8.33333333% !important;\n }\n\n @media (min-width: $screen-md) {\n &.lv-col-sm-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-sm-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-sm-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-sm-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-sm-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-sm-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-sm-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-sm-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-sm-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-sm-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-sm-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-sm-1 > ul > li {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: $screen-lg) {\n &.lv-col-md-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-md-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-md-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-md-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-md-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-md-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-md-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-md-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-md-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-md-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-md-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-md-1 > ul > li {\n width: 16.66666667% !important;\n }\n }\n @media (min-width: $screen-xl) {\n &.lv-col-lg-12 > ul > li {\n width: 100% !important;\n }\n &.lv-col-lg-11 > ul > li {\n width: 91.66666667% !important;\n }\n &.lv-col-lg-10 > ul > li {\n width: 83.33333333% !important;\n }\n &.lv-col-lg-9 > ul > li {\n width: 75% !important;\n }\n &.lv-col-lg-8 > ul > li {\n width: 66.66666667% !important;\n }\n &.lv-col-lg-7 > ul > li {\n width: 58.33333333% !important;\n }\n &.lv-col-lg-6 > ul > li {\n width: 50% !important;\n }\n &.lv-col-lg-5 > ul > li {\n width: 41.66666667% !important;\n }\n &.lv-col-lg-4 > ul > li {\n width: 33.33333333% !important;\n }\n &.lv-col-lg-3 > ul > li {\n width: 25% !important;\n }\n &.lv-col-lg-2 > ul > li {\n width: 16.66666667% !important;\n }\n &.lv-col-lg-1 > ul > li {\n width: 8.33333333% !important;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Modals\n\n Default Mendix Modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults\n========================================================================== */\n.modal-dialog {\n .modal-content {\n border: 1px solid $modal-header-border-color;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n\n .modal-header {\n padding: 15px 20px;\n border-bottom-color: $modal-header-border-color;\n border-radius: 0; // Because of the class .mx-window-active in mxui.css\n background-color: $modal-header-bg;\n\n h4 {\n margin: 0;\n color: $modal-header-color;\n font-size: 16px;\n font-weight: $font-weight-bold;\n }\n\n .close {\n margin-top: -3px;\n opacity: 1;\n /* For IE8 and earlier */\n color: $modal-header-color;\n text-shadow: none;\n filter: alpha(opacity=100);\n }\n }\n\n .modal-body {\n padding: 20px;\n }\n\n .modal-footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 0;\n padding: 20px;\n border-style: none;\n }\n }\n}\n\n// Default Mendix Window Modal\n.mx-window {\n // If popup direct child is a dataview it gets the class mx-window-view\n &.mx-window-view .mx-window-body {\n overflow: hidden; // hide second scrollbar in edit page\n padding: 0;\n // Dataview in popup\n > .mx-dataview > .mx-dataview-content,\n > .mx-placeholder > .mx-dataview > .mx-dataview-content {\n padding: 20px;\n }\n\n > .mx-dataview > .mx-dataview-controls,\n > .mx-placeholder > .mx-dataview > .mx-dataview-controls {\n display: flex;\n justify-content: flex-end;\n margin: 0;\n padding: 20px;\n text-align: left;\n border-top: 1px solid $modal-header-border-color;\n }\n }\n\n .mx-dataview-controls {\n padding-bottom: 0;\n }\n\n .mx-layoutgrid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n// Login modal\n.mx-login {\n .modal-body {\n padding: 0 15px;\n }\n\n .modal-content {\n input {\n height: 56px;\n padding: 12px 12px;\n border: 1px solid #EEEEEE;\n background: #EEEEEE;\n box-shadow: none;\n font-size: 16px;\n\n &:focus {\n border-color: #66AFE9;\n }\n }\n }\n\n .modal-header,\n .modal-footer {\n border: 0;\n }\n\n button {\n font-size: 16px;\n }\n\n h4 {\n color: #AAAAAA;\n font-size: 20px;\n font-weight: $font-weight-bold;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n Default Mendix Navigation Bar\n========================================================================== */\n.mx-navbar {\n margin: 0;\n border-style: none;\n border-radius: 0;\n background-color: $navigation-bg;\n\n ul.nav {\n margin: 0; // weird -margin if screen gets small (bootstrap)\n\n /* Navigation item */\n & > li.mx-navbar-item > a {\n display: flex;\n align-items: center;\n min-height: $topbar-minimalheight;\n padding: $navigation-item-padding;\n vertical-align: middle;\n color: $navigation-color;\n border-radius: 0;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navigation-color;\n border-bottom-color: $navigation-color;\n }\n\n &:hover,\n &:focus,\n &.active {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-active;\n border-bottom-color: $navigation-color-active;\n }\n }\n\n &.active {\n color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n position: absolute;\n top: -9px;\n left: 15px;\n width: 0;\n height: 0;\n content: '';\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n border-width: 0 9px 9px 9px;\n border-style: solid;\n border-color: transparent transparent $navigation-border-color transparent;\n }\n\n // Image\n img {\n width: 20px; // Default size (so it looks good)\n height: auto;\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: 0;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n & > .mx-navbar-item.active a {\n color: $navigation-color-active;\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n\n .caret {\n border-top-color: $navigation-color-hover;\n border-bottom-color: $navigation-color-hover;\n }\n }\n\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navigation-sub-color-active;\n background-color: $navigation-sub-bg-active;\n\n .caret {\n border-top-color: $navigation-sub-color-active;\n border-bottom-color: $navigation-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n padding: 10px 20px;\n }\n .mx-navbar-item.open .dropdown-menu {\n padding: 0;\n border-radius: 0;\n background-color: $navigation-sub-bg;\n\n & > li.mx-navbar-subitem > a {\n padding: 10px 20px;\n color: $navigation-sub-color;\n border-radius: 0;\n font-size: $navigation-sub-font-size;\n font-weight: $font-weight-normal;\n\n &:hover,\n &:focus {\n color: $navigation-sub-color-hover;\n background-color: $navigation-sub-bg-hover;\n }\n\n &.active {\n color: $navigation-sub-color-active;\n background-color: $navigation-sub-bg-active;\n }\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n//== Regions\n//## Behavior in the different regions\n========================================================================== */\n// When used in topbar\n.region-topbar {\n .mx-navbar {\n background-color: $navtopbar-bg;\n ul.nav {\n /* Navigation item */\n & > li.mx-navbar-item > a {\n color: $navtopbar-color;\n font-size: $navtopbar-font-size;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navtopbar-color;\n border-bottom-color: $navtopbar-color;\n }\n &:hover,\n &:focus,\n &.active {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-active;\n border-bottom-color: $navtopbar-color-active;\n }\n }\n &.active {\n color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n border-color: transparent transparent $navtopbar-border-color transparent;\n }\n\n // Image\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.active a,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-hover;\n border-bottom-color: $navtopbar-color-hover;\n }\n }\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n .caret {\n border-top-color: $navtopbar-sub-color-active;\n border-bottom-color: $navtopbar-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n }\n .mx-navbar-item.open .dropdown-menu {\n background-color: $navtopbar-sub-bg;\n & > li.mx-navbar-subitem > a {\n color: $navtopbar-sub-color;\n font-size: $navtopbar-sub-font-size;\n &:hover,\n &:focus {\n color: $navtopbar-sub-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n &.active {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n }\n }\n }\n }\n }\n}\n\n// When used in sidebar\n.region-sidebar {\n .mx-navbar {\n background-color: $navsidebar-bg;\n ul.nav {\n /* Navigation item */\n & > li.mx-navbar-item > a {\n color: $navsidebar-color;\n font-size: $navsidebar-font-size;\n\n /* Dropdown arrow */\n .caret {\n border-top-color: $navsidebar-color;\n border-bottom-color: $navsidebar-color;\n }\n &:hover,\n &:focus,\n &.active {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-active;\n border-bottom-color: $navsidebar-color-active;\n }\n }\n &.active {\n color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n\n /* Dropdown */\n .mx-navbar-submenu::before {\n border-color: transparent transparent $navsidebar-border-color transparent;\n }\n\n // Image\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n\n /* When hovering or the dropdown is open */\n & > .mx-navbar-item > a:hover,\n & > .mx-navbar-item > a:focus,\n & > .mx-navbar-item.active a,\n & > .mx-navbar-item.open > a,\n & > .mx-navbar-item.open > a:hover,\n & > .mx-navbar-item.open > a:focus {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-hover;\n border-bottom-color: $navsidebar-color-hover;\n }\n }\n & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n .caret {\n border-top-color: $navsidebar-sub-color-active;\n border-bottom-color: $navsidebar-sub-color-active;\n }\n }\n }\n @media (max-width: $screen-md) {\n ul.nav > li.mx-navbar-item > a {\n }\n .mx-navbar-item.open .dropdown-menu {\n background-color: $navtopbar-sub-bg;\n & > li.mx-navbar-subitem > a {\n color: $navsidebar-sub-color;\n font-size: $navsidebar-sub-font-size;\n &:hover,\n &:focus {\n color: $navsidebar-sub-color-hover;\n background-color: $navsidebar-sub-bg-hover;\n }\n &.active {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n }\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Navigation List\n \n Default Mendix Navigation List Widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item\n========================================================================== */\n.mx-navigationlist {\n margin: 0;\n padding: 0;\n list-style: none;\n \n li.mx-navigationlist-item {\n @include transition();\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n border-width: 1px;\n border-style: none none solid none;\n border-color: $grid-border-color;\n border-radius: 0;\n background-color: $grid-bg;\n\n &:hover,\n &:focus {\n color: inherit;\n background-color: $grid-bg-hover;\n }\n\n &.active {\n color: inherit;\n background-color: $grid-bg-selected;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n Default Mendix Navigation Tree\n========================================================================== */\n.mx-navigationtree {\n background-color: $navigation-bg;\n\n /* Every navigation item */\n .navbar-inner > ul {\n margin: 0;\n padding-left: 0;\n & > li {\n padding: 0;\n border-style: none;\n & > a {\n display: flex;\n align-items: center;\n height: $navigation-item-height;\n padding: $navigation-item-padding;\n color: $navigation-color;\n border-bottom: 1px solid $navigation-border-color;\n border-radius: 0;\n background-color: $navigation-bg;\n text-shadow: none;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n .caret {\n border-top-color: $navigation-color;\n border-bottom-color: $navigation-color;\n }\n img {\n width: 20px; // Default size\n height: auto;\n margin-right: 0.5em;\n }\n .glyphicon {\n top: 0;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n .caret {\n border-top-color: $navigation-color-active;\n border-bottom-color: $navigation-color-active;\n }\n }\n a.active {\n color: $navigation-color-active;\n border-left-color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n margin: 0;\n padding-left: 0;\n background-color: $navigation-sub-bg;\n li {\n margin: 0;\n padding: 0;\n border: 0;\n a {\n padding: 12px 20px 12px 25px;\n text-decoration: none;\n color: $navigation-sub-color;\n border: 0;\n background-color: $navigation-sub-bg;\n text-shadow: none;\n font-size: $navigation-sub-font-size;\n font-weight: $font-weight-normal;\n\n &:hover,\n &:focus,\n &.active {\n color: $navigation-sub-color-hover;\n outline: 0;\n background-color: $navigation-sub-bg-hover;\n }\n &.active {\n color: $navigation-sub-color-active;\n border: 0;\n background-color: $navigation-sub-bg-active;\n }\n }\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n//== Regions\n//## Behavior in the different regions\n========================================================================== */\n// When used in topbar\n.region-topbar {\n .mx-navigationtree {\n background-color: $navtopbar-bg;\n .navbar-inner > ul {\n & > li {\n & > a {\n color: $navtopbar-color;\n border-color: $navtopbar-border-color;\n background-color: $navtopbar-bg;\n font-size: $navtopbar-font-size;\n .caret {\n border-top-color: $navtopbar-color;\n border-bottom-color: $navtopbar-color;\n }\n\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n .caret {\n border-top-color: $navtopbar-color-active;\n border-bottom-color: $navtopbar-color-active;\n }\n }\n a.active {\n color: $navtopbar-color-active;\n border-left-color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n background-color: $navtopbar-sub-bg;\n li {\n a {\n color: $navtopbar-sub-color;\n background-color: $navtopbar-sub-bg;\n font-size: $navtopbar-sub-font-size;\n &:hover,\n &:focus,\n &.active {\n color: $navtopbar-sub-color-hover;\n background-color: $navtopbar-sub-bg-hover;\n }\n &.active {\n color: $navtopbar-sub-color-active;\n background-color: $navtopbar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n}\n\n// When used in sidebar\n.region-sidebar {\n .mx-navigationtree {\n background-color: $navsidebar-bg;\n .navbar-inner > ul {\n & > li {\n & > a {\n color: $navsidebar-color;\n border-color: $navsidebar-border-color;\n background-color: $navsidebar-bg;\n font-size: $navsidebar-font-size;\n .caret {\n border-top-color: $navsidebar-color;\n border-bottom-color: $navsidebar-color;\n }\n\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n a:hover,\n a:focus,\n a.active {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n .caret {\n border-top-color: $navsidebar-color-active;\n border-bottom-color: $navsidebar-color-active;\n }\n }\n a.active {\n color: $navsidebar-color-active;\n border-left-color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n }\n }\n\n /* Sub navigation item specific */\n li.mx-navigationtree-has-items {\n & > ul {\n background-color: $navsidebar-sub-bg;\n li {\n a {\n color: $navsidebar-sub-color;\n background-color: $navsidebar-sub-bg;\n font-size: $navsidebar-sub-font-size;\n &:hover,\n &:focus,\n &.active {\n color: $navsidebar-sub-color-hover;\n background-color: $navsidebar-sub-bg-hover;\n }\n &.active {\n color: $navsidebar-sub-color-active;\n background-color: $navsidebar-sub-bg-active;\n }\n }\n }\n }\n }\n }\n}\n\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n//-------------------------------------------------------------------------------------------------------------------//\n// Content Centerd text and icons\n.nav-content-center-text-icons.mx-navigationtree {\n .navbar-inner ul {\n a {\n flex-direction: column;\n justify-content: center;\n .glyphicon {\n margin: 0 0 5px 0;\n }\n }\n }\n}\n\n// Content Centerd icons only\n.nav-content-center.mx-navigationtree {\n .navbar-inner ul {\n a {\n justify-content: center;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Navigation\n\n Default Mendix Simple Menu Bar\n========================================================================== */\n.mx-menubar {\n padding: 0;\n background-color: $navigation-bg;\n\n ul.mx-menubar-list {\n display: flex;\n width: 100%;\n min-height: 50px;\n\n li.mx-menubar-item {\n margin: 0;\n\n > a {\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: $navigation-item-padding;\n white-space: nowrap;\n color: $navigation-color;\n border-radius: 0;\n font-size: $navigation-font-size;\n font-weight: $font-weight-normal;\n\n img {\n margin-right: 0.5em;\n }\n\n .glyphicon {\n top: -1px;\n margin-right: 0.5em;\n vertical-align: middle;\n font-size: $navigation-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n text-decoration: none;\n color: $navigation-color-hover;\n background-color: $navigation-bg-hover;\n }\n\n &.active a {\n color: $navigation-color-active;\n background-color: $navigation-bg-active;\n }\n }\n }\n\n /* remove focus */\n &:focus {\n outline: 0;\n }\n}\n\n// Vertical variation specifics\n.mx-menubar-vertical {\n background-color: $navigation-bg;\n\n ul.mx-menubar-list {\n display: flex;\n\n li.mx-menubar-item {\n display: block;\n\n a {\n border-bottom: 1px solid $navigation-border-color;\n }\n }\n }\n}\n\n// Horizontal variation specifics\n.mx-menubar-horizontal {\n box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14);\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n width: auto;\n\n a {\n width: 100%;\n }\n }\n }\n\n /* Two menu items */\n &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item {\n width: 50%;\n }\n\n /* Three menu items */\n &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item {\n width: 33.33333333%;\n }\n\n /* Four menu items */\n &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item {\n width: 25%;\n }\n\n /* Five menu items */\n &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item {\n width: 20%;\n }\n}\n\n//== Regions\n//## Behavior in the different regions\n//-------------------------------------------------------------------------------------------------------------------//\n// When used in topbar\n.region-topbar {\n .mx-menubar {\n background-color: $navtopbar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n color: $navtopbar-color;\n font-size: $navtopbar-font-size;\n\n .glyphicon {\n font-size: $navtopbar-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n color: $navtopbar-color-hover;\n background-color: $navtopbar-bg-hover;\n }\n\n &.active a {\n color: $navtopbar-color-active;\n background-color: $navtopbar-bg-active;\n }\n }\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navtopbar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n height: $navigation-item-height;\n border-color: $navtopbar-border-color;\n }\n }\n }\n }\n}\n\n// When used in sidebar\n.region-sidebar {\n .mx-menubar {\n background-color: $navsidebar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n color: $navsidebar-color;\n font-size: $navsidebar-font-size;\n\n .glyphicon {\n font-size: $navsidebar-glyph-size;\n }\n }\n\n a:hover,\n a:focus,\n &:hover a,\n &:focus a,\n &.active a {\n color: $navsidebar-color-hover;\n background-color: $navsidebar-bg-hover;\n }\n\n &.active a {\n color: $navsidebar-color-active;\n background-color: $navsidebar-bg-active;\n }\n }\n }\n }\n\n // Vertical variation specifics\n .mx-menubar-vertical {\n background-color: $navsidebar-bg;\n\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n border-color: $navsidebar-border-color;\n }\n }\n }\n }\n}\n\n@supports (padding-bottom: env(safe-area-inset-bottom)) {\n .mx-menubar {\n padding-bottom: env(safe-area-inset-bottom);\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Navigation\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Center text and icons\n.bottom-nav-text-icons.mx-menubar {\n ul.mx-menubar-list {\n li.mx-menubar-item {\n a {\n flex-direction: column;\n padding: 8px 8px 6px 8px;\n line-height: normal;\n font-size: 11px;\n .glyphicon {\n display: block;\n margin: 0 0 5px 0;\n font-size: 18px;\n }\n img {\n display: block;\n height: 18px;\n margin: 0 0 5px 0;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Radio Buttons\n\n Default Mendix Radio Button Widget\n========================================================================== */\n.mx-radiobuttons.inline .mx-radiogroup {\n display: flex;\n flex-direction: row;\n\n .radio {\n margin: 0 20px 0 0;\n }\n}\n\n.mx-radiobuttons .radio:last-child {\n margin-bottom: 0;\n}\n\n.radio {\n display: flex !important; // Remove after mxui merge\n align-items: center;\n margin-top: 0;\n}\n\ninput[type='radio'] {\n position: relative !important; // Remove after mxui merge\n width: 16px;\n height: 16px;\n margin: 0;\n cursor: pointer;\n -moz-user-select: none;\n -ms-user-select: none;\n -o-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n &::-ms-check {\n color: $form-input-border-color;\n border-color: $form-input-border-color;\n background-color: $form-input-bg;\n }\n\n &:focus::-ms-check,\n &:checked::-ms-check {\n color: $form-input-border-focus-color;\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg-focus;\n }\n\n &:before,\n &:after {\n position: absolute;\n display: block;\n transition: all 0.3s ease-in-out;\n border-radius: 50%;\n }\n\n &:before {\n width: 100%;\n height: 100%;\n content: '';\n border: 1px solid $form-input-border-color;\n background-color: transparent;\n }\n\n &:after {\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n background-color: $form-input-border-focus-color;\n }\n\n &:not(:checked):after {\n transform: translate(-50%, -50%) scale(0);\n opacity: 0;\n }\n\n &:not(:disabled):not(:checked):hover:after {\n background-color: $form-input-bg-hover;\n }\n\n &:checked:after,\n &:not(:disabled):not(:checked):hover:after {\n content: '';\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n }\n\n &:checked:before {\n border-color: $form-input-border-focus-color;\n background-color: $form-input-bg;\n }\n\n &:disabled:before {\n background-color: $form-input-bg-disabled;\n }\n\n &:checked:disabled:before {\n border-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n &:checked:disabled:after {\n background-color: rgba($form-input-border-focus-color, 0.4);\n }\n\n & + label {\n margin-left: $form-label-gutter;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tab Container\n\n Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages.\n This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen\n========================================================================== */\n\n.mx-tabcontainer {\n .mx-tabcontainer-tabs {\n margin-bottom: 20px;\n border-color: $tabs-border-color;\n & > li > a {\n margin-right: 0;\n -webkit-transition: all 0.2s ease-in-out;\n -moz-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n color: $tabs-color;\n font-weight: $font-weight-normal;\n &:hover,\n &:focus {\n background-color: $tabs-bg-hover;\n }\n }\n & > li.active > a,\n & > li.active > a:hover,\n & > li.active > a:focus {\n color: $tabs-color-active;\n border: 1px solid $tabs-border-color;\n border-bottom-color: transparent;\n background-color: $tabs-bg;\n }\n }\n}\n\n// Tab Styling Specific for mobile\n.tab-mobile.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n margin: 0;\n text-align: center;\n border-style: none;\n background-color: $brand-primary;\n li {\n display: table-cell;\n float: none;\n width: 1%;\n margin: 0;\n text-align: center;\n border-style: none;\n border-radius: 0;\n a {\n padding: 15px;\n text-transform: uppercase;\n color: #FFFFFF;\n border-width: 0 1px 0 0;\n border-style: solid;\n border-color: rgba(255, 255, 255, 0.3);\n border-radius: 0;\n font-size: 12px;\n font-weight: $font-weight-normal;\n &:hover,\n &:focus {\n background-color: inherit;\n }\n }\n &:last-child a {\n border-right: none;\n }\n &.active > a,\n &.active > a:hover,\n &.active > a:focus {\n color: #FFFFFF;\n border-style: none;\n border-radius: 0;\n background-color: mix($brand-primary, #000000, 80%);\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tab Container\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Style as pills\n.tab-pills.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n border: 0;\n & > li > a {\n margin-right: 2px;\n color: $tabs-color;\n border: 1px solid $tabs-border-color;\n border-radius: 4px;\n &:hover,\n &:focus {\n background-color: $tabs-bg-hover;\n }\n }\n & > li.active > a,\n & > li.active > a:hover,\n & > li.active > a:focus {\n color: #FFFFFF;\n border-color: $tabs-bg-active;\n background-color: $tabs-bg-active;\n }\n }\n}\n\n// Style with lines\n.tab-lined.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n border-width: 3px;\n li {\n margin-right: 30px;\n margin-bottom: -3px;\n & > a {\n padding: 10px 0;\n color: $tabs-color;\n border: 0;\n border-style: solid;\n border-color: transparent;\n border-bottom-width: 3px;\n border-radius: 0;\n &:hover,\n &:focus {\n color: $tabs-color;\n border: 0;\n border-color: transparent;\n background: transparent;\n }\n }\n &.active > a,\n &.active > a:hover,\n &.active > a:focus {\n color: $tabs-lined-color-active;\n border: 0;\n border-bottom: 3px solid $tabs-lined-border-color;\n background-color: transparent;\n }\n }\n }\n}\n\n// Justified style\n// Lets your tabs take 100% of the width\n.tab-justified.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n width: 100%;\n border-bottom: 0;\n & > li {\n display: table-cell;\n float: none;\n width: 1%;\n margin: 0;\n @media (max-width: $screen-sm-max) {\n display: block;\n width: 100%;\n }\n & > a {\n text-align: center;\n border-bottom: 1px solid $tabs-border-color;\n }\n }\n & > li.active > a {\n border-bottom-color: transparent;\n border-radius: 4px;\n @media (max-width: $screen-sm-max) {\n border-bottom-color: $tabs-border-color;\n }\n }\n }\n}\n\n// Bordered\n.tab-bordered.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n margin: 0;\n }\n & > .mx-tabcontainer-content {\n padding: 10px;\n border-width: 0 1px 1px 1px;\n border-style: solid;\n border-color: $tabs-border-color;\n background-color: #FFFFFF;\n }\n}\n\n// Wizard\n.tab-wizard.mx-tabcontainer {\n & > .mx-tabcontainer-tabs {\n position: relative;\n display: flex;\n justify-content: space-between;\n border-style: none;\n\n &::before {\n position: absolute;\n top: 16px;\n display: block;\n width: 100%;\n height: 1px;\n content: \"\";\n background-color: $tabs-border-color;\n }\n & > li {\n position: relative;\n float: none;\n width: 100%;\n text-align: center;\n & > a {\n width: 33px;\n height: 33px;\n margin: auto;\n padding: 0;\n text-align: center;\n color: $brand-default;\n border: 1px solid $tabs-border-color;\n border-radius: 100%;\n background-color: #FFFFFF;\n font-size: 18px;\n font-weight: bold;\n line-height: 33px;\n }\n &.active {\n & > a,\n & > a:hover,\n & > a:focus {\n color: #FFFFFF;\n border-color: $tabs-bg-active;\n background-color: $tabs-bg-active;\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tables\n\n Default Mendix Table Widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets\n========================================================================== */\n\nth {\n font-weight: $font-weight-bold;\n}\n\nhtml body .mx-page table.mx-table {\n th,\n td {\n &.nopadding {\n padding: 0;\n }\n }\n}\n\ntable.mx-table {\n > tbody {\n /* Table row */\n > tr {\n /* Table header */\n > th {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;s\n * {\n color: $form-label-color;\n font-weight: $font-weight-bold;\n font-weight: $form-label-weight;\n }\n > label {\n padding-top: 7px;\n padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.\n }\n }\n /* Table cells */\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;\n > div > label,\n .mx-referenceselector-input-wrapper label {\n padding-top: 7px;\n padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it.\n }\n }\n }\n }\n}\n\n// Default Mendix Table Widget inside TemplateGrid\n.mx-templategrid table.mx-table {\n > tbody {\n > tr {\n > th,\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;\n }\n }\n }\n}\n\n// Default Mendix Table Widget inside Listview\n.mx-list table.mx-table {\n > tbody {\n > tr {\n > th,\n > td {\n padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Tables\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Lined\ntable.table-lined.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > td {\n border-width: 1px 0;\n border-style: solid;\n border-color: $grid-border-color;\n }\n }\n }\n}\n\n// Bordered\ntable.table-bordered.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n border-width: 1px;\n border-style: solid;\n border-color: $grid-border-color;\n }\n }\n }\n}\n\n// Makes table compact\ntable.table-compact.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n padding-top: 2px;\n padding-bottom: 2px;\n }\n }\n }\n}\n\n// Remove padding on sides\ntable.table-sideless.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > td,\n > th {\n padding-right: 0;\n }\n > th:first-child,\n > td:first-child {\n padding-left: 0;\n }\n }\n }\n}\n\n// Remove all padding\ntable.table-spaceless.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n padding: 0;\n }\n }\n }\n}\n\n// Tables Vertical\n// Will remove unwanted paddings\ntable.table-vertical.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n > th {\n padding-bottom: 0;\n > label {\n padding: 0;\n }\n > div > label {\n padding: 0;\n }\n }\n }\n }\n}\n\n// Align content in middle\ntable.table-align-vertical-middle.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n vertical-align: middle;\n }\n }\n }\n}\n\n// Compact labels\ntable.table-label-compact.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n > label {\n margin: 0;\n padding: 0;\n }\n > div > label,\n .mx-referenceselector-input-wrapper label {\n margin: 0;\n padding: 0;\n }\n }\n }\n }\n}\n\n$height-row-s: 55px;\n$height-row-m: 70px;\n$height-row-l: 120px;\n// Small rows\ntable.table-row-s.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-s;\n }\n }\n }\n}\n\n// Medium rows\ntable.table-row-m.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-m;\n }\n }\n }\n}\n\n// Large rows\ntable.table-row-l.mx-table {\n > tbody {\n // Table row\n > tr {\n // Table header\n // Table data\n > th,\n > td {\n height: $height-row-l;\n }\n }\n }\n}\n\n// Makes the columns fixed\ntable.table-fixed {\n table-layout: fixed;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Templategrid\n\n Default Mendix Templategrid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows\n========================================================================== */\n\n.mx-templategrid {\n .mx-templategrid-content-wrapper {\n table-layout: fixed;\n }\n .mx-templategrid-item {\n padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left;\n cursor: default;\n background-color: $grid-bg;\n &:hover {\n background-color: transparent;\n }\n &.selected {\n background-color: $grid-bg-selected !important;\n }\n }\n .mx-layoutgrid {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n/* ==========================================================================\n Templategrid\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Make sure your content looks selectable\n.templategrid-selectable.mx-templategrid {\n .mx-templategrid-item {\n cursor: pointer;\n }\n}\n\n// Lined\n.templategrid-lined.mx-templategrid {\n .mx-grid-content {\n border-top-width: 2px;\n border-top-style: solid;\n border-top-color: $grid-border-color;\n }\n\n .mx-templategrid-item {\n border-top: 1px solid $grid-border-color;\n border-right: none;\n border-bottom: 1px solid $grid-border-color;\n border-left: none;\n }\n}\n\n// Striped\n.templategrid-striped.mx-templategrid {\n .mx-templategrid-row:nth-child(odd) .mx-templategrid-item {\n background-color: #F9F9F9;\n }\n}\n\n// Stylingless\n.templategrid-stylingless.mx-templategrid {\n .mx-templategrid-item {\n padding: 0;\n cursor: default;\n border: 0;\n background-color: transparent;\n\n &:hover {\n background-color: transparent;\n }\n\n &.selected {\n background-color: transparent !important;\n\n &:hover {\n background-color: transparent !important;\n }\n }\n }\n}\n\n// Transparent items\n.templategrid-transparent.mx-templategrid {\n .mx-templategrid-item {\n border: 0;\n background-color: transparent;\n }\n}\n\n// Hover\n.templategrid-hover.mx-templategrid {\n .mx-templategrid-item {\n &:hover {\n background-color: $grid-bg-hover !important;\n }\n\n &.selected {\n background-color: $grid-bg-selected !important;\n\n &:hover {\n background-color: $grid-bg-selected-hover !important;\n }\n }\n }\n}\n\n// Templategrid Row Sizes\n.templategrid-lg.mx-templategrid {\n .mx-templategrid-item {\n padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2);\n }\n}\n\n.templategrid-sm.mx-templategrid {\n .mx-templategrid-item {\n padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2);\n }\n}\n\n// Templategrid Layoutgrid styles\n.mx-templategrid[class*=\"tg-col\"] {\n overflow: hidden; // For if it is not in a layout, to prevent scrollbars\n .mx-templategrid-content-wrapper {\n display: block;\n }\n\n .mx-templategrid-row {\n display: block;\n margin-right: -1 * $gutter-size;\n margin-left: -1 * $gutter-size;\n\n &::before,\n &::after {\n // clearfix\n display: table;\n clear: both;\n content: \" \";\n }\n }\n\n .mx-templategrid-item {\n // bootstrap col\n position: relative;\n display: block;\n float: left;\n min-height: 1px;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n border: 0;\n @media (max-width: 992px) {\n width: 100% !important;\n }\n\n .mx-dataview {\n overflow: hidden;\n }\n }\n\n &.tg-col-xs-12 .mx-templategrid-item {\n width: 100% !important;\n }\n\n &.tg-col-xs-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n\n &.tg-col-xs-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n\n &.tg-col-xs-9 .mx-templategrid-item {\n width: 75% !important;\n }\n\n &.tg-col-xs-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n\n &.tg-col-xs-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n\n &.tg-col-xs-6 .mx-templategrid-item {\n width: 50% !important;\n }\n\n &.tg-col-xs-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n\n &.tg-col-xs-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n\n &.tg-col-xs-3 .mx-templategrid-item {\n width: 25% !important;\n }\n\n &.tg-col-xs-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n\n &.tg-col-xs-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n\n @media (min-width: 768px) {\n &.tg-col-sm-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-sm-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-sm-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-sm-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-sm-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-sm-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-sm-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-sm-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-sm-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-sm-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-sm-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-sm-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: 992px) {\n &.tg-col-md-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-md-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-md-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-md-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-md-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-md-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-md-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-md-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-md-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-md-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-md-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-md-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n @media (min-width: 1200px) {\n &.tg-col-lg-12 .mx-templategrid-item {\n width: 100% !important;\n }\n &.tg-col-lg-11 .mx-templategrid-item {\n width: 91.66666667% !important;\n }\n &.tg-col-lg-10 .mx-templategrid-item {\n width: 83.33333333% !important;\n }\n &.tg-col-lg-9 .mx-templategrid-item {\n width: 75% !important;\n }\n &.tg-col-lg-8 .mx-templategrid-item {\n width: 66.66666667% !important;\n }\n &.tg-col-lg-7 .mx-templategrid-item {\n width: 58.33333333% !important;\n }\n &.tg-col-lg-6 .mx-templategrid-item {\n width: 50% !important;\n }\n &.tg-col-lg-5 .mx-templategrid-item {\n width: 41.66666667% !important;\n }\n &.tg-col-lg-4 .mx-templategrid-item {\n width: 33.33333333% !important;\n }\n &.tg-col-lg-3 .mx-templategrid-item {\n width: 25% !important;\n }\n &.tg-col-lg-2 .mx-templategrid-item {\n width: 16.66666667% !important;\n }\n &.tg-col-lg-1 .mx-templategrid-item {\n width: 8.33333333% !important;\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Typography\n========================================================================== */\n\np {\n line-height: $line-height-base * 1.25;\n}\n\nlabel {\n padding-top: 0;\n}\n\n.mx-title {\n margin: $font-header-margin;\n color: $font-color-header;\n font-size: $font-size-h1;\n font-weight: $font-weight-header;\n}\n\nh1,\n.h1,\n.h1 > * {\n font-size: $font-size-h1;\n}\n\nh2,\n.h2,\n.h2 > * {\n font-size: $font-size-h2;\n}\n\nh3,\n.h3,\n.h3 > * {\n font-size: $font-size-h3;\n}\n\nh4,\n.h4,\n.h4 > * {\n font-size: $font-size-h4;\n}\n\nh5,\n.h5,\n.h5 > * {\n font-size: $font-size-h5;\n}\n\nh6,\n.h6,\n.h6 > * {\n font-size: $font-size-h6;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n margin: $font-header-margin;\n color: $font-color-header;\n font-weight: $font-weight-header;\n line-height: 1.3;\n}","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Typography\n\n//== Design Properties\n//## Helper classes to change the look and feel of the component\n========================================================================== */\n// Text size\n.text-small {\n font-size: $font-size-small !important;\n}\n\n.text-large {\n font-size: $font-size-large !important;\n}\n\n// Text Weights\n.text-light,\n.text-light > *,\n.text-light label {\n font-weight: $font-weight-light !important;\n}\n\n.text-normal,\n.text-normal > *,\n.text-normal label {\n font-weight: $font-weight-normal !important;\n}\n\n.text-semibold,\n.text-semibold > *,\n.text-semibold label {\n font-weight: $font-weight-semibold !important;\n}\n\n.text-bold,\n.text-bold > *,\n.text-bold label {\n font-weight: $font-weight-bold !important;\n}\n\n// Color variations\n.text-default,\n.text-default:hover {\n color: $font-color-default !important;\n}\n\n.text-primary,\n.text-primary:hover {\n color: $brand-primary !important;\n}\n\n.text-info,\n.text-info:hover {\n color: $brand-info !important;\n}\n\n.text-success,\n.text-success:hover {\n color: $brand-success !important;\n}\n\n.text-warning,\n.text-warning:hover {\n color: $brand-warning !important;\n}\n\n.text-danger,\n.text-danger:hover {\n color: $brand-danger !important;\n}\n\n.text-header {\n color: $font-color-header !important;\n}\n\n.text-detail {\n color: $font-color-detail !important;\n}\n\n.text-white {\n color: #ffffff;\n}\n\n// Alignment options\n.text-left {\n text-align: left !important;\n}\n.text-center {\n text-align: center !important;\n}\n.text-right {\n text-align: right !important;\n}\n.text-justify {\n text-align: justify !important;\n}\n\n// Transform options\n.text-lowercase {\n text-transform: lowercase !important;\n}\n.text-uppercase {\n text-transform: uppercase !important;\n}\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n// Wrap options\n.text-break {\n word-break: break-all !important;\n word-break: break-word !important;\n -ms-word-break: break-all !important;\n -webkit-hyphens: auto !important;\n -moz-hyphens: auto !important;\n hyphens: auto !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-nowrap {\n overflow: hidden !important;\n max-width: 100% !important;\n white-space: nowrap !important;\n text-overflow: ellipsis !important;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Layout Grid\n\n Default Bootstrap containers\n========================================================================== */\n.mx-layoutgrid {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n}\n\n// Row\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter-size;\n margin-left: -$gutter-size;\n\n &::before,\n &::after {\n content: normal;\n }\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n// Columns\n.col-1,\n.col-2,\n.col-3,\n.col-4,\n.col-5,\n.col-6,\n.col-7,\n.col-8,\n.col-9,\n.col-10,\n.col-11,\n.col-12,\n.col,\n.col-auto,\n.col-sm-1,\n.col-sm-2,\n.col-sm-3,\n.col-sm-4,\n.col-sm-5,\n.col-sm-6,\n.col-sm-7,\n.col-sm-8,\n.col-sm-9,\n.col-sm-10,\n.col-sm-11,\n.col-sm-12,\n.col-sm,\n.col-sm-auto,\n.col-md-1,\n.col-md-2,\n.col-md-3,\n.col-md-4,\n.col-md-5,\n.col-md-6,\n.col-md-7,\n.col-md-8,\n.col-md-9,\n.col-md-10,\n.col-md-11,\n.col-md-12,\n.col-md,\n.col-md-auto,\n.col-lg-1,\n.col-lg-2,\n.col-lg-3,\n.col-lg-4,\n.col-lg-5,\n.col-lg-6,\n.col-lg-7,\n.col-lg-8,\n.col-lg-9,\n.col-lg-10,\n.col-lg-11,\n.col-lg-12,\n.col-lg,\n.col-lg-auto,\n.col-xl-1,\n.col-xl-2,\n.col-xl-3,\n.col-xl-4,\n.col-xl-5,\n.col-xl-6,\n.col-xl-7,\n.col-xl-8,\n.col-xl-9,\n.col-xl-10,\n.col-xl-11,\n.col-xl-12,\n.col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: $gutter-size;\n padding-left: $gutter-size;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n// Responsiveness\n@media (min-width: $screen-sm) {\n .mx-layoutgrid-fixed {\n max-width: 540px;\n }\n}\n\n@media (min-width: $screen-md) {\n .mx-layoutgrid-fixed {\n max-width: 720px;\n }\n}\n\n@media (min-width: $screen-lg) {\n .mx-layoutgrid-fixed {\n max-width: 960px;\n }\n}\n\n@media (min-width: $screen-xl) {\n .mx-layoutgrid-fixed {\n max-width: 1140px;\n }\n}\n\n@media (min-width: $screen-sm) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: $screen-md) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: $screen-lg) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: $screen-xl) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Progress\n\n Default Mendix Progress Widget.\n========================================================================== */\n\n.mx-progress {\n color: $font-color-default;\n background: $bg-color-secondary;\n\n .mx-progress-message {\n color: $font-color-default;\n }\n\n .mx-progress-indicator {\n position: relative;\n overflow: hidden;\n width: 100%;\n max-width: 100%;\n height: 2px;\n margin: auto;\n padding: 0;\n border-radius: 0;\n background: $gray-lighter;\n\n &:before,\n &:after {\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n width: 50%;\n height: 2px;\n content: \"\";\n transform: translate3d(-100%, 0, 0);\n background: $brand-primary;\n }\n\n &::before {\n animation: loader 2s infinite;\n }\n\n &::after {\n animation: loader 2s -2s infinite;\n }\n }\n}\n\n\n@keyframes loader {\n 0% {\n transform: translate3d(-100%, 0, 0);\n }\n 100% {\n transform: translate3d(200%, 0, 0);\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* ==========================================================================\n Helpers\n\n Default Mendix Helpers\n========================================================================== */\n$important-helpers-value: if($important-helpers, ' !important', '');\n\n// Display properties\n.d-none {\n display: none #{$important-helpers-value};\n}\n\n.d-flex {\n display: flex #{$important-helpers-value};\n}\n\n.d-inline-flex {\n display: inline-flex #{$important-helpers-value};\n}\n\n.d-inline {\n display: inline #{$important-helpers-value};\n}\n\n.d-inline-block {\n display: inline-block #{$important-helpers-value};\n}\n\n.show,\n.d-block {\n display: block #{$important-helpers-value};\n}\n\n.table,\n.d-table {\n display: table #{$important-helpers-value};\n}\n\n.table-row,\n.d-table-row {\n display: table-row #{$important-helpers-value};\n}\n\n.table-cell,\n.d-table-cell {\n display: table-cell #{$important-helpers-value};\n}\n\n.hide,\n.hidden {\n display: none #{$important-helpers-value};\n visibility: hidden #{$important-helpers-value};\n}\n\n.invisible {\n visibility: hidden #{$important-helpers-value};\n}\n\n.display-ie8-only:not([attr*=\"\"]) {\n display: none #{$important-helpers-value};\n padding: 0 #{$important-helpers-value};\n}\n\n.list-nostyle {\n ul {\n margin: 0 #{$important-helpers-value};\n padding: 0 #{$important-helpers-value};\n\n li {\n list-style-type: none #{$important-helpers-value};\n }\n }\n}\n\n.nowrap,\n.nowrap * {\n overflow: hidden #{$important-helpers-value};\n // Star for inside an element, IE8 span > a\n white-space: nowrap #{$important-helpers-value};\n text-overflow: ellipsis #{$important-helpers-value};\n}\n\n// Render DIV as Table Cells\n.table {\n display: table #{$important-helpers-value};\n}\n\n.table-row {\n display: table-row #{$important-helpers-value};\n}\n\n.table-cell {\n display: table-cell #{$important-helpers-value};\n}\n\n// Quick floats\n.pull-left {\n float: left #{$important-helpers-value};\n}\n\n.pull-right {\n float: right #{$important-helpers-value};\n}\n\n// Align options\n.align-top {\n vertical-align: top #{$important-helpers-value};\n}\n\n.align-middle {\n vertical-align: middle #{$important-helpers-value};\n}\n\n.align-bottom {\n vertical-align: bottom #{$important-helpers-value};\n}\n\n// Flex alignments\n.row-left {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: flex-start #{$important-helpers-value};\n}\n\n.row-center {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n.row-right {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-flow: row #{$important-helpers-value};\n justify-content: flex-end #{$important-helpers-value};\n}\n\n.col-left {\n display: flex #{$important-helpers-value};\n align-items: flex-start #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n.col-center {\n display: flex #{$important-helpers-value};\n align-items: center #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n.col-right {\n display: flex #{$important-helpers-value};\n align-items: flex-end #{$important-helpers-value};\n flex-direction: column #{$important-helpers-value};\n justify-content: center #{$important-helpers-value};\n}\n\n// Media\n@media (max-width: $screen-sm-max) {\n .hide-phone {\n display: none #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-md) and (max-width: $screen-md-max) {\n .hide-tablet {\n display: none #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-lg) {\n .hide-desktop {\n display: none #{$important-helpers-value};\n }\n}\n\n\n@media (max-width: $screen-xs-max) {\n .hide-xs,\n .hidden-xs,\n .d-xs-none {\n display: none #{$important-helpers-value};\n }\n .d-xs-flex {\n display: flex #{$important-helpers-value};\n }\n .d-xs-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-xs-inline {\n display: inline #{$important-helpers-value};\n }\n .d-xs-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-xs-block {\n display: block #{$important-helpers-value};\n }\n .d-xs-table {\n display: table #{$important-helpers-value};\n }\n .d-xs-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-xs-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-sm) and (max-width: $screen-sm-max) {\n .hide-sm,\n .hidden-sm,\n .d-sm-none {\n display: none #{$important-helpers-value};\n }\n .d-sm-flex {\n display: flex #{$important-helpers-value};\n }\n .d-sm-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-sm-inline {\n display: inline #{$important-helpers-value};\n }\n .d-sm-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-sm-block {\n display: block #{$important-helpers-value};\n }\n .d-sm-table {\n display: table #{$important-helpers-value};\n }\n .d-sm-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-sm-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-md) and (max-width: $screen-md-max) {\n .hide-md,\n .hidden-md,\n .d-md-none {\n display: none #{$important-helpers-value};\n }\n .d-md-flex {\n display: flex #{$important-helpers-value};\n }\n .d-md-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-md-inline {\n display: inline #{$important-helpers-value};\n }\n .d-md-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-md-block {\n display: block #{$important-helpers-value};\n }\n .d-md-table {\n display: table #{$important-helpers-value};\n }\n .d-md-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-md-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-lg) and (max-width: $screen-xl) {\n .hide-lg,\n .hidden-lg,\n .d-lg-none {\n display: none #{$important-helpers-value};\n }\n .d-lg-flex {\n display: flex #{$important-helpers-value};\n }\n .d-lg-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-lg-inline {\n display: inline #{$important-helpers-value};\n }\n .d-lg-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-lg-block {\n display: block #{$important-helpers-value};\n }\n .d-lg-table {\n display: table #{$important-helpers-value};\n }\n .d-lg-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-lg-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n\n@media (min-width: $screen-xl) {\n .hide-xl,\n .hidden-xl,\n .d-xl-none {\n display: none #{$important-helpers-value};\n }\n .d-xl-flex {\n display: flex #{$important-helpers-value};\n }\n .d-xl-inline-flex {\n display: inline-flex #{$important-helpers-value};\n }\n .d-xl-inline {\n display: inline #{$important-helpers-value};\n }\n .d-xl-inline-block {\n display: inline-block #{$important-helpers-value};\n }\n .d-xl-block {\n display: block #{$important-helpers-value};\n }\n .d-xl-table {\n display: table #{$important-helpers-value};\n }\n .d-xl-table-row {\n display: table-row #{$important-helpers-value};\n }\n .d-xl-table-cell {\n display: table-cell #{$important-helpers-value};\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/*\n* Mendix Documentation\n* Special styles for presenting components\n*/\n\n/*\n* Dijit Widgets\n*\n* Default Dojo Dijit Widgets\n*/\n\n/*\n * Dijit Tooltip Widget\n *\n * Default tooltip used for Mendix widgets\n */\n\n.mx-tooltip {\n .dijitTooltipContainer {\n border-width: 1px;\n border-color: $gray-light;\n border-radius: 4px;\n background: #ffffff;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n .mx-tooltip-content {\n padding: 10px;\n }\n .form-group {\n margin-bottom: 5px;\n }\n }\n .dijitTooltipConnector {\n width: 0;\n height: 0;\n margin-left: -10px;\n border-width: 10px 10px 10px 0;\n border-style: solid;\n border-color: transparent;\n border-right-color: $gray-light;\n }\n}\n\n/*\n * Dijit Border Container\n *\n * Used in Mendix as split pane containers\n */\n\n.dijitBorderContainer {\n padding: 5px;\n background-color: #fcfcfc;\n .dijitSplitterV,\n .dijitGutterV {\n width: 5px;\n border: 0;\n background: #fcfcfc;\n }\n .dijitSplitterH,\n .dijitGutterH {\n height: 5px;\n border: 0;\n background: #fcfcfc;\n }\n .dijitSplitterH {\n .dijitSplitterThumb {\n top: 2px;\n width: 19px;\n height: 1px;\n background: #b0b0b0;\n }\n }\n .dijitSplitterV {\n .dijitSplitterThumb {\n left: 2px;\n width: 1px;\n height: 19px;\n background: #b0b0b0;\n }\n }\n .dijitSplitContainer-child,\n .dijitBorderContainer-child {\n border: 1px solid #cccccc;\n }\n .dijitBorderContainer-dijitTabContainerTop,\n .dijitBorderContainer-dijitTabContainerBottom,\n .dijitBorderContainer-dijitTabContainerLeft,\n .dijitBorderContainer-dijitTabContainerRight {\n border: none;\n }\n .dijitBorderContainer-dijitBorderContainer {\n padding: 0;\n border: none;\n }\n .dijitSplitterActive {\n /* For IE8 and earlier */\n margin: 0;\n opacity: 0.6;\n background-color: #aaaaaa;\n background-image: none;\n font-size: 1px;\n filter: alpha(opacity=60);\n }\n .dijitSplitContainer-dijitContentPane,\n .dijitBorderContainer-dijitContentPane {\n padding: 5px;\n background-color: #ffffff;\n }\n}\n\n/*\n * Dijit Menu Popup\n *\n * Used in datepickers and calendar widgets\n */\n\n.dijitMenuPopup {\n margin-top: 10px;\n .dijitMenu {\n display: block;\n width: 200px !important;\n margin-top: 0; // No top margin because there is no parent with margin bottom\n padding: 12px 10px;\n border-radius: 3px;\n background: $brand-inverse;\n &:after {\n position: absolute;\n bottom: 100%;\n left: 20px;\n width: 0;\n height: 0;\n margin-left: -10px;\n content: ' ';\n pointer-events: none;\n border: medium solid transparent;\n border-width: 10px;\n border-bottom-color: $brand-inverse;\n }\n // Menu item\n .dijitMenuItem {\n background: transparent;\n .dijitMenuItemLabel {\n display: block;\n overflow: hidden;\n width: 180px !important;\n padding: 10px;\n text-overflow: ellipsis;\n color: #ffffff;\n border-radius: 3px;\n }\n // Hover\n &.dijitMenuItemHover {\n background: none;\n .dijitMenuItemLabel {\n background: $brand-primary;\n }\n }\n }\n // New label\n .tg_newlabelmenuitem {\n .dijitMenuItemLabel {\n font-weight: $font-weight-bold;\n }\n }\n // Seperator\n .dijitMenuSeparator {\n td {\n padding: 0;\n border-bottom-width: 3px;\n }\n .dijitMenuSeparatorIconCell {\n > div {\n margin: 0; //override dijit styling\n }\n }\n }\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */\ndiv.widget-progress-bar .progress-bar-default {\n background-color: $brand-default;\n}\n\ndiv.widget-progress-bar .progress-bar-primary {\n background-color: $brand-primary;\n}\n\ndiv.widget-progress-bar .progress-bar-success {\n background-color: $brand-success;\n}\n\ndiv.widget-progress-bar .progress-bar-info {\n background-color: $brand-info;\n}\n\ndiv.widget-progress-bar .progress-bar-warning {\n background-color: $brand-warning;\n}\n\ndiv.widget-progress-bar .progress-bar-danger {\n background-color: $brand-danger;\n}\n\ndiv.widget-progress-bar .progress-bar-inverse {\n background-color: $brand-inverse;\n}\n\ndiv.widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar {\n color: $color-danger-darker;\n}\n\ndiv.widget-progress-bar-text-contrast .progress-bar {\n color: $font-color-default;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n/* Based on https://github.com/mendixlabs/progress-circle/tree/master/src/ui/_progress-circle-theme.scss */\npath.widget-progress-circle-path {\n stroke: $brand-primary;\n}\n\n.widget-progress-circle-primary {\n path.widget-progress-circle-path {\n stroke: $brand-primary;\n }\n .progressbar-text {\n color: $brand-primary !important;\n }\n}\n\n.widget-progress-circle-info {\n path.widget-progress-circle-path {\n stroke: $brand-info;\n }\n .progressbar-text {\n color: $brand-info !important;\n }\n}\n\n.widget-progress-circle-success {\n path.widget-progress-circle-path {\n stroke: $brand-success;\n }\n .progressbar-text {\n color: $brand-success !important;\n }\n}\n\n.widget-progress-circle-warning {\n path.widget-progress-circle-path {\n stroke: $brand-warning;\n }\n .progressbar-text {\n color: $brand-warning !important;\n }\n}\n\n.widget-progress-circle-danger {\n path.widget-progress-circle-path {\n stroke: $brand-danger;\n }\n .progressbar-text {\n color: $brand-danger !important;\n }\n}\n\n.widget-progress-circle-inverse {\n path.widget-progress-circle-path {\n stroke: $brand-inverse;\n }\n .progressbar-text {\n color: $brand-inverse !important;\n }\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n// Based on https://github.com/mendixlabs/range-slider/tree/master/src/ui/_range-slider-theme.scss\n\ndiv.widget-range-slider {\n .rc-slider-handle,\n .rc-slider-dot-active {\n border-color: $brand-default;\n\n &:active {\n border-color: $brand-default;\n box-shadow: none;\n }\n\n &:hover {\n border-color: $brand-default;\n }\n }\n\n &.has-error {\n .rc-slider-track,\n .rc-slider-rail {\n background-color: $brand-danger;\n }\n }\n}\n\ndiv.widget-range-slider-primary .rc-slider-track {\n background-color: $brand-primary;\n}\n\ndiv.widget-range-slider-info .rc-slider-track {\n background-color: $brand-info;\n}\n\ndiv.widget-range-slider-success .rc-slider-track {\n background-color: $brand-success;\n}\n\ndiv.widget-range-slider-warning .rc-slider-track {\n background-color: $brand-warning;\n}\n\ndiv.widget-range-slider-danger .rc-slider-track {\n background-color: $brand-danger;\n}\n\ndiv.widget-range-slider-inverse .rc-slider-track {\n background-color: $brand-inverse;\n}\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n// Based on https://github.com/mendixlabs/slider/tree/master/src/ui/_slider-theme.scss\n\ndiv.widget-slider {\n .rc-slider-handle,\n .rc-slider-dot-active {\n border-color: $brand-default;\n &:active {\n border-color: $brand-default;\n }\n &:hover {\n border-color: $brand-default;\n }\n }\n\n &.has-error {\n .rc-slider-track,\n .rc-slider-rail {\n background-color: $brand-danger;\n }\n }\n}\n\ndiv.widget-slider-primary .rc-slider-track {\n background-color: $brand-primary;\n}\n\ndiv.widget-slider-info .rc-slider-track {\n background-color: $brand-info;\n}\n\ndiv.widget-slider-success .rc-slider-track {\n background-color: $brand-success;\n}\n\ndiv.widget-slider-warning .rc-slider-track {\n background-color: $brand-warning;\n}\n\ndiv.widget-slider-danger .rc-slider-track {\n background-color: $brand-danger;\n}\n\ndiv.widget-slider-inverse .rc-slider-track {\n background-color: $brand-inverse;\n}\n","//\r\n// DISCLAIMER:\r\n// Do not change this file because it is core styling.\r\n// Customizing core files will make updating Atlas much more difficult in the future.\r\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\r\n//\r\n\r\n/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */\r\nspan.widget-star-rating-full-default {\r\n color: $brand-default;\r\n}\r\n\r\nspan.widget-star-rating-full-primary {\r\n color: $brand-primary;\r\n}\r\n\r\nspan.widget-star-rating-full-success {\r\n color: $brand-success;\r\n}\r\n\r\nspan.widget-star-rating-full-info {\r\n color: $brand-info;\r\n}\r\n\r\nspan.widget-star-rating-full-warning {\r\n color: $brand-warning;\r\n}\r\n\r\nspan.widget-star-rating-full-danger {\r\n color: $brand-danger;\r\n}\r\n\r\nspan.widget-star-rating-full-inverse {\r\n color: $brand-inverse;\r\n}\r\n","//\n// DISCLAIMER:\n// Do not change this file because it is core styling.\n// Customizing core files will make updating Atlas much more difficult in the future.\n// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten.\n//\n\n$default-android-color: #6FBEB5;\n$default-ios-color: rgb(100, 189, 99);\n\n@mixin bootstrap-style-ios($brand-style) {\n border-color: $brand-style;\n background-color: $brand-style;\n box-shadow: $brand-style 0 0 0 16px inset;\n}\n\n@mixin bootstrap-style-android($brand-style) {\n background-color: lighten($brand-style, 10%);\n}\n\n@mixin ios {\n .widget-switch-btn-wrapper {\n &.checked {\n &.widget-switch-btn-wrapper-default {\n @include bootstrap-style-ios($default-ios-color);\n }\n\n &.widget-switch-btn-wrapper-success {\n @include bootstrap-style-ios($brand-success);\n }\n\n &.widget-switch-btn-wrapper-info {\n @include bootstrap-style-ios($brand-info);\n }\n\n &.widget-switch-btn-wrapper-primary {\n @include bootstrap-style-ios($brand-primary);\n }\n\n &.widget-switch-btn-wrapper-warning {\n @include bootstrap-style-ios($brand-warning);\n }\n\n &.widget-switch-btn-wrapper-danger {\n @include bootstrap-style-ios($brand-danger);\n }\n\n &.widget-switch-btn-wrapper-inverse {\n @include bootstrap-style-ios($brand-inverse);\n }\n }\n }\n}\n\n@mixin android {\n .widget-switch-btn-wrapper {\n &.checked {\n &.widget-switch-btn-wrapper-default {\n @include bootstrap-style-android($default-android-color);\n\n .widget-switch-btn {\n background: $default-android-color;\n }\n }\n\n &.widget-switch-btn-wrapper-success {\n @include bootstrap-style-android($brand-success);\n\n .widget-switch-btn {\n background: $brand-success;\n }\n }\n\n &.widget-switch-btn-wrapper-info {\n @include bootstrap-style-android($brand-info);\n\n .widget-switch-btn {\n background: $brand-info;\n }\n }\n\n &.widget-switch-btn-wrapper-primary {\n @include bootstrap-style-android($brand-primary);\n\n .widget-switch-btn {\n background: $brand-primary;\n }\n }\n\n &.widget-switch-btn-wrapper-warning {\n @include bootstrap-style-android($brand-warning);\n\n .widget-switch-btn {\n background: $brand-warning;\n }\n }\n\n &.widget-switch-btn-wrapper-danger {\n @include bootstrap-style-android($brand-danger);\n\n .widget-switch-btn {\n background: $brand-danger;\n }\n }\n\n &.widget-switch-btn-wrapper-inverse {\n @include bootstrap-style-android($brand-inverse);\n\n .widget-switch-btn {\n background: $brand-inverse;\n }\n }\n }\n }\n}\n\ndiv {\n &.widget-switch {\n &.iOS {\n @include ios;\n }\n\n &.android {\n @include android;\n }\n\n &.auto {\n @include ios;\n }\n }\n}\n\nhtml {\n div {\n &.dj_android {\n .widget-switch {\n &.auto {\n @include android;\n }\n }\n }\n\n &.dj_ios {\n .widget-switch {\n &.auto {\n @include ios;\n }\n }\n }\n }\n}\n","/* ==========================================================================\n Breadcrumbs\n\n========================================================================== */\n.breadcrumb {\n //reset\n margin: 0;\n padding: 0;\n border-radius: 0;\n background-color: transparent;\n font-size: $font-size-default;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.breadcrumb-item {\n display: inline-block;\n margin: 0;\n &:last-child {\n color: $font-color-default;\n a {\n text-decoration: none;\n }\n }\n}\n.breadcrumb-item + .breadcrumb-item {\n &::before {\n display: inline-block;\n padding-right: 10px;\n padding-left: 10px;\n content: \"/\";\n color: $gray-light;\n }\n}\n\n//== Variations \n//-------------------------------------------------------------------------------------------------------------------//\n.breadcrumb-large {\n font-size: $font-size-h3;\n}\n.breadcrumb-underline {\n padding-bottom: $gutter-size;\n border-bottom: 1px solid $border-color-default;\n}\n","/* ==========================================================================\n Cards\n\n========================================================================== */\n.card {\n padding: 30px;\n border: 1px solid $border-color-default;\n border-radius: $border-radius-default;\n background-color: #FFFFFF;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.card-title {\n margin-top: 0;\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.cardaction {\n .card-image {\n .glyphicon {\n font-size: 58px;\n }\n }\n}\n\n.cardmetrics {\n .card-title {\n margin-bottom: 0;\n }\n\n .figurecontent {\n }\n\n .card-image {\n width: 100px;\n height: auto;\n // If btn\n &.btn {\n width: 100px;\n height: 100px;\n padding: 0;\n cursor: default;\n pointer-events: none;\n font-size: 40px;\n }\n }\n\n .card-counter {\n margin: 0;\n font-size: 64px;\n }\n\n .card-morebutton {\n }\n}\n\n.cardinfo {\n .card-text {\n margin-bottom: $spacing-large;\n }\n}\n\n// Used in card info\n.textwithicon {\n overflow: hidden;\n max-width: 100%;\n margin-bottom: 15px;\n text-overflow: ellipsis;\n\n .textwithicon-icon,\n .textwithicon-text {\n display: inline-block;\n vertical-align: middle;\n }\n\n .textwithicon-icon {\n margin-right: 15px;\n padding: 0;\n color: $brand-primary; // class .text-primary\n border: 0;\n background: transparent;\n font-size: 23px;\n }\n\n .textwithicon-text {\n }\n}\n\n// Used in card info\n.socialprofiles {\n .socialprofiles-title {\n display: block;\n margin-bottom: 10px;\n font-weight: bold; // class text-bold\n }\n\n .socialprofiles-button {\n width: 24px;\n height: 24px;\n margin-right: 15px;\n padding: 0;\n border-radius: 24px;\n\n .glyphicon {\n margin: 0;\n }\n }\n}\n\n\n.cardtabs {\n padding: 0;\n}\n\n.cardtabs-tabs {\n margin: 0;\n\n ul.mx-tabcontainer-tabs {\n display: flex;\n margin: 0;\n background-color: mix($tabs-border-color, #FFFFFF, 20%);\n\n li {\n flex: 1 1 auto;\n text-align: center;\n\n a,\n a:hover,\n a:focus {\n border-top-width: 0;\n border-right-width: 1px;\n border-left-width: 0;\n }\n\n &:first-child a {\n border-radius: $border-radius-default 0 0 0;\n }\n\n &:last-child a {\n border-radius: 0 $border-radius-default 0 0;\n }\n }\n }\n\n .mx-tabcontainer-pane {\n @include get-responsive-spacing-large($type: padding, $direction: all);\n }\n}\n\n.carduser {\n .card-controls {\n }\n\n .card-title {\n }\n\n .card-detail {\n }\n}\n\n.cardgraph {\n .card-title {\n }\n}\n\n.cardchart {\n .card-title {\n }\n}\n\n.cardproduct {\n padding: 0;\n\n}\n\n.cardproduct-header {\n position: relative;\n overflow: hidden;\n height: 200px;\n\n .card-image {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: auto;\n }\n\n}\n\n.cardproduct-overlay {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n padding: 20px 30px;\n background: rgba(0, 0, 0, 0.60);\n\n}\n\n.cardproduct-overlay-category,\n.cardproduct-overlay-title {\n margin: 0;\n color: #FFFFFF;\n}\n\n.cardproduct-footer .col {\n padding: 20px 30px;\n\n .widget-star-rating-font {\n font-size: 20px;\n }\n}\n\n.cardproduct-name {\n margin: 0;\n}\n\n.cardproduct-btn {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 30px;\n border-left: 1px solid $border-color-default;\n}\n\n.cardproduct2 {\n @extend .cardproduct;\n\n .cardproduct-header {\n &::after {\n position: absolute;\n bottom: 0;\n left: 0;\n display: block;\n width: 100%;\n padding: 20px 30px;\n content: \"\";\n background: rgba(0, 0, 0, 0.60);\n background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%);\n background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%);\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%);\n }\n }\n}\n\n\n.cardproduct3 {\n @extend .cardproduct;\n\n .cardproduct-header {\n height: 320px;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n }\n\n .cardproduct-overlay {\n min-height: 100px;\n padding: 30px;\n background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%);\n background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%);\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%);\n font-size: $font-size-default;\n }\n}\n\n.cardshopping {\n}\n\n.carduserlist {\n}\n\n.cardstatus {\n padding: 20px;\n\n .card-linkicon {\n font-size: 30px;\n }\n\n .cardstatus-status {\n margin-bottom: 5px;\n }\n}\n\n.cardpayment {\n}\n\n.cardprogress {\n}\n\n.cardprogress-state {\n width: 80px;\n height: 80px;\n padding: 0;\n cursor: default;\n pointer-events: none;\n border-radius: 100%;\n font-size: 28px;\n}\n\n.cardhighlight {\n border-top: 4px solid $brand-primary;\n}\n\n.cardchat {\n overflow: hidden;\n padding: 0;\n\n .chat {\n height: 400px;\n }\n}\n\n@media screen and (max-width: $screen-md-max) {\n .widget-charts:not([height]),\n .widget-charts-line:not([height]) {\n padding-bottom: 80% !important;\n }\n}\n\n\n@media screen and (max-width: $screen-lg-max) {\n .cardprogress {\n .cardprogress-state {\n width: 60px;\n height: 60px;\n font-size: 24px;\n }\n }\n}\n","/* ==========================================================================\n Chats\n\n========================================================================== */\n.chat {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: $bg-color-secondary;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.chat-content {\n display: flex;\n overflow: auto;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n .chat-list {\n position: relative;\n overflow: auto;\n\n ul {\n display: flex;\n flex-direction: column-reverse;\n margin-bottom: $m-spacing-large;\n }\n\n li {\n padding: 15px 30px;\n animation: fadeIn 0.2s;\n background-color: transparent;\n animation-fill-mode: both;\n\n &,\n &:last-child {\n border: 0;\n }\n }\n\n .mx-listview-loadMore {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n display: block;\n width: 50%;\n margin: 15px auto;\n color: #FFFFFF;\n background-color: $brand-primary;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);\n }\n }\n}\n\n\n.chat-message {\n display: flex;\n}\n\n.chat-avatar {\n margin: 0 20px 0 0;\n border-radius: 50%;\n}\n\n.chat-message-content {\n display: inline-flex;\n flex-direction: column;\n}\n\n.chat-message-balloon {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 10px 15px;\n border-radius: 5px;\n background-color: $bg-color;\n\n &::after {\n position: absolute;\n top: 10px;\n right: 100%;\n width: 0;\n height: 0;\n content: '';\n border: 10px solid transparent;\n border-top: 0;\n border-right-color: $bg-color;\n border-left: 0;\n }\n}\n\n.chat-message-time {\n padding-top: 2px;\n\n .form-control-static {\n border: 0;\n }\n}\n\n.chat-footer {\n z-index: 1;\n padding: $m-spacing-large;\n background-color: $bg-color;\n box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05);\n}\n\n.chat-input {\n display: flex;\n\n .chat-textbox {\n flex: 1;\n margin-right: $spacing-large;\n margin-bottom: 0;\n\n .form-control {\n border: 0;\n }\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.chat-message-self {\n justify-content: flex-end;\n\n .chat-avatar {\n margin: 0 0 0 20px;\n }\n\n .chat-message-balloon {\n background-color: $color-primary-lighter;\n\n &::after {\n left: 100%;\n border: 10px solid transparent;\n border-top: 0;\n border-right: 0;\n border-left-color: $color-primary-lighter;\n }\n }\n\n .chat-message-time {\n text-align: right;\n }\n}\n","/* ==========================================================================\n Control Group\n \n A group of buttons next to eachother\n========================================================================== */\n.controlgroup {\n .btn,\n .btn-group {\n margin-right: $spacing-small;\n margin-bottom: $spacing-small;\n\n &:last-child {\n margin-right: 0;\n }\n .btn {\n margin-right: 0;\n margin-bottom: 0;\n }\n }\n .btn-group {\n .btn + .btn {\n margin-left: -1px;\n }\n }\n}\n","/* ==========================================================================\n Full page blocks\n\n Blocks that take up the full width and height\n========================================================================== */\n\n.fullpageblock {\n position: relative;\n height: 100%;\n min-height: 100%;\n\n // Helper to make it fullheight\n .fullheight {\n height: 100% !important;\n\n & > .mx-dataview-content {\n height: inherit !important;\n }\n }\n\n .fullpage-overlay {\n position: absolute;\n z-index: 10;\n bottom: 0;\n left: 0;\n width: 100%;\n }\n}\n","/* ==========================================================================\n Pageheader\n========================================================================== */\n\n//== Default\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheader {\n border-bottom: 1px solid $border-color-default;\n background: $header-bg-color;\n}\n\n// Check if it is part of a inner layoutgrid\n.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader {\n @include get-responsive-spacing-large($type: margin, $direction: bottom);\n @include get-responsive-spacing-large($type: padding, $direction: bottom);\n background: transparent;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheader-type {\n margin: 0;\n}\n\n.pageheader-title {\n margin: 0;\n}\n\n.pageheader-subtitle {\n margin: 0;\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.pageheaderwithcontrols {\n .controlgroup {\n }\n}\n\n.pageheaderwithimage {\n .pageheader-image {\n }\n .figurecontent {\n }\n}\n\n.pageheaderwithimageandcontrols {\n}\n\n.pageheaderwithsearch {\n .pageheader-title {\n margin-bottom: 1em;\n }\n}\n\n.pageheaderwithbreadcrumb {\n .breadcrumb {\n }\n}\n","/* ==========================================================================\n Pageheader\n\n========================================================================== */\n.heroheader {\n border-bottom: 1px solid $border-color-default;\n background: $header-bg-color;\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.heroheader-title {\n margin: 0 0 10px 0;\n}\n\n.heroheader-subtitle {\n margin: 0;\n padding: 0 15px;\n\n &::before {\n display: block;\n max-width: 330px;\n height: 1px;\n margin: auto auto 10px auto;\n content: \"\";\n background-color: lighten($border-color-default, 4);\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.heroheader1 {\n background-image: $brand-gradient;\n\n .heroheader-title {\n margin-bottom: 10px;\n color: #FFFFFF;\n }\n\n .heroheader-subtitle {\n padding: 0;\n color: #FFFFFF;\n\n &::before {\n display: none;\n }\n }\n}\n\n.heroheadermap {\n padding: 0 !important;\n}\n\n.heroheadermap-controls {\n padding: $spacing-large;\n background: $header-bg-color;\n}\n\n.heroheaderproduct {\n position: relative;\n overflow: hidden;\n height: 300px;\n background-color: #000000;\n\n .heroheaderproduct-backgroundimage {\n position: absolute;\n z-index: 0;\n top: 0;\n width: 100%;\n opacity: 0.7;\n filter: blur(5px);\n }\n\n .heroheaderproduct-overlay {\n position: absolute;\n z-index: 1;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.heroheaderexpense {\n .heroheaderexpense-title {\n font-size: 72px;\n }\n\n .heroheaderexpense-type {\n align-items: center;\n\n &::before {\n flex-grow: 1;\n height: 1px;\n margin-right: 10px;\n content: \"\";\n background-color: #D2D2D2;\n }\n }\n}\n","/* ==========================================================================\n Form Block\n\n Used in default forms\n========================================================================== */\n.formblock {\n}\n\n//== Elements\n//-------------------------------------------------------------------------------------------------------------------//\n.formblock-title {\n margin-bottom: $gutter-size;\n padding-bottom: $gutter-size;\n border-bottom: 1px solid $border-color-default;\n}\n","/* ==========================================================================\n Master Detail\n\n A list with a listening dataview\n========================================================================== */\n.masterdetail {\n .masterdetail-master {\n .controlgroup {\n margin-bottom: $gutter-size;\n }\n\n @media (max-width: $screen-lg) {\n @include layout-spacing($type: margin, $direction: bottom, $device: responsive);\n }\n\n @media (min-width: $screen-lg) {\n border-right: 1px solid $border-color-default;\n\n .mx-listview-searchbar {\n margin: $gutter-size;\n }\n .controlgroup {\n padding: $gutter-size;\n border-bottom: 1px solid $border-color-default;\n }\n }\n }\n\n .masterdetail-detail {\n @media (min-width: $screen-lg) {\n @include layout-spacing($type: padding, $direction: all, $device: responsive);\n }\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.masterdetailvertical {\n .masterdetail-master {\n @include layout-spacing($type: margin, $direction: bottom, $device: responsive);\n }\n\n .masterdetail-detail {\n @include layout-spacing($type: padding, $direction: top, $device: responsive);\n }\n}\n","/* ==========================================================================\n User profile blocks\n -\n========================================================================== */\n.userprofile {\n .userprofile-img {\n }\n .userprofile-title {\n }\n .userprofile-subtitle {\n }\n}","$wizard-step-number-size: 60px;\n$wizard-step-height: 50px;\n\n.wizard {\n display: flex;\n justify-content: space-between;\n .wizard-step {\n position: relative;\n width: 100%;\n text-align: center;\n &::before {\n position: absolute;\n z-index: -1;\n top: $wizard-step-number-size / 2;\n display: block;\n width: 100%;\n height: 2px;\n content: \"\";\n background-color: $border-color-default;\n }\n .wizard-step-number {\n width: $wizard-step-number-size;\n height: $wizard-step-number-size;\n border-color: $border-color-default;\n border-radius: 50%;\n background-color: #FFFFFF;\n font-size: 20px;\n }\n .wizard-step-text {\n display: block;\n margin-top: 15px;\n }\n }\n\n\n // States\n .wizard-step-active {\n .wizard-step-number {\n color: #FFFFFF;\n border-color: $brand-primary;\n background-color: $brand-primary;\n }\n .wizard-step-text {\n color: $brand-primary;\n }\n }\n .wizard-step-visited {\n .wizard-step-number {\n color: #FFFFFF;\n border-color: $brand-success;\n background-color: $brand-success;\n }\n .wizard-step-text {\n }\n }\n}\n\n.wizardprogress {\n display: flex;\n justify-content: space-between;\n\n .wizard-step-text {\n width: 100%;\n }\n\n .wizard-step {\n position: relative;\n width: 100%;\n height: $wizard-step-height;\n margin-left: 0 - ($wizard-step-height / 2);\n padding-left: ($wizard-step-height / 2);\n border: 1px solid $border-color-default;\n background: #FFFFFF;\n\n a {\n display: block;\n overflow: hidden;\n width: 100%;\n height: 100%;\n padding: 14px;\n white-space: nowrap;\n text-decoration: none;\n text-overflow: ellipsis;\n color: $font-color-default;\n }\n &::before,\n &::after {\n position: absolute;\n z-index: 1;\n left: 100%;\n margin-left: 0 - ($wizard-step-height / 2);\n content: \" \";\n border-style: solid;\n border-color: transparent;\n }\n &::after {\n top: 1px;\n border-width: (($wizard-step-height / 2) - 1);\n border-left-color: #FFFFFF;\n }\n &::before {\n top: 0;\n border-width: $wizard-step-height / 2;\n border-left-color: $border-color-default;\n }\n\n &:first-child {\n margin-left: 0;\n padding-left: 0;\n border-radius: 5px 0 0 5px;\n }\n\n &:last-child {\n border-radius: 0 5px 5px 0;\n &::before,\n &::after {\n display: none;\n }\n }\n }\n // States\n .wizard-step-active {\n background: $brand-primary;\n a {\n text-decoration: none;\n color: #FFFFFF;\n }\n &::after {\n border-left-color: $brand-primary;\n }\n }\n .wizard-step-visited {\n a {\n color: $link-color;\n }\n }\n}\n","// Timeline\n.timeline {\n .timeline-header {\n display: inline-block;\n width: 110px;\n padding: 8px;\n text-align: center;\n border: 1px solid $border-color-default;\n border-radius: 30px;\n }\n}\n.timeline-itemwrapper.mx-listview {\n margin-bottom: 0;\n margin-left: 55px;\n padding: $spacing-large 0;\n border-left: 1px solid $border-color-default;\n & > ul > li {\n position: relative;\n padding-left: ($gutter-size * 2);\n\n &::before {\n position: absolute;\n top: 5px;\n left: -5px;\n display: block;\n width: 10px;\n height: 10px;\n content: '';\n border-radius: 50%;\n background-color: $brand-primary;\n }\n }\n li + li {\n margin-top: $spacing-large;\n }\n}\n\n//== Variations\n//-------------------------------------------------------------------------------------------------------------------//\n.timeline2 {\n .timeline-itemwrapper.mx-listview {\n & > ul > li {\n padding-left: $gutter-size;\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n \n The core stucture of all atlas layouts\n========================================================================== */\n.layout-atlas {\n // Toggle button\n .toggle-btn > .glyphicon {\n margin: 0;\n }\n\n // Sidebar\n .region-sidebar {\n background-color: $navsidebar-bg;\n\n .mx-navigationtree .navbar-inner > ul > li > a {\n padding: 0 15px;\n\n .glyphicon {\n margin-right: 10px;\n }\n }\n .toggle-btn {\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n }\n\n // Topbar\n .region-topbar {\n position: relative;\n z-index: 1; // Show dropshadow\n min-height: $topbar-minimalheight;\n border-bottom: 1px solid $navtopbar-border-color;\n background-color: $navtopbar-bg;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);\n\n &::before {\n z-index: 1;\n display: block;\n width: 100%;\n height: 4px;\n content: \"\";\n background-color: $brand-primary;\n }\n // Topbar Content\n .topbar-content {\n display: flex;\n align-items: center;\n min-height: $topbar-minimalheight;\n }\n\n // Toggle btn\n .toggle-btn {\n margin-right: 15px;\n padding: 5px;\n }\n\n // For your company, product, or project name\n .navbar-brand {\n display: inline-block;\n // reset bootstrap\n float: none;\n height: auto;\n padding: 0;\n line-height: inherit;\n\n img {\n display: inline-block;\n @if $brand-logo !=false {\n width: 0;\n height: 0;\n padding: ($brand-logo-height / 2) ($brand-logo-width / 2);\n background-image: url($brand-logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: $brand-logo-width;\n } @else {\n width: auto;\n height: $brand-logo-height;\n }\n }\n\n a {\n margin-left: 5px;\n color: $navbar-brand-name;\n font-size: 20px;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .mx-navbar {\n display: inline-block;\n margin-left: $gutter-size;\n vertical-align: middle;\n background: transparent;\n\n & > .mx-navbar-item {\n & > a {\n margin-top: 5px;\n padding: 0 20px;\n }\n }\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n \n Extra styling for phone layouts\n========================================================================== */\n.layout-atlas-phone {\n .region-topbar {\n min-height: $m-header-height;\n border-style: none;\n background-color: $m-header-bg;\n\n &::before {\n display: none;\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n\n Extra styling for responsive layouts\n========================================================================== */\n.layout-atlas-responsive-default {\n $sidebar-width: 60px;\n\n @media (min-width: $screen-md) {\n .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar {\n width: $sidebar-width !important;\n\n .mx-scrollcontainer-wrapper > .mx-navigationtree ul li {\n &.mx-navigationtree-has-items:hover {\n a {\n background-color: $navsidebar-sub-bg;\n }\n\n ul {\n position: absolute;\n z-index: 100;\n top: 0;\n bottom: 0;\n left: $sidebar-width;\n display: block;\n overflow-y: auto;\n min-width: 200px;\n padding-top: 10px;\n }\n }\n\n &.mx-navigationtree-collapsed,\n &.mx-navigationtree-has-items {\n ul {\n display: none;\n }\n }\n }\n }\n }\n\n\n .mx-scrollcontainer-slide {\n &:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow: hidden;\n }\n\n &.mx-scrollcontainer-open > .region-sidebar {\n width: $sidebar-width !important;\n\n & > .mx-scrollcontainer-wrapper {\n position: relative;\n }\n }\n\n .region-sidebar > .mx-scrollcontainer-wrapper {\n z-index: 2;\n left: 0 !important;\n background-color: inherit;\n }\n }\n\n // Push aside for mobile\n @media (max-width: $screen-sm-max) {\n .mx-scrollcontainer-open:not(.mx-scrollcontainer-slide) {\n width: 1100px;\n }\n\n .mx-scrollcontainer-slide .toggle-btn {\n display: inline-block !important;\n }\n }\n \n .mx-scrollcontainer-slide,\n .mx-scrollcontainer-push {\n &:not(.mx-scrollcontainer-open) > .region-sidebar {\n visibility: hidden;\n }\n }\n\n // Sidebar\n .region-sidebar {\n .toggle-btn {\n width: $sidebar-width;\n height: 60px;\n border-color: transparent;\n border-radius: 0;\n background: transparent;\n }\n\n .mx-scrollcontainer-wrapper > .mx-navigationtree {\n .navbar-inner > ul > li {\n & > a {\n height: $sidebar-width;\n // Glyph icon\n .glyphicon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n margin-left: -5px;\n padding: 10px;\n border-radius: 3px;\n }\n\n &.active {\n .glyphicon {\n background: $brand-primary;\n }\n }\n }\n }\n }\n }\n\n // Topbar\n .region-topbar {\n }\n}\n\n// Topbar variant\n.layout-atlas-responsive-topbar {\n}\n\n// All responsive layouts\n.layout-atlas-responsive-default,\n.layout-atlas-responsive-topbar {\n // Topbar\n .region-topbar {\n .toggle-btn {\n display: none;\n\n @media (max-width: $screen-sm-max) {\n display: inline-block;\n }\n }\n }\n}\n\n// Fix Safari issue of sidebar disappearing\n.profile-tablet {\n .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar {\n overflow-y: hidden;\n\n .mx-scrollcontainer-wrapper {\n overflow: visible;\n }\n }\n}\n","/* ==========================================================================\n Atlas layout\n \n Extra styling for tablet layouts\n========================================================================== */\n.layout-atlas-tablet {\n // tablet\n}\n",".devicephone {\n width: 420px;\n height: 992px;\n margin: auto;\n padding: 120px 40px;\n background: url(../../../resources/phone.png) no-repeat center center;\n\n .deviceframe,\n .deviceshadowwrapper {\n border-radius: 40px;\n }\n}\n\n.devicetablet {\n width: 1210px;\n height: 1000px;\n margin: auto;\n padding: 120px 100px;\n background: url(../../../resources/tablet.png) no-repeat center center;\n\n .deviceframe,\n .deviceshadowwrapper {\n border-radius: 20px;\n }\n}\n\n.deviceframe {\n width: 100%;\n height: 100%;\n border: none;\n}\n.deviceshadowwrapper {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.deviceshadow {\n position: absolute;\n z-index: 2;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n content: '';\n pointer-events: none;\n box-shadow: inset 10px 0 10px -10px black, inset -10px 0 10px -10px black;\n}\n.devicedisclaimer {\n margin-top: 80px;\n padding: 10px;\n text-align: center;\n color: $gray-light;\n border-top: 1px solid $border-color-default;\n font-size: 12px;\n line-height: 20px;\n}\n","@import \"custom-variables\";\n"],"names":[],"mappings":"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B,CAAG,iBAAiB,AAAC,CACpC,UAAU,CAAE,IAAI,CACnB,ACtBL,AtBNI,iBsBMa,CtBNX,mBAAmB,AAAC,CAClB,KAAK,CNoBuC,IAAO,CMnBnD,YAAY,CNAgC,IAAO,CMCnD,UAAU,CNDkC,IAAO,CMEtD,AsBEL,AtBDI,iBsBCa,CtBDX,iBAAiB,AAAC,CAChB,YAAY,CNJgC,IAAO,CMKtD,AsBGL,AtBVI,iBsBUa,CtBVX,mBAAmB,AAAC,CAClB,KAAK,CL4gB2B,IAAI,CK3gBpC,YAAY,CNCgC,OAAO,CMAnD,UAAU,CNAkC,OAAO,CMCtD,AsBML,AtBLI,iBsBKa,CtBLX,iBAAiB,AAAC,CAChB,YAAY,CNHgC,OAAO,CMItD,AsBOL,AtBdI,iBsBca,CtBdX,mBAAmB,AAAC,CAClB,KAAK,CL2gB2B,IAAI,CK1gBpC,YAAY,CNEgC,OAAO,CMDnD,UAAU,CNCkC,OAAO,CMAtD,AsBUL,AtBTI,iBsBSa,CtBTX,iBAAiB,AAAC,CAChB,YAAY,CNFgC,OAAO,CMGtD,AsBYL,AtBnBI,iBsBmBa,CtBnBX,mBAAmB,AAAC,CAClB,KAAK,CL8gB2B,IAAI,CK7gBpC,YAAY,CNIgC,OAAO,CMHnD,UAAU,CNGkC,OAAO,CMFtD,AsBeL,AtBdI,iBsBca,CtBdX,iBAAiB,AAAC,CAChB,YAAY,CNAgC,OAAO,CMCtD,AsBiBL,AtBxBI,csBwBU,CtBxBR,mBAAmB,AAAC,CAClB,KAAK,CL6gB2B,IAAI,CK5gBpC,YAAY,CNGgC,OAAO,CMFnD,UAAU,CNEkC,OAAO,CMDtD,AsBoBL,AtBnBI,csBmBU,CtBnBR,iBAAiB,AAAC,CAChB,YAAY,CNDgC,OAAO,CMEtD,AsBsBL,AtB7BI,iBsB6Ba,CtB7BX,mBAAmB,AAAC,CAClB,KAAK,CL+gB2B,IAAI,CK9gBpC,YAAY,CNKgC,OAAO,CMJnD,UAAU,CNIkC,OAAO,CMHtD,AsByBL,AtBxBI,iBsBwBa,CtBxBX,iBAAiB,AAAC,CAChB,YAAY,CNCgC,OAAO,CMAtD,AsB2BL,AtBlCI,gBsBkCY,CtBlCV,mBAAmB,AAAC,CAClB,KAAK,CLghB2B,IAAI,CK/gBp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"} \ No newline at end of file diff --git a/test/theme/styles/web/sass/app/_custom-variables.scss b/test/theme/styles/web/sass/app/_custom-variables.scss deleted file mode 100755 index a47c7e0..0000000 --- a/test/theme/styles/web/sass/app/_custom-variables.scss +++ /dev/null @@ -1,73 +0,0 @@ -//== Gray Shades -//## Different gray shades to be used for our variables and components -$gray-darker: #222222; -$gray-dark: #333333; -$gray: #555555; -$gray-light: #888888; -$gray-primary: #D7D7D7; -$gray-lighter: #EEEEEE; - -//== Step 1: Brand Colors -$brand-default: #DDDDDD; -$brand-primary: #0595DB; -$brand-inverse: #252C36; -$brand-info: #48B0F7; -$brand-success: #76CA02; -$brand-warning: #F99B1D; -$brand-danger: #ED1C24; - -// Used for other variables -$default-border-color: $gray-primary; - -//== Step 3: Typography -$font-family-import: "https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700"; -@if $font-family-import != false { - // Only import, if the import is set - @import url($font-family-import); -} -$font-family-base: "Open Sans", sans-serif; -$font-base-size: 14px; -$font-base-color: #555555; -$link-color: $brand-primary; -$font-size-h1: 31px; -$font-size-h2: 26px; -$font-size-h3: 24px; -$font-size-h4: 18px; -$font-color-detail: $gray-light; -$font-color-headers: #17347B; - -//== Step 2: UI Customization - -// Topbar -$topbar-bg: #FFFFFF; -$navtopbar-border-color: $default-border-color; -$topbar-border-color: $navtopbar-border-color; -$topbar-minimalheight: 60px; -$navtopbar-color: $font-base-color; -$navbar-brand-name: $default-border-color; -$brand-logo: false; -$brand-logo-height: 30px; -$brand-logo-width: 30px; - -// Sidebar -$sidebar-bg: $brand-inverse; -$navsidebar-color: #FFFFFF; -$navsidebar-color-hover: $navsidebar-color; - -// Backgrounds -$bg-color: #FFFFFF; -$bg-color-secondary: #F5F8FD; - -// == Old variables used in theme customizer to the new lib variables -$font-size-default: $font-base-size; -$font-color-default: $font-base-color; -$border-color-default: $default-border-color; -$font-color-header: $font-color-headers; - - -//== Settings -//## Enable or disable your desired framework features -// Use of !important -$important-flex: true; // ./base/flex.scss -$important-spacing: true; // ./base/spacing.scss -$important-helpers: true; // ./helpers/helperclasses.scss diff --git a/test/theme/styles/web/sass/app/_custom.scss b/test/theme/styles/web/sass/app/_custom.scss deleted file mode 100755 index fffc412..0000000 --- a/test/theme/styles/web/sass/app/_custom.scss +++ /dev/null @@ -1 +0,0 @@ -@import "custom-variables"; diff --git a/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.eot b/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.eot deleted file mode 100755 index b93a495..0000000 Binary files a/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.svg b/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.svg deleted file mode 100755 index 94fb549..0000000 --- a/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.ttf b/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.ttf deleted file mode 100755 index 1413fc6..0000000 Binary files a/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff b/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff deleted file mode 100755 index 9e61285..0000000 Binary files a/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100755 index 64539b5..0000000 Binary files a/test/theme/styles/web/sass/core/_legacy/bootstrap/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ diff --git a/test/theme/styles/web/sass/core/_variables.scss b/test/theme/styles/web/sass/core/_variables.scss deleted file mode 100755 index 03c2ac1..0000000 --- a/test/theme/styles/web/sass/core/_variables.scss +++ /dev/null @@ -1,641 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// -// ██████╗ █████╗ ███████╗██╗ ██████╗ -// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝ -// ██████╔╝███████║███████╗██║██║ -// ██╔══██╗██╔══██║╚════██║██║██║ -// ██████╔╝██║ ██║███████║██║╚██████╗ -// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝ -// - - -//== Gray Shades -//## Different gray shades to be used for our variables and components -$gray-darker: #222 !default; -$gray-dark: #333 !default; -$gray: #555 !default; -$gray-light: #888 !default; -$gray-primary: #d7d7d7 !default; -$gray-lighter: #eee !default; - - -//== Step 1: Brand Colors -$brand-default: #DDDDDD !default; -$brand-primary: #0595DB !default; -$brand-inverse: #252C36 !default; -$brand-info: #48B0F7 !default; -$brand-success: #76CA02 !default; -$brand-warning: #f99b1d !default; -$brand-danger: #ed1c24 !default; - -$brand-logo: false !default; -$brand-logo-height: 26px !default; -$brand-logo-width: 26px !default; // Only used for CSS brand logo - - - - - -//== Step 2: UI Customization - -// Default Font Size & Color -$font-size-default: 14px !default; -$font-color-default: #555 !default; - -// Global Border Color -$border-color-default: $gray-primary !default; -$border-radius-default: 4px !default; - -// Topbar -$topbar-bg: #FFF !default; -$topbar-minimalheight: 60px !default; -$topbar-border-color: $border-color-default !default; - -// Topbar mobile -$m-header-height: 45px !default; -$m-header-bg: $topbar-bg !default; -$m-header-color: #555 !default; -$m-header-title-size: 17px !default; - - -// Sidebar -$sidebar-bg: $brand-inverse !default; - -// Navbar Brand Name / For your company, product, or project name (used in layouts/base/) -$navbar-brand-name: $font-color-default !default; - -// Background Colors -$bg-color: #FFF !default; -$bg-color-secondary: #F5F8FD !default; // Background color that is used for specific page templates background - -// Default Link Color -$link-color: $brand-primary !default; -$link-hover-color: darken($link-color, 15%) !default; - - - - - -// -// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗ -// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗ -// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║ -// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║ -// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝ -// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ -// - - -//== Typography -//## Change your font family, weight, line-height, headings and more (used in components/typography) - -// Font Family Import (Used for google font plugin in theme creater https://ux.mendix.com/theme-creator.html) -$font-family-import: "https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" !default; -@if $font-family-import != false { - // Only import, if the import is set - @import url($font-family-import); -} - -// Font Family / False = fallback from Bootstrap (Helvetica Neue) -$font-family-base: 'Open Sans', sans-serif !default; - -// Font Sizes -$font-size-large: 16px !default; -$font-size-small: 12px !default; - -// Font Weights -$font-weight-light: 100 !default; -$font-weight-normal: normal !default; -$font-weight-semibold: 600 !default; -$font-weight-bold: bold !default; - -// Font Size Headers -$font-size-h1: 31px !default; -$font-size-h2: 26px !default; -$font-size-h3: 24px !default; -$font-size-h4: 18px !default; -$font-size-h5: $font-size-default !default; -$font-size-h6: 12px !default; - -// Font Weight Headers -$font-weight-header: $font-weight-normal !default; - -// Line Height -$line-height-base: 1.428571429 !default; - -// Spacing -$font-header-margin: 15px 0 30px 0 !default; - -// Text Colors -$font-color-header: #17347B !default; -$font-color-detail: $gray-light !default; - - - - - -//== Navigation -//## Used in components/navigation - -// Default Navigation styling -$navigation-item-height: 60px !default; -$navigation-item-padding: 5px 15px !default; - -$navigation-font-size: $font-size-default !default; -$navigation-sub-font-size: $font-size-small !default; -$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler - -$navigation-bg: $brand-inverse !default; -$navigation-bg-hover: lighten($navigation-bg, 4) !default; -$navigation-bg-active: lighten($navigation-bg, 8) !default; -$navigation-color: #FFF !default; -$navigation-color-hover: #FFF !default; -$navigation-color-active: #FFF !default; - -$navigation-sub-bg: darken($navigation-bg, 4) !default; -$navigation-sub-bg-hover: $navigation-sub-bg !default; -$navigation-sub-bg-active: $navigation-sub-bg !default; -$navigation-sub-color: #AAA !default; -$navigation-sub-color-hover: $brand-primary !default; -$navigation-sub-color-active: $brand-primary !default; - -$navigation-border-color: $navigation-bg-hover !default; - -// Navigation Sidebar -$navsidebar-font-size: $font-size-default !default; -$navsidebar-sub-font-size: $font-size-small !default; -$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler - -$navsidebar-bg: $sidebar-bg !default; -$navsidebar-bg-hover: lighten($navsidebar-bg, 4) !default; -$navsidebar-bg-active: lighten($navsidebar-bg, 8) !default; -$navsidebar-color: #FFF !default; -$navsidebar-color-hover: #FFF !default; -$navsidebar-color-active: #FFF !default; - -$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default; -$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default; -$navsidebar-sub-bg-active: $navsidebar-sub-bg !default; -$navsidebar-sub-color: #AAA !default; -$navsidebar-sub-color-hover: $brand-primary !default; -$navsidebar-sub-color-active: $brand-primary !default; - -$navsidebar-border-color: $navsidebar-bg-hover !default; - -// Navigation topbar -$navtopbar-font-size: $font-size-default !default; -$navtopbar-sub-font-size: $font-size-small !default; -$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler - -$navtopbar-bg: $topbar-bg !default; -$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default; -$navtopbar-bg-active: darken($navtopbar-bg, 8) !default; -$navtopbar-color: $font-color-default !default; -$navtopbar-color-hover: $navtopbar-color !default; -$navtopbar-color-active: $navtopbar-color !default; - -$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default; -$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default; -$navtopbar-sub-bg-active: $navtopbar-sub-bg !default; -$navtopbar-sub-color: #AAA !default; -$navtopbar-sub-color-hover: $brand-primary !default; -$navtopbar-sub-color-active: $brand-primary !default; - -//## Used in layouts/base -$navtopbar-border-color: $topbar-border-color !default; - - - - -//== Form -//## Used in components/inputs - -// Values that can be used default | lined -$form-input-style: default !default; - -// Form Label -$form-label-color: #666 !default; -$form-label-size: $font-size-default !default; -$form-label-weight: $font-weight-semibold !default; -$form-label-gutter: 8px !default; - -// Form Input dimensions -$form-input-height: auto !default; -$form-input-padding-y: 8px !default; -$form-input-padding-x: 10px !default; -$form-input-font-size: $form-label-size !default; -$form-input-line-height: $line-height-base !default; -$form-input-border-radius: $border-radius-default !default; - -// Form Input styling -$form-input-bg: #FFF !default; -$form-input-bg-focus: #FFF !default; -$form-input-bg-hover: $gray-primary !default; -$form-input-bg-disabled: $gray-lighter !default; -$form-input-color: $font-color-default !default; -$form-input-focus-color: $form-input-color !default; -$form-input-disabled-color: $form-input-color !default; -$form-input-placeholder-color: $gray-light !default; -$form-input-border-color: $border-color-default !default; -$form-input-border-focus-color: $brand-primary !default; - -// Form Input Static styling -$form-input-static-border-color: #F0F0EE !default; - -// Form Group -$form-group-margin-bottom: 15px !default; -$form-group-gutter: 15px !default; - - - - -//== Buttons -//## Define background-color, border-color and text. Used in components/buttons - -// Default button style -$btn-font-size: 14px !default; -$btn-bordered: false !default; // Default value false, set to true if you want this effect -$btn-border-radius: $border-radius-default !default; - -// Button Background Color -$btn-default-bg: #FFF !default; -$btn-inverse-bg: $brand-inverse !default; -$btn-primary-bg: $brand-primary !default; -$btn-info-bg: $brand-info !default; -$btn-success-bg: $brand-success !default; -$btn-warning-bg: $brand-warning !default; -$btn-danger-bg: $brand-danger !default; - -// Button Border Color -$btn-default-border-color: $brand-default !default; -$btn-inverse-border-color: $btn-inverse-bg !default; -$btn-primary-border-color: $btn-primary-bg !default; -$btn-info-border-color: $btn-info-bg !default; -$btn-success-border-color: $btn-success-bg !default; -$btn-warning-border-color: $btn-warning-bg !default; -$btn-danger-border-color: $btn-danger-bg !default; - -// Button Text Color -$btn-default-color: $brand-primary !default; -$btn-inverse-color: #FFF !default; -$btn-primary-color: #FFF !default; -$btn-info-color: #FFF !default; -$btn-success-color: #FFF !default; -$btn-warning-color: #FFF !default; -$btn-danger-color: #FFF !default; - -// Button Background Color -$btn-default-bg-hover: $btn-default-border-color !default; -$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default; -$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default; -$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default; -$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default; -$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default; -$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default; -$btn-link-bg-hover: $gray-lighter !default; - - - - -//== Header blocks -//## Define look and feel over multible building blocks that serve as header -$header-bg-color: $bg-color-secondary !default; -$header-text-color: #FFF !default; -$header-text-color-detail: rgba(0,0,0, 0.2) !default; - - - - - -// -// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗ -// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝ -// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║ -// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║ -// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║ -// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ -// - -//== Color variations -//## These variations are used to support several other variables and components - -// Color variations -$color-default-darker: mix($brand-default, black, 60%) !default; -$color-default-dark: mix($brand-default, black, 70%) !default; -$color-default-light: mix($brand-default, white, 60%) !default; -$color-default-lighter: mix($brand-default, white, 20%) !default; - -$color-inverse-darker: mix($brand-inverse, black, 60%) !default; -$color-inverse-dark: mix($brand-inverse, black, 70%) !default; -$color-inverse-light: mix($brand-inverse, white, 60%) !default; -$color-inverse-lighter: mix($brand-inverse, white, 20%) !default; - -$color-primary-darker: mix($brand-primary, black, 60%) !default; -$color-primary-dark: mix($brand-primary, black, 70%) !default; -$color-primary-light: mix($brand-primary, white, 60%) !default; -$color-primary-lighter: mix($brand-primary, white, 20%) !default; - -$color-info-darker: mix($brand-info, black, 60%) !default; -$color-info-dark: mix($brand-info, black, 70%) !default; -$color-info-light: mix($brand-info, white, 60%) !default; -$color-info-lighter: mix($brand-info, white, 20%) !default; - -$color-success-darker: mix($brand-success, black, 60%) !default; -$color-success-dark: mix($brand-success, black, 70%) !default; -$color-success-light: mix($brand-success, white, 60%) !default; -$color-success-lighter: mix($brand-success, white, 20%) !default; - -$color-warning-darker: mix($brand-warning, black, 60%) !default; -$color-warning-dark: mix($brand-warning, black, 70%) !default; -$color-warning-light: mix($brand-warning, white, 60%) !default; -$color-warning-lighter: mix($brand-warning, white, 20%) !default; - -$color-danger-darker: mix($brand-danger, black, 60%) !default; -$color-danger-dark: mix($brand-danger, black, 70%) !default; -$color-danger-light: mix($brand-danger, white, 60%) !default; -$color-danger-lighter: mix($brand-danger, white, 20%) !default; - -$brand-gradient: linear-gradient(152deg, #0CC7F0 0%, #087ECC 51%, #077AC9 55%, #0659B9 78%) !default; - - -//== Grids -//## Used for Datagrid, Templategrid, Listview & Tables (see components folder) - -// Default Border Colors -$grid-border-color: $border-color-default !default; - -// Spacing -// Default -$grid-padding-top: 15px !default; -$grid-padding-right: 15px !default; -$grid-padding-bottom: 15px !default; -$grid-padding-left: 15px !default; - -// Listview -$listview-padding-top: 15px !default; -$listview-padding-right: 15px !default; -$listview-padding-bottom: 15px !default; -$listview-padding-left: 15px !default; - -// Background Colors -$grid-bg: #FFF !default; -$grid-bg-header: transparent !default; // Grid Headers -$grid-bg-hover: mix($grid-border-color, #FFF, 20%) !default; -$grid-bg-selected: mix($grid-border-color, #FFF, 30%) !default; -$grid-bg-selected-hover: mix($grid-border-color, #FFF, 50%) !default; - -// Striped Background Color -$grid-bg-striped: mix($grid-border-color, #FFF, 10%) !default; - -// Background Footer Color -$grid-footer-bg: $gray-primary !default; - -// Text Color -$grid-selected-color: $font-color-default !default; - -// Paging Colors -$grid-paging-bg: transparent !default; -$grid-paging-bg-hover: transparent !default; -$grid-paging-border-color: transparent !default; -$grid-paging-border-color-hover: transparent !default; -$grid-paging-color: $gray-light !default; -$grid-paging-color-hover: $brand-primary !default; - - - - -//== Tabs -//## Default variables for Tab Container Widget (used in components/tabcontainer) - -// Text Color -$tabs-color: $font-color-detail !default; -$tabs-color-active: $font-color-default !default; -$tabs-lined-color-active: $brand-primary !default; - -// Border Color -$tabs-border-color: $border-color-default !default; -$tabs-lined-border-color: $brand-primary !default; - -// Background Color -$tabs-bg: #FFF !default; -$tabs-bg-hover: lighten($tabs-border-color,5) !default; -$tabs-bg-active: $brand-primary !default; - - - - -//== Modals -//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals) - -// Background Color -$modal-header-bg: transparent !default; - -// Border Color -$modal-header-border-color: $border-color-default !default; - -// Text Color -$modal-header-color: $font-color-default !default; - - - - -//== Dataview -//## Default variables for Dataview Widget (used in components/dataview) - -// Controls -$dataview-controls-bg: transparent !default; -$dataview-controls-border-color: $border-color-default !default; - -// Empty Message -$dataview-emptymessage-bg: $bg-color !default; -$dataview-emptymessage-color: $font-color-default !default; - - - - -//== Alerts -//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) - -// Background Color -$alert-info-bg: $color-info-lighter !default; -$alert-success-bg: $color-success-lighter !default; -$alert-warning-bg: $color-warning-lighter !default; -$alert-danger-bg: $color-danger-lighter !default; - -// Text Color -$alert-info-color: $color-info-darker !default; -$alert-success-color: $color-success-darker !default; -$alert-warning-color: $color-warning-darker !default; -$alert-danger-color: $color-danger-darker !default; - -// Border Color -$alert-info-border-color: $color-info-dark !default; -$alert-success-border-color: $color-success-dark !default; -$alert-warning-border-color: $color-warning-dark !default; -$alert-danger-border-color: $color-danger-dark !default; - - - - -//== Labels -//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) - -// Background Color -$label-default-bg: $brand-default !default; -$label-primary-bg: $brand-primary !default; -$label-info-bg: $brand-info !default; -$label-inverse-bg: $brand-inverse !default; -$label-success-bg: $brand-success !default; -$label-warning-bg: $brand-warning !default; -$label-danger-bg: $brand-danger !default; - -// Border Color -$label-default-border-color: $brand-default !default; -$label-primary-border-color: $brand-primary !default; -$label-info-border-color: $brand-info !default; -$label-success-border-color: $brand-success !default; -$label-warning-border-color: $brand-warning !default; -$label-danger-border-color: $brand-danger !default; - -// Text Color -$label-default-color: $font-color-default !default; -$label-primary-color: #FFF !default; -$label-info-color: #FFF !default; -$label-inverse-color: #FFF !default; -$label-success-color: #FFF !default; -$label-warning-color: #FFF !default; -$label-danger-color: #FFF !default; - - - - -//== Groupbox -//## Default variables for Groupbox Widget (used in components/groupbox) - -// Background Color -$groupbox-default-bg: $brand-default !default; -$groupbox-inverse-bg: $brand-inverse !default; -$groupbox-primary-bg: $brand-primary !default; -$groupbox-info-bg: $brand-info !default; -$groupbox-success-bg: $brand-success !default; -$groupbox-warning-bg: $brand-warning !default; -$groupbox-danger-bg: $brand-danger !default; -$groupbox-white-bg: #FFF !default; - -// Text Color -$groupbox-default-color: $font-color-default !default; -$groupbox-inverse-color: #FFF !default; -$groupbox-primary-color: #FFF !default; -$groupbox-info-color: #FFF !default; -$groupbox-success-color: #FFF !default; -$groupbox-warning-color: #FFF !default; -$groupbox-danger-color: #FFF !default; -$groupbox-white-color: $font-color-default !default; - - - - -//== Callout (groupbox) Colors -//## Extended variables for Groupbox Widget (used in components/groupbox) - -// Text and Border Color -$callout-default-color: $font-color-default !default; -$callout-info-color: $brand-info !default; -$callout-success-color: $brand-success !default; -$callout-warning-color: $brand-warning !default; -$callout-danger-color: $brand-danger !default; - -// Background Color -$callout-default-bg: $color-default-lighter!default; -$callout-info-bg: $color-info-lighter !default; -$callout-success-bg: $color-success-lighter !default; -$callout-warning-bg: $color-warning-lighter !default; -$callout-danger-bg: $color-danger-lighter !default; - - - - - -//== Spacing -//## Advanced layout options (used in base/mixins/default-spacing) - -// Small spacing -$spacing-small: 5px !default; - -// Medium spacing -$spacing-medium: 15px !default; -$t-spacing-medium: 15px !default; -$m-spacing-medium: 15px !default; - -// Large spacing -$spacing-large: 30px !default; -$t-spacing-large: 30px !default; -$m-spacing-large: 15px !default; - -// Layout spacing -$layout-spacing-top: 30px !default; -$layout-spacing-right: 30px !default; -$layout-spacing-bottom: 30px !default; -$layout-spacing-left: 30px !default; - -$t-layout-spacing-top: 30px !default; -$t-layout-spacing-right: 30px !default; -$t-layout-spacing-bottom: 30px !default; -$t-layout-spacing-left: 30px !default; - -$m-layout-spacing-top: 15px !default; -$m-layout-spacing-right: 15px !default; -$m-layout-spacing-bottom: 15px !default; -$m-layout-spacing-left: 15px !default; - -// Combined layout spacing -$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default; -$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default; -$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default; - -// Gutter size -$gutter-size: 15px !default; - - - - - -//== Tables -//## Table spacing options (used in components/tables) - -$padding-table-cell-top: 8px !default; -$padding-table-cell-bottom: 8px !default; -$padding-table-cell-left: 8px !default; -$padding-table-cell-right: 8px !default; - - - - -//== Media queries breakpoints -//## Define the breakpoints at which your layout will change, adapting to different screen sizes. - -$screen-xs: 480px !default; -$screen-sm: 576px !default; -$screen-md: 768px !default; -$screen-lg: 992px !default; -$screen-xl: 1200px !default; - -// So media queries don't overlap when required, provide a maximum (used for max-width) -$screen-xs-max: ($screen-sm - 1) !default; -$screen-sm-max: ($screen-md - 1) !default; -$screen-md-max: ($screen-lg - 1) !default; -$screen-lg-max: ($screen-xl - 1) !default; - - -//== Settings -//## Enable or disable your desired framework features -// Use of !important -$important-flex: true !default; // ./base/flex.scss -$important-spacing: true !default; // ./base/spacing.scss -$important-helpers: true !default; // ./helpers/helperclasses.scss diff --git a/test/theme/styles/web/sass/core/base/_spacing.scss b/test/theme/styles/web/sass/core/base/_spacing.scss deleted file mode 100755 index 4d020f9..0000000 --- a/test/theme/styles/web/sass/core/base/_spacing.scss +++ /dev/null @@ -1,217 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Spacing - - Spacing classes -========================================================================== */ -$important-spacing-value: if($important-spacing, ' !important', ''); - -// Spacing none -.spacing-inner-none { - padding: 0 #{$important-spacing-value}; -} - -.spacing-inner-top-none { - padding-top: 0 #{$important-spacing-value}; -} - -.spacing-inner-right-none { - padding-right: 0 #{$important-spacing-value}; -} - -.spacing-inner-bottom-none { - padding-bottom: 0 #{$important-spacing-value}; -} - -.spacing-inner-left-none { - padding-left: 0 #{$important-spacing-value}; -} - -.spacing-outer-none { - margin: 0 #{$important-spacing-value}; -} - -.spacing-outer-top-none { - margin-top: 0 #{$important-spacing-value}; -} - -.spacing-outer-right-none { - margin-right: 0 #{$important-spacing-value}; -} - -.spacing-outer-bottom-none { - margin-bottom: 0 #{$important-spacing-value}; -} - -.spacing-outer-left-none { - margin-left: 0 #{$important-spacing-value}; -} - -// Spacing small -.spacing-inner { - padding: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-top { - padding-top: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-right { - padding-right: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-bottom { - padding-bottom: $spacing-small #{$important-spacing-value}; -} - -.spacing-inner-left { - padding-left: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer { - margin: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-top { - margin-top: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-right { - margin-right: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-bottom { - margin-bottom: $spacing-small #{$important-spacing-value}; -} - -.spacing-outer-left { - margin-left: $spacing-small #{$important-spacing-value}; -} - -// Spacing Medium -.spacing-inner-medium { - @include get-responsive-spacing-medium($type: padding, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-top-medium { - @include get-responsive-spacing-medium($type: padding, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-right-medium { - @include get-responsive-spacing-medium($type: padding, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-bottom-medium { - @include get-responsive-spacing-medium($type: padding, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-left-medium { - @include get-responsive-spacing-medium($type: padding, $direction: left, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-medium { - @include get-responsive-spacing-medium($type: margin, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-top-medium { - @include get-responsive-spacing-medium($type: margin, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-right-medium { - @include get-responsive-spacing-medium($type: margin, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-bottom-medium { - @include get-responsive-spacing-medium($type: margin, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-left-medium { - @include get-responsive-spacing-medium($type: margin, $direction: left, $is_important: #{$important-spacing-value}); -} - -// Spacing Large -.spacing-inner-large { - @include get-responsive-spacing-large($type: padding, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-top-large { - @include get-responsive-spacing-large($type: padding, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-right-large { - @include get-responsive-spacing-large($type: padding, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-bottom-large { - @include get-responsive-spacing-large($type: padding, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-left-large { - @include get-responsive-spacing-large($type: padding, $direction: left, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-large { - @include get-responsive-spacing-large($type: margin, $direction: all, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-top-large { - @include get-responsive-spacing-large($type: margin, $direction: top, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-right-large { - @include get-responsive-spacing-large($type: margin, $direction: right, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-bottom-large { - @include get-responsive-spacing-large($type: margin, $direction: bottom, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-left-large { - @include get-responsive-spacing-large($type: margin, $direction: left, $is_important: #{$important-spacing-value}); -} - -// Spacing layouts -.spacing-inner-layout { - @include layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-top-layout { - @include layout-spacing($type: padding, $direction: top, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-right-layout { - @include layout-spacing($type: padding, $direction: right, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-bottom-layout { - @include layout-spacing($type: padding, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-inner-left-layout { - @include layout-spacing($type: padding, $direction: left, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-layout { - @include layout-spacing($type: margin, $direction: all, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-top-layout { - @include layout-spacing($type: margin, $direction: top, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-right-layout { - @include layout-spacing($type: margin, $direction: right, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-bottom-layout { - @include layout-spacing($type: margin, $direction: bottom, $device: responsive, $is_important: #{$important-spacing-value}); -} - -.spacing-outer-left-layout { - @include layout-spacing($type: margin, $direction: left, $device: responsive, $is_important: #{$important-spacing-value}); -} diff --git a/test/theme/styles/web/sass/core/helpers/_backgrounds.scss b/test/theme/styles/web/sass/core/helpers/_backgrounds.scss deleted file mode 100755 index 8c4a57b..0000000 --- a/test/theme/styles/web/sass/core/helpers/_backgrounds.scss +++ /dev/null @@ -1,164 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Backgrounds - - Different background components, all managed by variables -========================================================================== */ - -.background-main { - background-color: $bg-color !important; -} - -.background-secondary { - background-color: $bg-color-secondary !important; -} - -.background-default { - background-color: $brand-default !important; -} - -.background-default-darker { - background-color: $color-default-darker !important; -} - -.background-default-dark { - background-color: $color-default-dark !important; -} - -.background-default-light { - background-color: $color-default-light !important; -} - -.background-default-lighter { - background-color: $color-default-lighter !important; -} - -.background-inverse { - background-color: $brand-inverse !important; -} - -.background-inverse-darker { - background-color: $color-inverse-darker !important; -} - -.background-inverse-dark { - background-color: $color-inverse-dark !important; -} - -.background-inverse-light { - background-color: $color-inverse-light !important; -} - -.background-inverse-lighter { - background-color: $color-inverse-lighter !important; -} - -.background-primary { - background-color: $brand-primary !important; -} - -.background-primary-darker { - background-color: $color-primary-darker !important; -} - -.background-primary-dark { - background-color: $color-primary-dark !important; -} - -.background-primary-light { - background-color: $color-primary-light !important; -} - -.background-primary-lighter { - background-color: $color-primary-lighter !important; -} - -.background-info { - background-color: $brand-info !important; -} - -.background-info-darker { - background-color: $color-info-darker !important; -} - -.background-info-dark { - background-color: $color-info-dark !important; -} - -.background-info-light { - background-color: $color-info-light !important; -} - -.background-info-lighter { - background-color: $color-info-lighter !important; -} - -.background-success { - background-color: $brand-success !important; -} - -.background-success-darker { - background-color: $color-success-darker !important; -} - -.background-success-dark { - background-color: $color-success-dark !important; -} - -.background-success-light { - background-color: $color-success-light !important; -} - -.background-success-lighter { - background-color: $color-success-lighter !important; -} - -.background-warning { - background-color: $brand-warning !important; -} - -.background-warning-darker { - background-color: $color-warning-darker !important; -} - -.background-warning-dark { - background-color: $color-warning-dark !important; -} - -.background-warning-light { - background-color: $color-warning-light !important; -} - -.background-warning-lighter { - background-color: $color-warning-lighter !important; -} - -.background-danger { - background-color: $brand-danger !important; -} - -.background-danger-darker { - background-color: $color-danger-darker !important; -} - -.background-danger-dark { - background-color: $color-danger-dark !important; -} - -.background-danger-light { - background-color: $color-danger-light !important; -} - -.background-danger-lighter { - background-color: $color-danger-lighter !important; -} - -.background-brand-gradient { - background-image: $brand-gradient !important; -} diff --git a/test/theme/styles/web/sass/core/helpers/_buttons.scss b/test/theme/styles/web/sass/core/helpers/_buttons.scss deleted file mode 100755 index 87c8985..0000000 --- a/test/theme/styles/web/sass/core/helpers/_buttons.scss +++ /dev/null @@ -1,100 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Buttons - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Color variations -.btn, -.btn-default { - @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover); -} - -.btn-primary { - @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover); -} - -.btn-inverse { - @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover); -} - -.btn-success { - @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover); -} - -.btn-info { - @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover); -} - -.btn-warning { - @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover); -} - -.btn-danger { - @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover); -} - -// Button Sizes -.btn-lg { - font-size: $font-size-large; - img { - height: calc(#{$font-size-small} + 4px); - } -} - -.btn-sm { - font-size: $font-size-small; - img { - height: calc(#{$font-size-small} + 4px); - } -} - -// Button Image -.btn-image { - padding: 0; - vertical-align: middle; - border-style: none; - background-color: transparent; - img { - display: block; // or else the button doesn't get a width - height: auto; // Image set height - } - &:hover, - &:focus { - background-color: transparent; - } -} - -// Icon buttons -.btn-icon { - & > img, - & > .glyphicon { - margin: 0; - } -} - -.btn-icon-right { - & > img, - & > .glyphicon { - float: right; - margin-left: 5px; - } -} - -.btn-icon-top { - padding-right: 0; - padding-left: 0; - & > img, - & > .glyphicon { - display: block; - margin: 0 0 5px 0; - } -} - diff --git a/test/theme/styles/web/sass/core/helpers/_datagrids.scss b/test/theme/styles/web/sass/core/helpers/_datagrids.scss deleted file mode 100755 index f37c889..0000000 --- a/test/theme/styles/web/sass/core/helpers/_datagrids.scss +++ /dev/null @@ -1,157 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Datagrid Default - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Striped style -.datagrid-striped.mx-datagrid { - table { - th { - border-width: 0; - } - - tbody tr { - td { - border-top-width: 0; - } - - &:nth-child(odd) td { - background-color: $grid-bg-striped; - } - } - } -} - -// Bordered style -.datagrid-bordered.mx-datagrid { - table { - border: 1px solid; - - th { - border: 1px solid $grid-border-color; - } - - tbody tr { - td { - border: 1px solid $grid-border-color; - } - } - } - - tfoot { - > tr > th { - border-width: 0; - background-color: $grid-footer-bg; - } - - > tr > td { - border-width: 1px; - } - } -} - -// Transparent style so you can see the background -.datagrid-transparent.mx-datagrid { - table { - background-color: transparent; - - tbody tr { - &:nth-of-type(odd) { - background-color: transparent; - } - - td { - background-color: transparent; - } - } - } -} - -// Hover style activated -.datagrid-hover.mx-datagrid { - table { - tbody tr { - &:hover td { - background-color: $grid-bg-hover !important; - } - - &.selected:hover td { - background-color: $grid-bg-selected-hover !important; - } - } - } -} - -// Datagrid Row Sizes -.datagrid-lg.mx-datagrid { - table { - th { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } - - tbody tr { - td { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } - } - } -} - -.datagrid-sm.mx-datagrid { - table { - th { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2); - } - - tbody tr { - td { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left/ 2); - } - } - } -} - -// Datagrid Full Search -// Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed -.datagrid-fullsearch.mx-grid { - .mx-grid-search-button { - @extend .btn-primary; - } - - .mx-grid-reset-button { - display: none; - } - - .mx-grid-search-item { - display: block; - } - - .mx-grid-search-label { - display: none; - } - - .mx-grid-searchbar { - .mx-grid-search-controls { - position: absolute; - right: 0; - } - - .mx-grid-search-input { - width: 80%; - padding-left: 0; - - .btn, - .form-control { - height: 35px; - font-size: 12px; - } - } - } -} diff --git a/test/theme/styles/web/sass/core/helpers/_groupbox.scss b/test/theme/styles/web/sass/core/helpers/_groupbox.scss deleted file mode 100755 index 2e71036..0000000 --- a/test/theme/styles/web/sass/core/helpers/_groupbox.scss +++ /dev/null @@ -1,147 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Groupbox - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Color variations -.groupbox-default { - @include groupbox-variant($groupbox-default-color, $groupbox-default-bg); -} - -.groupbox-primary { - @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg); -} - -.groupbox-inverse { - @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg); -} - -// Success appears as green -.groupbox-success { - @include groupbox-variant($groupbox-success-color, $groupbox-success-bg); -} - -// Info appears as blue-green -.groupbox-info { - @include groupbox-variant($groupbox-info-color, $groupbox-info-bg); -} - -// Warning appears as orange -.groupbox-warning { - @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg); -} - -// Danger and error appear as red -.groupbox-danger { - @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg); -} - -// white appears as full white -.groupbox-white { - @include groupbox-variant($groupbox-white-color, $groupbox-white-bg); -} - -.groupbox-transparent { - border-bottom: 1px solid $border-color-default; - > .mx-groupbox-header { - padding: 15px 0; - color: $gray-darker; - border-style: none; - background: transparent; - font-size: 16px; - font-weight: $font-weight-semibold; - } - .mx-groupbox-body { - padding: 15px 0; - border-style: none; - background-color: transparent; - } - .mx-groupbox-collapse-icon { - color: $brand-primary; - } -} - -// Header options -.groupbox-h1 > .mx-groupbox-header { - font-size: $font-size-h1; -} - -.groupbox-h2 > .mx-groupbox-header { - font-size: $font-size-h2; -} - -.groupbox-h3 > .mx-groupbox-header { - font-size: $font-size-h3; -} - -.groupbox-h4 > .mx-groupbox-header { - font-size: $font-size-h4; -} - -.groupbox-h5 > .mx-groupbox-header { - font-size: $font-size-h5; -} - -.groupbox-h6 > .mx-groupbox-header { - font-size: $font-size-h6; -} - -// Callout Look and Feel -.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - border: 0; - background-color: $callout-info-bg; - } - .mx-groupbox-header + .mx-groupbox-body { - padding-top: 0; - } -} - -.groupbox-info.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-info-bg; - } - > .mx-groupbox-header { - color: $callout-info-color; - } -} - -.groupbox-success.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-success-bg; - } - > .mx-groupbox-header { - color: $callout-success-color; - } -} - -.groupbox-warning.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-warning-bg; - } - > .mx-groupbox-header { - color: $callout-warning-color; - } -} - -.groupbox-danger.groupbox-callout { - > .mx-groupbox-header, - > .mx-groupbox-body { - background-color: $callout-danger-bg; - } - > .mx-groupbox-header { - color: $callout-danger-color; - } -} diff --git a/test/theme/styles/web/sass/core/helpers/_helperclasses.scss b/test/theme/styles/web/sass/core/helpers/_helperclasses.scss deleted file mode 100755 index b76b778..0000000 --- a/test/theme/styles/web/sass/core/helpers/_helperclasses.scss +++ /dev/null @@ -1,346 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Helpers - - Default Mendix Helpers -========================================================================== */ -$important-helpers-value: if($important-helpers, ' !important', ''); - -// Display properties -.d-none { - display: none #{$important-helpers-value}; -} - -.d-flex { - display: flex #{$important-helpers-value}; -} - -.d-inline-flex { - display: inline-flex #{$important-helpers-value}; -} - -.d-inline { - display: inline #{$important-helpers-value}; -} - -.d-inline-block { - display: inline-block #{$important-helpers-value}; -} - -.show, -.d-block { - display: block #{$important-helpers-value}; -} - -.table, -.d-table { - display: table #{$important-helpers-value}; -} - -.table-row, -.d-table-row { - display: table-row #{$important-helpers-value}; -} - -.table-cell, -.d-table-cell { - display: table-cell #{$important-helpers-value}; -} - -.hide, -.hidden { - display: none #{$important-helpers-value}; - visibility: hidden #{$important-helpers-value}; -} - -.invisible { - visibility: hidden #{$important-helpers-value}; -} - -.display-ie8-only:not([attr*=""]) { - display: none #{$important-helpers-value}; - padding: 0 #{$important-helpers-value}; -} - -.list-nostyle { - ul { - margin: 0 #{$important-helpers-value}; - padding: 0 #{$important-helpers-value}; - - li { - list-style-type: none #{$important-helpers-value}; - } - } -} - -.nowrap, -.nowrap * { - overflow: hidden #{$important-helpers-value}; - // Star for inside an element, IE8 span > a - white-space: nowrap #{$important-helpers-value}; - text-overflow: ellipsis #{$important-helpers-value}; -} - -// Render DIV as Table Cells -.table { - display: table #{$important-helpers-value}; -} - -.table-row { - display: table-row #{$important-helpers-value}; -} - -.table-cell { - display: table-cell #{$important-helpers-value}; -} - -// Quick floats -.pull-left { - float: left #{$important-helpers-value}; -} - -.pull-right { - float: right #{$important-helpers-value}; -} - -// Align options -.align-top { - vertical-align: top #{$important-helpers-value}; -} - -.align-middle { - vertical-align: middle #{$important-helpers-value}; -} - -.align-bottom { - vertical-align: bottom #{$important-helpers-value}; -} - -// Flex alignments -.row-left { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-flow: row #{$important-helpers-value}; - justify-content: flex-start #{$important-helpers-value}; -} - -.row-center { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-flow: row #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -.row-right { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-flow: row #{$important-helpers-value}; - justify-content: flex-end #{$important-helpers-value}; -} - -.col-left { - display: flex #{$important-helpers-value}; - align-items: flex-start #{$important-helpers-value}; - flex-direction: column #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -.col-center { - display: flex #{$important-helpers-value}; - align-items: center #{$important-helpers-value}; - flex-direction: column #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -.col-right { - display: flex #{$important-helpers-value}; - align-items: flex-end #{$important-helpers-value}; - flex-direction: column #{$important-helpers-value}; - justify-content: center #{$important-helpers-value}; -} - -// Media -@media (max-width: $screen-sm-max) { - .hide-phone { - display: none #{$important-helpers-value}; - } -} - -@media (min-width: $screen-md) and (max-width: $screen-md-max) { - .hide-tablet { - display: none #{$important-helpers-value}; - } -} - -@media (min-width: $screen-lg) { - .hide-desktop { - display: none #{$important-helpers-value}; - } -} - - -@media (max-width: $screen-xs-max) { - .hide-xs, - .hidden-xs, - .d-xs-none { - display: none #{$important-helpers-value}; - } - .d-xs-flex { - display: flex #{$important-helpers-value}; - } - .d-xs-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-xs-inline { - display: inline #{$important-helpers-value}; - } - .d-xs-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-xs-block { - display: block #{$important-helpers-value}; - } - .d-xs-table { - display: table #{$important-helpers-value}; - } - .d-xs-table-row { - display: table-row #{$important-helpers-value}; - } - .d-xs-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-sm) and (max-width: $screen-sm-max) { - .hide-sm, - .hidden-sm, - .d-sm-none { - display: none #{$important-helpers-value}; - } - .d-sm-flex { - display: flex #{$important-helpers-value}; - } - .d-sm-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-sm-inline { - display: inline #{$important-helpers-value}; - } - .d-sm-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-sm-block { - display: block #{$important-helpers-value}; - } - .d-sm-table { - display: table #{$important-helpers-value}; - } - .d-sm-table-row { - display: table-row #{$important-helpers-value}; - } - .d-sm-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-md) and (max-width: $screen-md-max) { - .hide-md, - .hidden-md, - .d-md-none { - display: none #{$important-helpers-value}; - } - .d-md-flex { - display: flex #{$important-helpers-value}; - } - .d-md-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-md-inline { - display: inline #{$important-helpers-value}; - } - .d-md-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-md-block { - display: block #{$important-helpers-value}; - } - .d-md-table { - display: table #{$important-helpers-value}; - } - .d-md-table-row { - display: table-row #{$important-helpers-value}; - } - .d-md-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-lg) and (max-width: $screen-xl) { - .hide-lg, - .hidden-lg, - .d-lg-none { - display: none #{$important-helpers-value}; - } - .d-lg-flex { - display: flex #{$important-helpers-value}; - } - .d-lg-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-lg-inline { - display: inline #{$important-helpers-value}; - } - .d-lg-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-lg-block { - display: block #{$important-helpers-value}; - } - .d-lg-table { - display: table #{$important-helpers-value}; - } - .d-lg-table-row { - display: table-row #{$important-helpers-value}; - } - .d-lg-table-cell { - display: table-cell #{$important-helpers-value}; - } -} - -@media (min-width: $screen-xl) { - .hide-xl, - .hidden-xl, - .d-xl-none { - display: none #{$important-helpers-value}; - } - .d-xl-flex { - display: flex #{$important-helpers-value}; - } - .d-xl-inline-flex { - display: inline-flex #{$important-helpers-value}; - } - .d-xl-inline { - display: inline #{$important-helpers-value}; - } - .d-xl-inline-block { - display: inline-block #{$important-helpers-value}; - } - .d-xl-block { - display: block #{$important-helpers-value}; - } - .d-xl-table { - display: table #{$important-helpers-value}; - } - .d-xl-table-row { - display: table-row #{$important-helpers-value}; - } - .d-xl-table-cell { - display: table-cell #{$important-helpers-value}; - } -} diff --git a/test/theme/styles/web/sass/core/helpers/_images.scss b/test/theme/styles/web/sass/core/helpers/_images.scss deleted file mode 100755 index 7a65cc6..0000000 --- a/test/theme/styles/web/sass/core/helpers/_images.scss +++ /dev/null @@ -1,52 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Images - - Default Mendix Image Widgets -========================================================================== */ - -img.img-rounded, -.img-rounded img { - border-radius: 6px; -} - -img.img-thumbnail, -.img-thumbnail img { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - border: 1px solid $brand-default; - border-radius: 4px; - background-color: #FFFFFF; - line-height: $line-height-base; -} - -img.img-circle, -.img-circle img { - border-radius: 50%; -} - -img.img-auto, -.img-auto img { - width: auto !important; - max-width: 100% !important; - height: auto !important; - max-height: 100% !important; -} - -img.img-center, -.img-center img { - margin-right: auto !important; - margin-left: auto !important; -} diff --git a/test/theme/styles/web/sass/core/helpers/_labels.scss b/test/theme/styles/web/sass/core/helpers/_labels.scss deleted file mode 100755 index ef798ba..0000000 --- a/test/theme/styles/web/sass/core/helpers/_labels.scss +++ /dev/null @@ -1,48 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Labels - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Color variations -.label-default { - color: $label-default-color; - background-color: $label-default-bg; -} - -.label-primary { - color: $label-primary-color; - background-color: $label-primary-bg; -} - -.label-success { - color: $label-success-color; - background-color: $label-success-bg; -} - -.label-inverse { - color: $label-inverse-color; - background-color: $label-inverse-bg; -} - -.label-info { - color: $label-info-color; - background-color: $label-info-bg; -} - -.label-warning { - color: $label-warning-color; - background-color: $label-warning-bg; -} - -.label-danger { - color: $label-danger-color; - background-color: $label-danger-bg; -} diff --git a/test/theme/styles/web/sass/core/helpers/_listview.scss b/test/theme/styles/web/sass/core/helpers/_listview.scss deleted file mode 100755 index f56a4f3..0000000 --- a/test/theme/styles/web/sass/core/helpers/_listview.scss +++ /dev/null @@ -1,302 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Listview - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Bordered -.listview-bordered.mx-listview { - & > ul > li { - border: 1px solid $grid-border-color; - border-top: 0; - - &:first-child { - border-top: 1px solid $grid-border-color; - border-radius: 0; - } - - &:last-child { - border-radius: 0; - } - } -} - -// Striped -.listview-striped.mx-listview { - & > ul > li:nth-child(2n + 1) { - background-color: $grid-bg-striped; - } -} - -// Items as seperated blocks -.listview-seperated.mx-listview { - & > ul > li { - margin-bottom: $gutter-size; - border-width: 1px; - border-style: solid; - border-radius: $border-radius-default; - } -} - -// Remove all styling -.listview-stylingless.mx-listview { - & > ul > li { - padding: 0; - cursor: default; - border: 0; - background-color: transparent; - - &:hover, - &:focus, - &:active { - background-color: transparent; - } - - &.selected { - background-color: transparent !important; - - &:hover, - &:focus, - &:active { - background-color: transparent !important; - } - } - } -} - -// Hover style activated -.listview-hover.mx-listview { - & > ul > li { - &:hover, - &:focus, - &:active { - background-color: $grid-bg-hover !important; - } - - &.selected { - &:hover, - &:focus, - &:active { - background-color: $grid-bg-selected-hover !important; - } - } - } -} - -// Templategrid Row Sizes -.listview-lg.mx-listview { - & > ul > li { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } -} - -.listview-sm.mx-listview { - & > ul > li { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2); - } -} - -// Bootstrap columns -.mx-listview[class*='lv-col'] { - overflow: hidden; // For if it is not in a layout, to prevent scrollbars - & > ul { - display: block; // normal a table - margin-right: -1 * $gutter-size; - margin-left: -1 * $gutter-size; - - &::before, - &::after { - // clearfix - display: table; - clear: both; - content: ' '; - } - - & > li { - // bootstrap col - position: relative; - display: block; // normal a table - float: left; - min-height: 1px; - padding-right: $gutter-size; - padding-left: $gutter-size; - border: 0; - @media (max-width: $screen-md-max) { - width: 100% !important; - } - - & > .mx-dataview { - overflow: hidden; - } - } - } - - &.lv-col-xs-12 > ul > li { - width: 100% !important; - } - - &.lv-col-xs-11 > ul > li { - width: 91.66666667% !important; - } - - &.lv-col-xs-10 > ul > li { - width: 83.33333333% !important; - } - - &.lv-col-xs-9 > ul > li { - width: 75% !important; - } - - &.lv-col-xs-8 > ul > li { - width: 66.66666667% !important; - } - - &.lv-col-xs-7 > ul > li { - width: 58.33333333% !important; - } - - &.lv-col-xs-6 > ul > li { - width: 50% !important; - } - - &.lv-col-xs-5 > ul > li { - width: 41.66666667% !important; - } - - &.lv-col-xs-4 > ul > li { - width: 33.33333333% !important; - } - - &.lv-col-xs-3 > ul > li { - width: 25% !important; - } - - &.lv-col-xs-2 > ul > li { - width: 16.66666667% !important; - } - - &.lv-col-xs-1 > ul > li { - width: 8.33333333% !important; - } - - @media (min-width: $screen-md) { - &.lv-col-sm-12 > ul > li { - width: 100% !important; - } - &.lv-col-sm-11 > ul > li { - width: 91.66666667% !important; - } - &.lv-col-sm-10 > ul > li { - width: 83.33333333% !important; - } - &.lv-col-sm-9 > ul > li { - width: 75% !important; - } - &.lv-col-sm-8 > ul > li { - width: 66.66666667% !important; - } - &.lv-col-sm-7 > ul > li { - width: 58.33333333% !important; - } - &.lv-col-sm-6 > ul > li { - width: 50% !important; - } - &.lv-col-sm-5 > ul > li { - width: 41.66666667% !important; - } - &.lv-col-sm-4 > ul > li { - width: 33.33333333% !important; - } - &.lv-col-sm-3 > ul > li { - width: 25% !important; - } - &.lv-col-sm-2 > ul > li { - width: 16.66666667% !important; - } - &.lv-col-sm-1 > ul > li { - width: 8.33333333% !important; - } - } - @media (min-width: $screen-lg) { - &.lv-col-md-12 > ul > li { - width: 100% !important; - } - &.lv-col-md-11 > ul > li { - width: 91.66666667% !important; - } - &.lv-col-md-10 > ul > li { - width: 83.33333333% !important; - } - &.lv-col-md-9 > ul > li { - width: 75% !important; - } - &.lv-col-md-8 > ul > li { - width: 66.66666667% !important; - } - &.lv-col-md-7 > ul > li { - width: 58.33333333% !important; - } - &.lv-col-md-6 > ul > li { - width: 50% !important; - } - &.lv-col-md-5 > ul > li { - width: 41.66666667% !important; - } - &.lv-col-md-4 > ul > li { - width: 33.33333333% !important; - } - &.lv-col-md-3 > ul > li { - width: 25% !important; - } - &.lv-col-md-2 > ul > li { - width: 16.66666667% !important; - } - &.lv-col-md-1 > ul > li { - width: 16.66666667% !important; - } - } - @media (min-width: $screen-xl) { - &.lv-col-lg-12 > ul > li { - width: 100% !important; - } - &.lv-col-lg-11 > ul > li { - width: 91.66666667% !important; - } - &.lv-col-lg-10 > ul > li { - width: 83.33333333% !important; - } - &.lv-col-lg-9 > ul > li { - width: 75% !important; - } - &.lv-col-lg-8 > ul > li { - width: 66.66666667% !important; - } - &.lv-col-lg-7 > ul > li { - width: 58.33333333% !important; - } - &.lv-col-lg-6 > ul > li { - width: 50% !important; - } - &.lv-col-lg-5 > ul > li { - width: 41.66666667% !important; - } - &.lv-col-lg-4 > ul > li { - width: 33.33333333% !important; - } - &.lv-col-lg-3 > ul > li { - width: 25% !important; - } - &.lv-col-lg-2 > ul > li { - width: 16.66666667% !important; - } - &.lv-col-lg-1 > ul > li { - width: 8.33333333% !important; - } - } -} diff --git a/test/theme/styles/web/sass/core/helpers/_navigationbar.scss b/test/theme/styles/web/sass/core/helpers/_navigationbar.scss deleted file mode 100755 index b4fbad9..0000000 --- a/test/theme/styles/web/sass/core/helpers/_navigationbar.scss +++ /dev/null @@ -1,186 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - -//== Regions -//## Behavior in the different regions -========================================================================== */ -// When used in topbar -.region-topbar { - .mx-navbar { - background-color: $navtopbar-bg; - ul.nav { - /* Navigation item */ - & > li.mx-navbar-item > a { - color: $navtopbar-color; - font-size: $navtopbar-font-size; - - /* Dropdown arrow */ - .caret { - border-top-color: $navtopbar-color; - border-bottom-color: $navtopbar-color; - } - &:hover, - &:focus, - &.active { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - .caret { - border-top-color: $navtopbar-color-active; - border-bottom-color: $navtopbar-color-active; - } - } - &.active { - color: $navtopbar-color-active; - background-color: $navtopbar-bg-active; - } - - /* Dropdown */ - .mx-navbar-submenu::before { - border-color: transparent transparent $navtopbar-border-color transparent; - } - - // Image - .glyphicon { - font-size: $navtopbar-glyph-size; - } - } - - /* When hovering or the dropdown is open */ - & > .mx-navbar-item > a:hover, - & > .mx-navbar-item > a:focus, - & > .mx-navbar-item.active a, - & > .mx-navbar-item.open > a, - & > .mx-navbar-item.open > a:hover, - & > .mx-navbar-item.open > a:focus { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - .caret { - border-top-color: $navtopbar-color-hover; - border-bottom-color: $navtopbar-color-hover; - } - } - & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { - color: $navtopbar-sub-color-active; - background-color: $navtopbar-sub-bg-active; - .caret { - border-top-color: $navtopbar-sub-color-active; - border-bottom-color: $navtopbar-sub-color-active; - } - } - } - @media (max-width: $screen-md) { - ul.nav > li.mx-navbar-item > a { - } - .mx-navbar-item.open .dropdown-menu { - background-color: $navtopbar-sub-bg; - & > li.mx-navbar-subitem > a { - color: $navtopbar-sub-color; - font-size: $navtopbar-sub-font-size; - &:hover, - &:focus { - color: $navtopbar-sub-color-hover; - background-color: $navtopbar-sub-bg-hover; - } - &.active { - color: $navtopbar-sub-color-active; - background-color: $navtopbar-sub-bg-active; - } - } - } - } - } -} - -// When used in sidebar -.region-sidebar { - .mx-navbar { - background-color: $navsidebar-bg; - ul.nav { - /* Navigation item */ - & > li.mx-navbar-item > a { - color: $navsidebar-color; - font-size: $navsidebar-font-size; - - /* Dropdown arrow */ - .caret { - border-top-color: $navsidebar-color; - border-bottom-color: $navsidebar-color; - } - &:hover, - &:focus, - &.active { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - .caret { - border-top-color: $navsidebar-color-active; - border-bottom-color: $navsidebar-color-active; - } - } - &.active { - color: $navsidebar-color-active; - background-color: $navsidebar-bg-active; - } - - /* Dropdown */ - .mx-navbar-submenu::before { - border-color: transparent transparent $navsidebar-border-color transparent; - } - - // Image - .glyphicon { - font-size: $navsidebar-glyph-size; - } - } - - /* When hovering or the dropdown is open */ - & > .mx-navbar-item > a:hover, - & > .mx-navbar-item > a:focus, - & > .mx-navbar-item.active a, - & > .mx-navbar-item.open > a, - & > .mx-navbar-item.open > a:hover, - & > .mx-navbar-item.open > a:focus { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - .caret { - border-top-color: $navsidebar-color-hover; - border-bottom-color: $navsidebar-color-hover; - } - } - & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { - color: $navsidebar-sub-color-active; - background-color: $navsidebar-sub-bg-active; - .caret { - border-top-color: $navsidebar-sub-color-active; - border-bottom-color: $navsidebar-sub-color-active; - } - } - } - @media (max-width: $screen-md) { - ul.nav > li.mx-navbar-item > a { - } - .mx-navbar-item.open .dropdown-menu { - background-color: $navtopbar-sub-bg; - & > li.mx-navbar-subitem > a { - color: $navsidebar-sub-color; - font-size: $navsidebar-sub-font-size; - &:hover, - &:focus { - color: $navsidebar-sub-color-hover; - background-color: $navsidebar-sub-bg-hover; - } - &.active { - color: $navsidebar-sub-color-active; - background-color: $navsidebar-sub-bg-active; - } - } - } - } - } -} diff --git a/test/theme/styles/web/sass/core/helpers/_navigationtree.scss b/test/theme/styles/web/sass/core/helpers/_navigationtree.scss deleted file mode 100755 index 9037dbc..0000000 --- a/test/theme/styles/web/sass/core/helpers/_navigationtree.scss +++ /dev/null @@ -1,166 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - -//== Regions -//## Behavior in the different regions -========================================================================== */ -// When used in topbar -.region-topbar { - .mx-navigationtree { - background-color: $navtopbar-bg; - .navbar-inner > ul { - & > li { - & > a { - color: $navtopbar-color; - border-color: $navtopbar-border-color; - background-color: $navtopbar-bg; - font-size: $navtopbar-font-size; - .caret { - border-top-color: $navtopbar-color; - border-bottom-color: $navtopbar-color; - } - - .glyphicon { - font-size: $navtopbar-glyph-size; - } - } - a:hover, - a:focus, - a.active { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - .caret { - border-top-color: $navtopbar-color-active; - border-bottom-color: $navtopbar-color-active; - } - } - a.active { - color: $navtopbar-color-active; - border-left-color: $navtopbar-color-active; - background-color: $navtopbar-bg-active; - } - } - } - - /* Sub navigation item specific */ - li.mx-navigationtree-has-items { - & > ul { - background-color: $navtopbar-sub-bg; - li { - a { - color: $navtopbar-sub-color; - background-color: $navtopbar-sub-bg; - font-size: $navtopbar-sub-font-size; - &:hover, - &:focus, - &.active { - color: $navtopbar-sub-color-hover; - background-color: $navtopbar-sub-bg-hover; - } - &.active { - color: $navtopbar-sub-color-active; - background-color: $navtopbar-sub-bg-active; - } - } - } - } - } - } -} - -// When used in sidebar -.region-sidebar { - .mx-navigationtree { - background-color: $navsidebar-bg; - .navbar-inner > ul { - & > li { - & > a { - color: $navsidebar-color; - border-color: $navsidebar-border-color; - background-color: $navsidebar-bg; - font-size: $navsidebar-font-size; - .caret { - border-top-color: $navsidebar-color; - border-bottom-color: $navsidebar-color; - } - - .glyphicon { - font-size: $navsidebar-glyph-size; - } - } - a:hover, - a:focus, - a.active { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - .caret { - border-top-color: $navsidebar-color-active; - border-bottom-color: $navsidebar-color-active; - } - } - a.active { - color: $navsidebar-color-active; - border-left-color: $navsidebar-color-active; - background-color: $navsidebar-bg-active; - } - } - } - - /* Sub navigation item specific */ - li.mx-navigationtree-has-items { - & > ul { - background-color: $navsidebar-sub-bg; - li { - a { - color: $navsidebar-sub-color; - background-color: $navsidebar-sub-bg; - font-size: $navsidebar-sub-font-size; - &:hover, - &:focus, - &.active { - color: $navsidebar-sub-color-hover; - background-color: $navsidebar-sub-bg-hover; - } - &.active { - color: $navsidebar-sub-color-active; - background-color: $navsidebar-sub-bg-active; - } - } - } - } - } - } -} - - -//== Design Properties -//## Helper classes to change the look and feel of the component -//-------------------------------------------------------------------------------------------------------------------// -// Content Centerd text and icons -.nav-content-center-text-icons.mx-navigationtree { - .navbar-inner ul { - a { - flex-direction: column; - justify-content: center; - .glyphicon { - margin: 0 0 5px 0; - } - } - } -} - -// Content Centerd icons only -.nav-content-center.mx-navigationtree { - .navbar-inner ul { - a { - justify-content: center; - } - } -} diff --git a/test/theme/styles/web/sass/core/helpers/_simplemenubar.scss b/test/theme/styles/web/sass/core/helpers/_simplemenubar.scss deleted file mode 100755 index 1c6eaa8..0000000 --- a/test/theme/styles/web/sass/core/helpers/_simplemenubar.scss +++ /dev/null @@ -1,36 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Center text and icons -.bottom-nav-text-icons.mx-menubar { - ul.mx-menubar-list { - li.mx-menubar-item { - a { - flex-direction: column; - padding: 8px 8px 6px 8px; - line-height: normal; - font-size: 11px; - .glyphicon { - display: block; - margin: 0 0 5px 0; - font-size: 18px; - } - img { - display: block; - height: 18px; - margin: 0 0 5px 0; - } - } - } - } -} diff --git a/test/theme/styles/web/sass/core/helpers/_tabcontainer.scss b/test/theme/styles/web/sass/core/helpers/_tabcontainer.scss deleted file mode 100755 index 727c236..0000000 --- a/test/theme/styles/web/sass/core/helpers/_tabcontainer.scss +++ /dev/null @@ -1,164 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tab Container - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Style as pills -.tab-pills.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - border: 0; - & > li > a { - margin-right: 2px; - color: $tabs-color; - border: 1px solid $tabs-border-color; - border-radius: 4px; - &:hover, - &:focus { - background-color: $tabs-bg-hover; - } - } - & > li.active > a, - & > li.active > a:hover, - & > li.active > a:focus { - color: #FFFFFF; - border-color: $tabs-bg-active; - background-color: $tabs-bg-active; - } - } -} - -// Style with lines -.tab-lined.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - border-width: 3px; - li { - margin-right: 30px; - margin-bottom: -3px; - & > a { - padding: 10px 0; - color: $tabs-color; - border: 0; - border-style: solid; - border-color: transparent; - border-bottom-width: 3px; - border-radius: 0; - &:hover, - &:focus { - color: $tabs-color; - border: 0; - border-color: transparent; - background: transparent; - } - } - &.active > a, - &.active > a:hover, - &.active > a:focus { - color: $tabs-lined-color-active; - border: 0; - border-bottom: 3px solid $tabs-lined-border-color; - background-color: transparent; - } - } - } -} - -// Justified style -// Lets your tabs take 100% of the width -.tab-justified.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - width: 100%; - border-bottom: 0; - & > li { - display: table-cell; - float: none; - width: 1%; - margin: 0; - @media (max-width: $screen-sm-max) { - display: block; - width: 100%; - } - & > a { - text-align: center; - border-bottom: 1px solid $tabs-border-color; - } - } - & > li.active > a { - border-bottom-color: transparent; - border-radius: 4px; - @media (max-width: $screen-sm-max) { - border-bottom-color: $tabs-border-color; - } - } - } -} - -// Bordered -.tab-bordered.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - margin: 0; - } - & > .mx-tabcontainer-content { - padding: 10px; - border-width: 0 1px 1px 1px; - border-style: solid; - border-color: $tabs-border-color; - background-color: #FFFFFF; - } -} - -// Wizard -.tab-wizard.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - position: relative; - display: flex; - justify-content: space-between; - border-style: none; - - &::before { - position: absolute; - top: 16px; - display: block; - width: 100%; - height: 1px; - content: ""; - background-color: $tabs-border-color; - } - & > li { - position: relative; - float: none; - width: 100%; - text-align: center; - & > a { - width: 33px; - height: 33px; - margin: auto; - padding: 0; - text-align: center; - color: $brand-default; - border: 1px solid $tabs-border-color; - border-radius: 100%; - background-color: #FFFFFF; - font-size: 18px; - font-weight: bold; - line-height: 33px; - } - &.active { - & > a, - & > a:hover, - & > a:focus { - color: #FFFFFF; - border-color: $tabs-bg-active; - background-color: $tabs-bg-active; - } - } - } - } -} diff --git a/test/theme/styles/web/sass/core/helpers/_tables.scss b/test/theme/styles/web/sass/core/helpers/_tables.scss deleted file mode 100755 index b81f803..0000000 --- a/test/theme/styles/web/sass/core/helpers/_tables.scss +++ /dev/null @@ -1,206 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tables - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Lined -table.table-lined.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > td { - border-width: 1px 0; - border-style: solid; - border-color: $grid-border-color; - } - } - } -} - -// Bordered -table.table-bordered.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - border-width: 1px; - border-style: solid; - border-color: $grid-border-color; - } - } - } -} - -// Makes table compact -table.table-compact.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - padding-top: 2px; - padding-bottom: 2px; - } - } - } -} - -// Remove padding on sides -table.table-sideless.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > td, - > th { - padding-right: 0; - } - > th:first-child, - > td:first-child { - padding-left: 0; - } - } - } -} - -// Remove all padding -table.table-spaceless.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - padding: 0; - } - } - } -} - -// Tables Vertical -// Will remove unwanted paddings -table.table-vertical.mx-table { - > tbody { - // Table row - > tr { - // Table header - > th { - padding-bottom: 0; - > label { - padding: 0; - } - > div > label { - padding: 0; - } - } - } - } -} - -// Align content in middle -table.table-align-vertical-middle.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - vertical-align: middle; - } - } - } -} - -// Compact labels -table.table-label-compact.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - > label { - margin: 0; - padding: 0; - } - > div > label, - .mx-referenceselector-input-wrapper label { - margin: 0; - padding: 0; - } - } - } - } -} - -$height-row-s: 55px; -$height-row-m: 70px; -$height-row-l: 120px; -// Small rows -table.table-row-s.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - height: $height-row-s; - } - } - } -} - -// Medium rows -table.table-row-m.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - height: $height-row-m; - } - } - } -} - -// Large rows -table.table-row-l.mx-table { - > tbody { - // Table row - > tr { - // Table header - // Table data - > th, - > td { - height: $height-row-l; - } - } - } -} - -// Makes the columns fixed -table.table-fixed { - table-layout: fixed; -} diff --git a/test/theme/styles/web/sass/core/helpers/_templategrids.scss b/test/theme/styles/web/sass/core/helpers/_templategrids.scss deleted file mode 100755 index 3cfa01c..0000000 --- a/test/theme/styles/web/sass/core/helpers/_templategrids.scss +++ /dev/null @@ -1,304 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Templategrid - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Make sure your content looks selectable -.templategrid-selectable.mx-templategrid { - .mx-templategrid-item { - cursor: pointer; - } -} - -// Lined -.templategrid-lined.mx-templategrid { - .mx-grid-content { - border-top-width: 2px; - border-top-style: solid; - border-top-color: $grid-border-color; - } - - .mx-templategrid-item { - border-top: 1px solid $grid-border-color; - border-right: none; - border-bottom: 1px solid $grid-border-color; - border-left: none; - } -} - -// Striped -.templategrid-striped.mx-templategrid { - .mx-templategrid-row:nth-child(odd) .mx-templategrid-item { - background-color: #F9F9F9; - } -} - -// Stylingless -.templategrid-stylingless.mx-templategrid { - .mx-templategrid-item { - padding: 0; - cursor: default; - border: 0; - background-color: transparent; - - &:hover { - background-color: transparent; - } - - &.selected { - background-color: transparent !important; - - &:hover { - background-color: transparent !important; - } - } - } -} - -// Transparent items -.templategrid-transparent.mx-templategrid { - .mx-templategrid-item { - border: 0; - background-color: transparent; - } -} - -// Hover -.templategrid-hover.mx-templategrid { - .mx-templategrid-item { - &:hover { - background-color: $grid-bg-hover !important; - } - - &.selected { - background-color: $grid-bg-selected !important; - - &:hover { - background-color: $grid-bg-selected-hover !important; - } - } - } -} - -// Templategrid Row Sizes -.templategrid-lg.mx-templategrid { - .mx-templategrid-item { - padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) ($grid-padding-left * 2); - } -} - -.templategrid-sm.mx-templategrid { - .mx-templategrid-item { - padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) ($grid-padding-left / 2); - } -} - -// Templategrid Layoutgrid styles -.mx-templategrid[class*="tg-col"] { - overflow: hidden; // For if it is not in a layout, to prevent scrollbars - .mx-templategrid-content-wrapper { - display: block; - } - - .mx-templategrid-row { - display: block; - margin-right: -1 * $gutter-size; - margin-left: -1 * $gutter-size; - - &::before, - &::after { - // clearfix - display: table; - clear: both; - content: " "; - } - } - - .mx-templategrid-item { - // bootstrap col - position: relative; - display: block; - float: left; - min-height: 1px; - padding-right: $gutter-size; - padding-left: $gutter-size; - border: 0; - @media (max-width: 992px) { - width: 100% !important; - } - - .mx-dataview { - overflow: hidden; - } - } - - &.tg-col-xs-12 .mx-templategrid-item { - width: 100% !important; - } - - &.tg-col-xs-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - - &.tg-col-xs-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - - &.tg-col-xs-9 .mx-templategrid-item { - width: 75% !important; - } - - &.tg-col-xs-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - - &.tg-col-xs-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - - &.tg-col-xs-6 .mx-templategrid-item { - width: 50% !important; - } - - &.tg-col-xs-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - - &.tg-col-xs-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - - &.tg-col-xs-3 .mx-templategrid-item { - width: 25% !important; - } - - &.tg-col-xs-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - - &.tg-col-xs-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - - @media (min-width: 768px) { - &.tg-col-sm-12 .mx-templategrid-item { - width: 100% !important; - } - &.tg-col-sm-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - &.tg-col-sm-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - &.tg-col-sm-9 .mx-templategrid-item { - width: 75% !important; - } - &.tg-col-sm-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - &.tg-col-sm-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - &.tg-col-sm-6 .mx-templategrid-item { - width: 50% !important; - } - &.tg-col-sm-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - &.tg-col-sm-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - &.tg-col-sm-3 .mx-templategrid-item { - width: 25% !important; - } - &.tg-col-sm-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - &.tg-col-sm-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - } - @media (min-width: 992px) { - &.tg-col-md-12 .mx-templategrid-item { - width: 100% !important; - } - &.tg-col-md-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - &.tg-col-md-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - &.tg-col-md-9 .mx-templategrid-item { - width: 75% !important; - } - &.tg-col-md-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - &.tg-col-md-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - &.tg-col-md-6 .mx-templategrid-item { - width: 50% !important; - } - &.tg-col-md-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - &.tg-col-md-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - &.tg-col-md-3 .mx-templategrid-item { - width: 25% !important; - } - &.tg-col-md-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - &.tg-col-md-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - } - @media (min-width: 1200px) { - &.tg-col-lg-12 .mx-templategrid-item { - width: 100% !important; - } - &.tg-col-lg-11 .mx-templategrid-item { - width: 91.66666667% !important; - } - &.tg-col-lg-10 .mx-templategrid-item { - width: 83.33333333% !important; - } - &.tg-col-lg-9 .mx-templategrid-item { - width: 75% !important; - } - &.tg-col-lg-8 .mx-templategrid-item { - width: 66.66666667% !important; - } - &.tg-col-lg-7 .mx-templategrid-item { - width: 58.33333333% !important; - } - &.tg-col-lg-6 .mx-templategrid-item { - width: 50% !important; - } - &.tg-col-lg-5 .mx-templategrid-item { - width: 41.66666667% !important; - } - &.tg-col-lg-4 .mx-templategrid-item { - width: 33.33333333% !important; - } - &.tg-col-lg-3 .mx-templategrid-item { - width: 25% !important; - } - &.tg-col-lg-2 .mx-templategrid-item { - width: 16.66666667% !important; - } - &.tg-col-lg-1 .mx-templategrid-item { - width: 8.33333333% !important; - } - } -} diff --git a/test/theme/styles/web/sass/core/helpers/_typography.scss b/test/theme/styles/web/sass/core/helpers/_typography.scss deleted file mode 100755 index cab8b63..0000000 --- a/test/theme/styles/web/sass/core/helpers/_typography.scss +++ /dev/null @@ -1,135 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Typography - -//== Design Properties -//## Helper classes to change the look and feel of the component -========================================================================== */ -// Text size -.text-small { - font-size: $font-size-small !important; -} - -.text-large { - font-size: $font-size-large !important; -} - -// Text Weights -.text-light, -.text-light > *, -.text-light label { - font-weight: $font-weight-light !important; -} - -.text-normal, -.text-normal > *, -.text-normal label { - font-weight: $font-weight-normal !important; -} - -.text-semibold, -.text-semibold > *, -.text-semibold label { - font-weight: $font-weight-semibold !important; -} - -.text-bold, -.text-bold > *, -.text-bold label { - font-weight: $font-weight-bold !important; -} - -// Color variations -.text-default, -.text-default:hover { - color: $font-color-default !important; -} - -.text-primary, -.text-primary:hover { - color: $brand-primary !important; -} - -.text-info, -.text-info:hover { - color: $brand-info !important; -} - -.text-success, -.text-success:hover { - color: $brand-success !important; -} - -.text-warning, -.text-warning:hover { - color: $brand-warning !important; -} - -.text-danger, -.text-danger:hover { - color: $brand-danger !important; -} - -.text-header { - color: $font-color-header !important; -} - -.text-detail { - color: $font-color-detail !important; -} - -.text-white { - color: #ffffff; -} - -// Alignment options -.text-left { - text-align: left !important; -} -.text-center { - text-align: center !important; -} -.text-right { - text-align: right !important; -} -.text-justify { - text-align: justify !important; -} - -// Transform options -.text-lowercase { - text-transform: lowercase !important; -} -.text-uppercase { - text-transform: uppercase !important; -} -.text-capitalize { - text-transform: capitalize !important; -} - -// Wrap options -.text-break { - word-break: break-all !important; - word-break: break-word !important; - -ms-word-break: break-all !important; - -webkit-hyphens: auto !important; - -moz-hyphens: auto !important; - hyphens: auto !important; -} - -.text-nowrap { - white-space: nowrap !important; -} - -.text-nowrap { - overflow: hidden !important; - max-width: 100% !important; - white-space: nowrap !important; - text-overflow: ellipsis !important; -} diff --git a/test/theme/styles/web/sass/core/widgets/_alerts.scss b/test/theme/styles/web/sass/core/widgets/_alerts.scss deleted file mode 100755 index 006ae6a..0000000 --- a/test/theme/styles/web/sass/core/widgets/_alerts.scss +++ /dev/null @@ -1,19 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Alerts - - Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages -========================================================================== */ - -.alert { - margin-top: 0; // want to align it with padding of a page - padding: 15px; - border: 0; - border-radius: 4px; -} diff --git a/test/theme/styles/web/sass/core/widgets/_buttons.scss b/test/theme/styles/web/sass/core/widgets/_buttons.scss deleted file mode 100755 index c5cc4d0..0000000 --- a/test/theme/styles/web/sass/core/widgets/_buttons.scss +++ /dev/null @@ -1,96 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Buttons - - Default Bootstrap and Mendix Buttons -========================================================================== */ - -.btn, -.mx-button { - display: inline-block; - margin-bottom: 0; - padding: 0.6em 1em; - cursor: pointer; - -moz-user-select: none; - -ms-user-select: none; - -webkit-user-select: none; - user-select: none; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - text-align: center; - vertical-align: middle; - white-space: nowrap; - color: $btn-default-color; - border: 1px solid $btn-default-border-color; - border-radius: $btn-border-radius; - background-color: $btn-default-bg; - background-image: none; - box-shadow: none; - text-shadow: none; - font-size: $btn-font-size; - line-height: $line-height-base; - - &:hover, - &:focus, - &:active, - &:active:focus { - outline: none; - box-shadow: none; - } - - &[aria-disabled] { - cursor: not-allowed; - pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); - } - - @if $btn-bordered != false { - @extend .btn-bordered; - } -} - -// Mendix button link -.mx-link { - padding: 0; - color: $link-color; - - &[aria-disabled='true'] { - cursor: not-allowed; - pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); - } -} - -// Images and icons in buttons -.btn, -.mx-button, -.mx-link { - img { - //height: auto; // MXUI override who set the height on 16px default - height: $font-size-default + 4px; - margin-right: 5px; - vertical-align: text-top; - } -} - -//== Phone specific -//-------------------------------------------------------------------------------------------------------------------// -.profile-phone { - .btn, - .mx-link { - &:active { - -webkit-transform: translateY(1px); - transform: translateY(1px); - } - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_checkbox.scss b/test/theme/styles/web/sass/core/widgets/_checkbox.scss deleted file mode 100755 index 5534c72..0000000 --- a/test/theme/styles/web/sass/core/widgets/_checkbox.scss +++ /dev/null @@ -1,112 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Checkbox - - Default Mendix Checkbox Widget -========================================================================== */ - -.mx-checkbox.label-after { - flex-wrap: wrap; - - .control-label { - padding: 0; - } -} - -input[type='checkbox'] { - position: relative !important; //Remove after mxui merge - width: 16px; - height: 16px; - margin: 0 !important; // Remove after mxui merge - cursor: pointer; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - -webkit-user-select: none; - user-select: none; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - - - &::-ms-check { - color: $form-input-border-color; - border-color: $form-input-border-color; - border-radius: $form-input-border-radius; - background-color: $form-input-bg; - } - - &:focus::-ms-check, - &:checked::-ms-check { - color: $form-input-border-focus-color; - border-color: $form-input-border-focus-color; - background-color: $form-input-bg-focus; - } - - &:before, - &:after { - position: absolute; - display: block; - transition: all 0.3s ease; - } - - &:before { - // Checkbox - width: 100%; - height: 100%; - content: ''; - border: 1px solid $form-input-border-color; - border-radius: $form-input-border-radius; - background-color: transparent; - } - - &:after { - // Checkmark - width: 8px; - height: 4px; - margin: 5px 4px; - transform: rotate(-45deg); - pointer-events: none; - border: 2px solid #FFFFFF; - border-top: 0; - border-right: 0; - } - - &:not(:disabled):not(:checked):hover:after { - content: ''; - border-color: $form-input-bg-hover; // color of checkmark on hover - } - - &:checked:before { - border-color: $form-input-border-focus-color; - background-color: $form-input-border-focus-color; - } - - &:checked:after { - content: ''; - } - - &:disabled:before { - background-color: $form-input-bg-disabled; - } - - &:checked:disabled:before { - border-color: transparent; - background-color: rgba($form-input-border-focus-color, 0.4); - } - - &:disabled:after, - &:checked:disabled:after { - border-color: $form-input-bg-disabled; - } - - & + .control-label { - margin-left: $form-label-gutter; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_datagrids.scss b/test/theme/styles/web/sass/core/widgets/_datagrids.scss deleted file mode 100755 index f0c1bdf..0000000 --- a/test/theme/styles/web/sass/core/widgets/_datagrids.scss +++ /dev/null @@ -1,76 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Datagrid Default - - Default Mendix Datagrid Widget. The datagrid shows a list of objects in a grid -========================================================================== */ - -.mx-datagrid { - table { - border-width: 0; - background-color: transparent; - /* Table header */ - th { - border-style: solid; - border-color: $grid-border-color; - border-top-width: 0; - border-right: 0; - border-bottom-width: 1px; - border-left: 0; - background-color: $grid-bg-header; - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - vertical-align: middle; - .mx-datagrid-head-caption { - white-space: normal; - } - } - /* Table Body */ - tbody tr { - td { - @include transition(); - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - vertical-align: middle; - border-width: 0; - border-color: $grid-border-color; - border-bottom-width: 1px; - border-bottom-style: solid; - background-color: $grid-bg; - &:focus { - outline: none; - } - /* Text without spaces */ - .mx-datagrid-data-wrapper { - text-overflow: ellipsis; - } - } - &.selected td, - &.selected:hover td { - color: $grid-selected-color; - background-color: $grid-bg-selected !important; - } - } - /* Table Footer */ - tfoot { - > tr > th { - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - border-width: 0; - background-color: $grid-footer-bg; - } - > tr > td { - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - border-width: 0; - background-color: $grid-bg; - font-weight: $font-weight-bold; - } - } - & *:focus { - outline: 0; - } - } -} \ No newline at end of file diff --git a/test/theme/styles/web/sass/core/widgets/_dataview.scss b/test/theme/styles/web/sass/core/widgets/_dataview.scss deleted file mode 100755 index bd4199d..0000000 --- a/test/theme/styles/web/sass/core/widgets/_dataview.scss +++ /dev/null @@ -1,45 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Dataview - - Default Mendix Dataview Widget. The data view is used for showing the contents of exactly one object -========================================================================== */ - -.mx-dataview { - /* Control bar */ - .mx-dataview-controls { - // Needed to clear the bootstrap columns (get float: left) - clear: both; - margin-top: 10px; - padding: 8px 0; - border-top: 1px solid $dataview-controls-border-color; - border-radius: 0; - background-color: $dataview-controls-bg; - /* Buttons */ - .mx-button { - margin-right: 0.3em; - margin-bottom: 0; - &:last-child { - margin-right: 0; - } - } - } - /* Dataview-content gives problems for nexted layout grid containers */ - > .mx-dataview-content > .mx-container-nested { - > .row { - margin-right: 0; - margin-left: 0; - } - } - /* Dataview empty message */ - .mx-dataview-message { - color: $dataview-emptymessage-color; - background: $dataview-emptymessage-bg; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_datepicker.scss b/test/theme/styles/web/sass/core/widgets/_datepicker.scss deleted file mode 100755 index 6f30417..0000000 --- a/test/theme/styles/web/sass/core/widgets/_datepicker.scss +++ /dev/null @@ -1,117 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Date Picker - - Default Mendix Date Picker Widget. -========================================================================== */ - -.mx-calendar { - /* (must be higher than popup z-index) */ - z-index: 10010 !important; - padding: 10px; - font-size: 12px; - background: $bg-color; - border-radius: $border-radius-default; - border: 1px solid $border-color-default; - box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06); - .mx-calendar-month-header { - display: flex; - flex-direction: row; - justify-content: space-between; - margin: 0 3px 10px 3px; - } - .mx-calendar-month-next, - .mx-calendar-month-previous, - .mx-calendar-month-dropdown { - border: 0; - cursor: pointer; - background: transparent; - } - .mx-calendar-month-next, - .mx-calendar-month-previous { - &:hover { - color: $brand-primary; - } - } - .mx-calendar-month-dropdown { - display: flex; - align-items: center; - justify-content: center; - position: relative; - .mx-calendar-month-current:first-child { - margin-right: 10px; - } - } - th { - color: $brand-primary; - } - th, - td { - width: 35px; - height: 35px; - text-align: center; - } - td { - color: $font-color-default; - - &:hover { - cursor: pointer; - border-radius: 50%; - color: $brand-primary; - background-color: $brand-default; - } - } - .mx-calendar-day-month-next, - .mx-calendar-day-month-previous { - color: lighten($font-color-default, 45%); - } - .mx-calendar-day-selected, - .mx-calendar-day-selected:hover { - color: #fff; - border-radius: 50%; - background: $brand-primary; - } - - // - - .mx-calendar-year-switcher { - text-align: center; - margin-top: 10px; - color: lighten($brand-primary, 30%); - span.mx-calendar-year-selected { - color: $brand-primary; - margin-left: 10px; - margin-right: 10px; - } - span:hover { - cursor: pointer; - text-decoration: underline; - background-color: transparent; - } - } -} - -.mx-calendar-month-dropdown-options { - /* (must be higher than popup z-index) */ - z-index: 10020 !important; - position: absolute; - top: 25px; - padding: 2px 10px; - border-radius: $border-radius-default; - background-color: $bg-color; - div { - cursor: pointer; - font-size: 12px; - padding: 2px 0; - &:hover, - &:focus { - color: $brand-primary; - } - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_glyphicons.scss b/test/theme/styles/web/sass/core/widgets/_glyphicons.scss deleted file mode 100755 index dccd16f..0000000 --- a/test/theme/styles/web/sass/core/widgets/_glyphicons.scss +++ /dev/null @@ -1,27 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Glyphicons - - Default Mendix Glyphicons -========================================================================== */ - -.mx-glyphicon { - &:before { - display: inline-block; - margin-top: -0.2em; - margin-right: 0.4555555em; - vertical-align: middle; - font-family: "Glyphicons Halflings"; - font-weight: $font-weight-normal; - font-style: normal; - line-height: inherit; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_grid.scss b/test/theme/styles/web/sass/core/widgets/_grid.scss deleted file mode 100755 index 8bbf4ac..0000000 --- a/test/theme/styles/web/sass/core/widgets/_grid.scss +++ /dev/null @@ -1,72 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Grid - - Default Mendix Grid (used for Mendix Datagrid) -========================================================================== */ - -.mx-grid { - padding: 0px; - border: 0; - border-radius: 0; - .mx-grid-controlbar { - margin: 10px 0; - /* Paging */ - .mx-grid-pagingbar { - /* Buttons */ - .mx-button { - padding: 6px; - color: $grid-paging-color; - border-color: $grid-paging-border-color; - background-color: $grid-paging-bg; - &:hover { - color: $grid-paging-color-hover; - border-color: $grid-paging-border-color-hover; - background-color: $grid-paging-bg-hover; - } - } - /* Text Paging .. to .. to .. */ - .mx-grid-paging-status { - padding: 0 8px 8px; - } - } - } - .mx-grid-searchbar { - margin: 10px 0; - .mx-grid-search-item { - .mx-grid-search-label { - vertical-align: middle; - label { - padding-top: 5px; - } - } - .mx-grid-search-input { - display: inline-flex; - .form-control { - height: 28px; - font-size: 11px; - } - select.form-control { - padding: 3px; - vertical-align: middle; - } - .mx-button { - height: 28px; - padding-top: 2px; - padding-bottom: 2px; - } - } - } - } -} - -// Remove default border from grid inside a Mendix Dataview -.mx-dataview .mx-grid { - border: 0; -} diff --git a/test/theme/styles/web/sass/core/widgets/_groupbox.scss b/test/theme/styles/web/sass/core/widgets/_groupbox.scss deleted file mode 100755 index ab304dc..0000000 --- a/test/theme/styles/web/sass/core/widgets/_groupbox.scss +++ /dev/null @@ -1,40 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Groupbox - - Default Mendix Groupboxes -========================================================================== */ - -.mx-groupbox { - margin: 0; - > .mx-groupbox-header { - margin: 0; - color: $groupbox-default-color; - border-width: 1px 1px 0 1px; - border-style: solid; - border-color: $groupbox-default-bg; - background: $groupbox-default-bg; - font-size: $font-size-h5; - .mx-groupbox-collapse-icon { - margin-top: 0.1em; - } - } - > .mx-groupbox-body { - padding: 10px 15px; - border-width: 1px; - border-style: solid; - border-color: $groupbox-default-bg; - background-color: #FFFFFF; - } - .mx-groupbox-header + .mx-groupbox-body { - border-top: none; - } - &.collapsed > .mx-groupbox-header { - } -} \ No newline at end of file diff --git a/test/theme/styles/web/sass/core/widgets/_header.scss b/test/theme/styles/web/sass/core/widgets/_header.scss deleted file mode 100755 index b85e1ae..0000000 --- a/test/theme/styles/web/sass/core/widgets/_header.scss +++ /dev/null @@ -1,116 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Header - - Default Mendix Mobile Header -========================================================================== */ - -.mx-header { - z-index: 100; - display: flex; - width: 100%; - height: $m-header-height; - padding: 0; - text-align: initial; - color: $m-header-color; - border-bottom: 1px solid $border-color-default; - background-color: $m-header-bg; - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); - - // Reset mxui - div.mx-header-left, - div.mx-header-right { - position: relative; - top: initial; - right: initial; - left: initial; - display: flex; - align-items: center; - width: 25%; - height: 100%; - .mx-placeholder { - display: flex; - align-items: center; - height: 100%; - } - } - - div.mx-header-left .mx-placeholder { - order: 1; - .mx-placeholder { - justify-content: flex-start; - } - } - div.mx-header-center { - overflow: hidden; - flex: 1; - order: 2; - text-align: center; - - .mx-title { - overflow: hidden; - width: 100%; - margin: 0; - text-overflow: ellipsis; - color: $m-header-color; - font-size: $m-header-title-size; - line-height: $m-header-height; - } - } - div.mx-header-right { - order: 3; - .mx-placeholder { - justify-content: flex-end; - } - } - - // Content magic - .mx-link { - display: flex; - align-items: center; - height: 100%; - -webkit-transition: all 0.2s; - -moz-transition: all 0.2s; - transition: all 0.2s; - text-decoration: none; - .glyphicon { - top: 0; - font-size: 23px; - } - &:active { - -webkit-transform: translateY(1px); - transform: translateY(1px); - color: $link-hover-color; - } - } - - .mx-link, - .btn, - img { - padding: 0 8px; - } - - .mx-sidebartoggle { - font-size: 24px; - line-height: $m-header-height; - img { - height: 20px; - } - } -} - -// RTL support -body[dir='rtl'] { - .mx-header-left { - order: 3; - } - .mx-header-right { - order: 1; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_inputs.scss b/test/theme/styles/web/sass/core/widgets/_inputs.scss deleted file mode 100755 index 7c76e32..0000000 --- a/test/theme/styles/web/sass/core/widgets/_inputs.scss +++ /dev/null @@ -1,240 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Inputs - - The form-control class style all inputs -========================================================================== */ -.form-control { - display: flex; - flex: 1; - min-width: 50px; - height: $form-input-height; - padding: $form-input-padding-y $form-input-padding-x; - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - color: $form-input-color; - border: 1px solid $form-input-border-color; - border-radius: $form-input-border-radius; - background-color: $form-input-bg; - background-image: none; - box-shadow: none; - font-size: $form-input-font-size; - line-height: $form-input-line-height; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - @if $form-input-style==lined { - @extend .form-control-lined; - } -} - -.form-control:not([readonly]):focus { - border-color: $form-input-border-focus-color; - outline: 0; - background-color: $form-input-bg-focus; - box-shadow: none; -} - -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - opacity: 1; - background-color: #EEEEEE; -} - -.form-control[disabled], -fieldset[disabled] .form-control { - cursor: not-allowed; -} - -// Lined -.form-control-lined { - border: 0; - border-bottom: 1px solid $form-input-border-color; - border-radius: 0; - background-color: transparent; - - &:focus { - background-color: transparent; - } -} - -// Read only form control class -.form-control-static { - overflow: hidden; - flex: 1; - min-height: auto; - padding: $form-input-padding-y $form-input-padding-x; - border-bottom: 1px solid $form-input-static-border-color; - font-size: $form-input-font-size; - line-height: $form-input-line-height; - - & + .control-label { - margin-left: $form-label-gutter; - } -} - -// Dropdown input widget -select.form-control { - $arrow: "data:image/svg+xml;utf8,"; - padding-right: 30px; - background-image: url($arrow); - background-repeat: no-repeat; - background-position: calc(100% - #{$form-input-padding-x}) center; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; -} - -.form-control.mx-selectbox { - align-items: center; - flex-direction: row-reverse; - justify-content: space-between; -} - -// Not editable textarea, textarea will be rendered as a label -.mx-textarea .control-label { - height: auto; -} - -textarea.form-control { - flex-basis: auto; -} - -.mx-compound-control { - display: flex; - flex: 1; - flex-wrap: wrap; - max-width: 100%; - - .mx-validation-message { - flex-basis: 100%; - margin-top: 5px; - } -} - -// Form Group -.form-group { - display: flex; - flex-direction: row; - margin-bottom: $form-group-margin-bottom; - - & > div[class*='col-'] { - display: flex; - align-items: center; - flex-wrap: wrap; - } - - & > [class*='col-'] { - padding-right: $form-group-gutter; - padding-left: $form-group-gutter; - } - - // Alignment content - div[class*='textBox'] > .control-label, - div[class*='textArea'] > .control-label, - div[class*='datePicker'] > .control-label { - @extend .form-control-static; - } - - // Label - .control-label { - overflow: hidden; - margin-bottom: 5px; - text-overflow: ellipsis; - color: $form-label-color; - font-size: $form-label-size; - font-weight: $form-label-weight; - } - - .mx-validation-message { - flex-basis: 100%; - } - - &.no-columns:not(.label-after) { - flex-direction: column; - } -} - -.form-group.label-after { - .form-control-static { - flex: unset; - } - - .control-label { - margin-bottom: 0; - } -} - -.mx-dateinput, -.mx-referenceselector, -.mx-referencesetselector { - flex: 1; -} - -// Targets only webkit iOS devices -.dj_webkit.dj_ios .form-control { - transform: translateZ(0); -} - -@media only screen and (min-width: $screen-md) { - .form-horizontal { - .control-label { - margin-bottom: 0; - padding-top: $form-input-padding-y; - padding-bottom: $form-input-padding-y; - line-height: $form-input-line-height; - } - } -} - -@media only screen and (max-width: $screen-sm-max) { - .form-group { - flex-direction: column; - } -} - -@media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) { - // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically - input[type='date'], - input[type='time'], - input[type='datetime-local'], - input[type='month'] { - line-height: 1; - } - // Fix shrinking of date inputs because inability of setting a placeholder - input[type='time']:not(.has-value):before, - input[type='date']:not(.has-value):before, - input[type='month']:not(.has-value):before, - input[type='datetime-local']:not(.has-value):before { - margin-right: 0.5em; - content: attr(placeholder) !important; - color: #AAAAAA; - } - input[type='time'].has-value:before, - input[type='date'].has-value:before, - input[type='month'].has-value:before, - input[type='datetime-local'].has-value:before { - content: '' !important; - } -} - -@media (-ms-high-contrast: none), (-ms-high-contrast: active) { - // Target IE10+ - .form-group { - display: block; - } -} - -[dir='rtl'] { - // Dropdown input widget - select.form-control { - padding-right: 30px; - padding-left: 0; - background-position: #{$form-input-padding-x} center; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_labels.scss b/test/theme/styles/web/sass/core/widgets/_labels.scss deleted file mode 100755 index 344ba06..0000000 --- a/test/theme/styles/web/sass/core/widgets/_labels.scss +++ /dev/null @@ -1,30 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Labels - - Default labels combined with Bootstrap labels -========================================================================== */ - -.label { - display: inline-block; - padding: 0.2em 0.6em 0.3em; - text-align: center; - vertical-align: baseline; - white-space: nowrap; - color: #ffffff; - border-radius: 0.25em; - font-size: 100%; - line-height: 1; - margin: 0; - - .form-control-static { - all: unset; - font-weight: $font-weight-normal; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_layoutgrid.scss b/test/theme/styles/web/sass/core/widgets/_layoutgrid.scss deleted file mode 100755 index 4e27b30..0000000 --- a/test/theme/styles/web/sass/core/widgets/_layoutgrid.scss +++ /dev/null @@ -1,889 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Layout Grid - - Default Bootstrap containers -========================================================================== */ -.mx-layoutgrid { - width: 100%; - margin-right: auto; - margin-left: auto; - padding-right: $gutter-size; - padding-left: $gutter-size; -} - -// Row -.row { - display: flex; - flex-wrap: wrap; - margin-right: -$gutter-size; - margin-left: -$gutter-size; - - &::before, - &::after { - content: normal; - } -} - -.no-gutters { - margin-right: 0; - margin-left: 0; -} - -.no-gutters > .col, -.no-gutters > [class*="col-"] { - padding-right: 0; - padding-left: 0; -} - -// Columns -.col-1, -.col-2, -.col-3, -.col-4, -.col-5, -.col-6, -.col-7, -.col-8, -.col-9, -.col-10, -.col-11, -.col-12, -.col, -.col-auto, -.col-sm-1, -.col-sm-2, -.col-sm-3, -.col-sm-4, -.col-sm-5, -.col-sm-6, -.col-sm-7, -.col-sm-8, -.col-sm-9, -.col-sm-10, -.col-sm-11, -.col-sm-12, -.col-sm, -.col-sm-auto, -.col-md-1, -.col-md-2, -.col-md-3, -.col-md-4, -.col-md-5, -.col-md-6, -.col-md-7, -.col-md-8, -.col-md-9, -.col-md-10, -.col-md-11, -.col-md-12, -.col-md, -.col-md-auto, -.col-lg-1, -.col-lg-2, -.col-lg-3, -.col-lg-4, -.col-lg-5, -.col-lg-6, -.col-lg-7, -.col-lg-8, -.col-lg-9, -.col-lg-10, -.col-lg-11, -.col-lg-12, -.col-lg, -.col-lg-auto, -.col-xl-1, -.col-xl-2, -.col-xl-3, -.col-xl-4, -.col-xl-5, -.col-xl-6, -.col-xl-7, -.col-xl-8, -.col-xl-9, -.col-xl-10, -.col-xl-11, -.col-xl-12, -.col-xl, -.col-xl-auto { - position: relative; - width: 100%; - padding-right: $gutter-size; - padding-left: $gutter-size; -} - -.col { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; -} - -.col-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; -} - -.col-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; -} - -.col-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; -} - -.col-3 { - flex: 0 0 25%; - max-width: 25%; -} - -.col-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; -} - -.col-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; -} - -.col-6 { - flex: 0 0 50%; - max-width: 50%; -} - -.col-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; -} - -.col-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; -} - -.col-9 { - flex: 0 0 75%; - max-width: 75%; -} - -.col-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; -} - -.col-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; -} - -.col-12 { - flex: 0 0 100%; - max-width: 100%; -} - -.order-first { - order: -1; -} - -.order-last { - order: 13; -} - -.order-0 { - order: 0; -} - -.order-1 { - order: 1; -} - -.order-2 { - order: 2; -} - -.order-3 { - order: 3; -} - -.order-4 { - order: 4; -} - -.order-5 { - order: 5; -} - -.order-6 { - order: 6; -} - -.order-7 { - order: 7; -} - -.order-8 { - order: 8; -} - -.order-9 { - order: 9; -} - -.order-10 { - order: 10; -} - -.order-11 { - order: 11; -} - -.order-12 { - order: 12; -} - -.offset-1 { - margin-left: 8.333333%; -} - -.offset-2 { - margin-left: 16.666667%; -} - -.offset-3 { - margin-left: 25%; -} - -.offset-4 { - margin-left: 33.333333%; -} - -.offset-5 { - margin-left: 41.666667%; -} - -.offset-6 { - margin-left: 50%; -} - -.offset-7 { - margin-left: 58.333333%; -} - -.offset-8 { - margin-left: 66.666667%; -} - -.offset-9 { - margin-left: 75%; -} - -.offset-10 { - margin-left: 83.333333%; -} - -.offset-11 { - margin-left: 91.666667%; -} - -// Responsiveness -@media (min-width: $screen-sm) { - .mx-layoutgrid-fixed { - max-width: 540px; - } -} - -@media (min-width: $screen-md) { - .mx-layoutgrid-fixed { - max-width: 720px; - } -} - -@media (min-width: $screen-lg) { - .mx-layoutgrid-fixed { - max-width: 960px; - } -} - -@media (min-width: $screen-xl) { - .mx-layoutgrid-fixed { - max-width: 1140px; - } -} - -@media (min-width: $screen-sm) { - .col-sm { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-sm-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-sm-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-sm-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-sm-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-sm-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-sm-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-sm-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-sm-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-sm-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-sm-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-sm-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-sm-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-sm-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-sm-first { - order: -1; - } - .order-sm-last { - order: 13; - } - .order-sm-0 { - order: 0; - } - .order-sm-1 { - order: 1; - } - .order-sm-2 { - order: 2; - } - .order-sm-3 { - order: 3; - } - .order-sm-4 { - order: 4; - } - .order-sm-5 { - order: 5; - } - .order-sm-6 { - order: 6; - } - .order-sm-7 { - order: 7; - } - .order-sm-8 { - order: 8; - } - .order-sm-9 { - order: 9; - } - .order-sm-10 { - order: 10; - } - .order-sm-11 { - order: 11; - } - .order-sm-12 { - order: 12; - } - .offset-sm-0 { - margin-left: 0; - } - .offset-sm-1 { - margin-left: 8.333333%; - } - .offset-sm-2 { - margin-left: 16.666667%; - } - .offset-sm-3 { - margin-left: 25%; - } - .offset-sm-4 { - margin-left: 33.333333%; - } - .offset-sm-5 { - margin-left: 41.666667%; - } - .offset-sm-6 { - margin-left: 50%; - } - .offset-sm-7 { - margin-left: 58.333333%; - } - .offset-sm-8 { - margin-left: 66.666667%; - } - .offset-sm-9 { - margin-left: 75%; - } - .offset-sm-10 { - margin-left: 83.333333%; - } - .offset-sm-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: $screen-md) { - .col-md { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-md-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-md-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-md-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-md-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-md-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-md-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-md-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-md-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-md-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-md-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-md-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-md-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-md-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-md-first { - order: -1; - } - .order-md-last { - order: 13; - } - .order-md-0 { - order: 0; - } - .order-md-1 { - order: 1; - } - .order-md-2 { - order: 2; - } - .order-md-3 { - order: 3; - } - .order-md-4 { - order: 4; - } - .order-md-5 { - order: 5; - } - .order-md-6 { - order: 6; - } - .order-md-7 { - order: 7; - } - .order-md-8 { - order: 8; - } - .order-md-9 { - order: 9; - } - .order-md-10 { - order: 10; - } - .order-md-11 { - order: 11; - } - .order-md-12 { - order: 12; - } - .offset-md-0 { - margin-left: 0; - } - .offset-md-1 { - margin-left: 8.333333%; - } - .offset-md-2 { - margin-left: 16.666667%; - } - .offset-md-3 { - margin-left: 25%; - } - .offset-md-4 { - margin-left: 33.333333%; - } - .offset-md-5 { - margin-left: 41.666667%; - } - .offset-md-6 { - margin-left: 50%; - } - .offset-md-7 { - margin-left: 58.333333%; - } - .offset-md-8 { - margin-left: 66.666667%; - } - .offset-md-9 { - margin-left: 75%; - } - .offset-md-10 { - margin-left: 83.333333%; - } - .offset-md-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: $screen-lg) { - .col-lg { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-lg-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-lg-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-lg-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-lg-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-lg-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-lg-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-lg-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-lg-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-lg-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-lg-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-lg-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-lg-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-lg-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-lg-first { - order: -1; - } - .order-lg-last { - order: 13; - } - .order-lg-0 { - order: 0; - } - .order-lg-1 { - order: 1; - } - .order-lg-2 { - order: 2; - } - .order-lg-3 { - order: 3; - } - .order-lg-4 { - order: 4; - } - .order-lg-5 { - order: 5; - } - .order-lg-6 { - order: 6; - } - .order-lg-7 { - order: 7; - } - .order-lg-8 { - order: 8; - } - .order-lg-9 { - order: 9; - } - .order-lg-10 { - order: 10; - } - .order-lg-11 { - order: 11; - } - .order-lg-12 { - order: 12; - } - .offset-lg-0 { - margin-left: 0; - } - .offset-lg-1 { - margin-left: 8.333333%; - } - .offset-lg-2 { - margin-left: 16.666667%; - } - .offset-lg-3 { - margin-left: 25%; - } - .offset-lg-4 { - margin-left: 33.333333%; - } - .offset-lg-5 { - margin-left: 41.666667%; - } - .offset-lg-6 { - margin-left: 50%; - } - .offset-lg-7 { - margin-left: 58.333333%; - } - .offset-lg-8 { - margin-left: 66.666667%; - } - .offset-lg-9 { - margin-left: 75%; - } - .offset-lg-10 { - margin-left: 83.333333%; - } - .offset-lg-11 { - margin-left: 91.666667%; - } -} - -@media (min-width: $screen-xl) { - .col-xl { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-xl-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-xl-1 { - flex: 0 0 8.333333%; - max-width: 8.333333%; - } - .col-xl-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-xl-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-xl-4 { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } - .col-xl-5 { - flex: 0 0 41.666667%; - max-width: 41.666667%; - } - .col-xl-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-xl-7 { - flex: 0 0 58.333333%; - max-width: 58.333333%; - } - .col-xl-8 { - flex: 0 0 66.666667%; - max-width: 66.666667%; - } - .col-xl-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-xl-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } - .col-xl-11 { - flex: 0 0 91.666667%; - max-width: 91.666667%; - } - .col-xl-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-xl-first { - order: -1; - } - .order-xl-last { - order: 13; - } - .order-xl-0 { - order: 0; - } - .order-xl-1 { - order: 1; - } - .order-xl-2 { - order: 2; - } - .order-xl-3 { - order: 3; - } - .order-xl-4 { - order: 4; - } - .order-xl-5 { - order: 5; - } - .order-xl-6 { - order: 6; - } - .order-xl-7 { - order: 7; - } - .order-xl-8 { - order: 8; - } - .order-xl-9 { - order: 9; - } - .order-xl-10 { - order: 10; - } - .order-xl-11 { - order: 11; - } - .order-xl-12 { - order: 12; - } - .offset-xl-0 { - margin-left: 0; - } - .offset-xl-1 { - margin-left: 8.333333%; - } - .offset-xl-2 { - margin-left: 16.666667%; - } - .offset-xl-3 { - margin-left: 25%; - } - .offset-xl-4 { - margin-left: 33.333333%; - } - .offset-xl-5 { - margin-left: 41.666667%; - } - .offset-xl-6 { - margin-left: 50%; - } - .offset-xl-7 { - margin-left: 58.333333%; - } - .offset-xl-8 { - margin-left: 66.666667%; - } - .offset-xl-9 { - margin-left: 75%; - } - .offset-xl-10 { - margin-left: 83.333333%; - } - .offset-xl-11 { - margin-left: 91.666667%; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_listview.scss b/test/theme/styles/web/sass/core/widgets/_listview.scss deleted file mode 100755 index 0a0d367..0000000 --- a/test/theme/styles/web/sass/core/widgets/_listview.scss +++ /dev/null @@ -1,102 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Listview - - Default Mendix Listview Widget. The list view shows a list of objects arranged vertically. Each object is shown using a template -========================================================================== */ -.mx-listview { - // Remove widget padding - padding: 0; - /* Clear search button (overrides load more button stying) */ - // Search bar - .mx-listview-searchbar { - margin-bottom: $gutter-size; - - .btn { - width: auto; - } - } - - /* Load more button */ - & > .btn { - width: 100%; - margin: 10px auto; - } - - & > ul { - margin: 0; - - .mx-listview-empty { - border-style: none; - background-color: transparent; - } - - & > li { - @include transition(); - padding: $listview-padding-top $listview-padding-right $listview-padding-bottom $listview-padding-left; - border-width: 1px 0 0 0; - border-style: solid; - border-color: $grid-border-color; - background-color: $grid-bg; - - &:first-child { - border-radius: 0; // Reset mxui listview style - } - - &:last-child { - border-bottom: 1px solid $grid-border-color; - border-radius: 0; // Reset mxui listview style - } - - &:focus, - &:active { - outline: 0; - background-color: $grid-bg-hover; - } - - &.selected { - background-color: $grid-bg-selected; - } - } - } - - .mx-layoutgrid { - padding-top: 0 !important; - padding-bottom: 0 !important; - } -} - -//== Phone specific -//-------------------------------------------------------------------------------------------------------------------// -.profile-phone .mx-listview { - .mx-listview-searchbar { - margin-bottom: 3px; - background: #FFFFFF; - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); - - input { - padding: 14px 15px; - color: #555555; - border-style: none; - border-radius: 0; - box-shadow: none; - } - - .btn { - padding: 14px 15px; - color: inherit; - border-style: none; - } - } - - & > ul > li { - &:first-child { - border-top: none; - } - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_modals.scss b/test/theme/styles/web/sass/core/widgets/_modals.scss deleted file mode 100755 index 4298f37..0000000 --- a/test/theme/styles/web/sass/core/widgets/_modals.scss +++ /dev/null @@ -1,123 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Modals - - Default Mendix Modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults -========================================================================== */ -.modal-dialog { - .modal-content { - border: 1px solid $modal-header-border-color; - border-radius: 4px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); - - .modal-header { - padding: 15px 20px; - border-bottom-color: $modal-header-border-color; - border-radius: 0; // Because of the class .mx-window-active in mxui.css - background-color: $modal-header-bg; - - h4 { - margin: 0; - color: $modal-header-color; - font-size: 16px; - font-weight: $font-weight-bold; - } - - .close { - margin-top: -3px; - opacity: 1; - /* For IE8 and earlier */ - color: $modal-header-color; - text-shadow: none; - filter: alpha(opacity=100); - } - } - - .modal-body { - padding: 20px; - } - - .modal-footer { - display: flex; - justify-content: flex-end; - margin-top: 0; - padding: 20px; - border-style: none; - } - } -} - -// Default Mendix Window Modal -.mx-window { - // If popup direct child is a dataview it gets the class mx-window-view - &.mx-window-view .mx-window-body { - overflow: hidden; // hide second scrollbar in edit page - padding: 0; - // Dataview in popup - > .mx-dataview > .mx-dataview-content, - > .mx-placeholder > .mx-dataview > .mx-dataview-content { - padding: 20px; - } - - > .mx-dataview > .mx-dataview-controls, - > .mx-placeholder > .mx-dataview > .mx-dataview-controls { - display: flex; - justify-content: flex-end; - margin: 0; - padding: 20px; - text-align: left; - border-top: 1px solid $modal-header-border-color; - } - } - - .mx-dataview-controls { - padding-bottom: 0; - } - - .mx-layoutgrid { - padding-right: 0; - padding-left: 0; - } -} - -// Login modal -.mx-login { - .modal-body { - padding: 0 15px; - } - - .modal-content { - input { - height: 56px; - padding: 12px 12px; - border: 1px solid #EEEEEE; - background: #EEEEEE; - box-shadow: none; - font-size: 16px; - - &:focus { - border-color: #66AFE9; - } - } - } - - .modal-header, - .modal-footer { - border: 0; - } - - button { - font-size: 16px; - } - - h4 { - color: #AAAAAA; - font-size: 20px; - font-weight: $font-weight-bold; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_navigationbar.scss b/test/theme/styles/web/sass/core/widgets/_navigationbar.scss deleted file mode 100755 index 7845cad..0000000 --- a/test/theme/styles/web/sass/core/widgets/_navigationbar.scss +++ /dev/null @@ -1,152 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - - Default Mendix Navigation Bar -========================================================================== */ -.mx-navbar { - margin: 0; - border-style: none; - border-radius: 0; - background-color: $navigation-bg; - - ul.nav { - margin: 0; // weird -margin if screen gets small (bootstrap) - - /* Navigation item */ - & > li.mx-navbar-item > a { - display: flex; - align-items: center; - min-height: $topbar-minimalheight; - padding: $navigation-item-padding; - vertical-align: middle; - color: $navigation-color; - border-radius: 0; - font-size: $navigation-font-size; - font-weight: $font-weight-normal; - - /* Dropdown arrow */ - .caret { - border-top-color: $navigation-color; - border-bottom-color: $navigation-color; - } - - &:hover, - &:focus, - &.active { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - - .caret { - border-top-color: $navigation-color-active; - border-bottom-color: $navigation-color-active; - } - } - - &.active { - color: $navigation-color-active; - background-color: $navigation-bg-active; - } - - /* Dropdown */ - .mx-navbar-submenu::before { - position: absolute; - top: -9px; - left: 15px; - width: 0; - height: 0; - content: ''; - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - border-width: 0 9px 9px 9px; - border-style: solid; - border-color: transparent transparent $navigation-border-color transparent; - } - - // Image - img { - width: 20px; // Default size (so it looks good) - height: auto; - margin-right: 0.5em; - } - - .glyphicon { - top: 0; - margin-right: 0.5em; - vertical-align: middle; - font-size: $navigation-glyph-size; - } - } - - & > .mx-navbar-item.active a { - color: $navigation-color-active; - } - - /* When hovering or the dropdown is open */ - & > .mx-navbar-item > a:hover, - & > .mx-navbar-item > a:focus, - & > .mx-navbar-item.open > a, - & > .mx-navbar-item.open > a:hover, - & > .mx-navbar-item.open > a:focus { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - - .caret { - border-top-color: $navigation-color-hover; - border-bottom-color: $navigation-color-hover; - } - } - - & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { - color: $navigation-sub-color-active; - background-color: $navigation-sub-bg-active; - - .caret { - border-top-color: $navigation-sub-color-active; - border-bottom-color: $navigation-sub-color-active; - } - } - } - @media (max-width: $screen-md) { - ul.nav > li.mx-navbar-item > a { - padding: 10px 20px; - } - .mx-navbar-item.open .dropdown-menu { - padding: 0; - border-radius: 0; - background-color: $navigation-sub-bg; - - & > li.mx-navbar-subitem > a { - padding: 10px 20px; - color: $navigation-sub-color; - border-radius: 0; - font-size: $navigation-sub-font-size; - font-weight: $font-weight-normal; - - &:hover, - &:focus { - color: $navigation-sub-color-hover; - background-color: $navigation-sub-bg-hover; - } - - &.active { - color: $navigation-sub-color-active; - background-color: $navigation-sub-bg-active; - } - } - } - } - - /* remove focus */ - &:focus { - outline: 0; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_navigationlist.scss b/test/theme/styles/web/sass/core/widgets/_navigationlist.scss deleted file mode 100755 index 0b44c33..0000000 --- a/test/theme/styles/web/sass/core/widgets/_navigationlist.scss +++ /dev/null @@ -1,37 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Navigation List - - Default Mendix Navigation List Widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item -========================================================================== */ -.mx-navigationlist { - margin: 0; - padding: 0; - list-style: none; - - li.mx-navigationlist-item { - @include transition(); - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - border-width: 1px; - border-style: none none solid none; - border-color: $grid-border-color; - border-radius: 0; - background-color: $grid-bg; - - &:hover, - &:focus { - color: inherit; - background-color: $grid-bg-hover; - } - - &.active { - color: inherit; - background-color: $grid-bg-selected; - } - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_navigationtree.scss b/test/theme/styles/web/sass/core/widgets/_navigationtree.scss deleted file mode 100755 index c5beb0e..0000000 --- a/test/theme/styles/web/sass/core/widgets/_navigationtree.scss +++ /dev/null @@ -1,111 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Navigation - - Default Mendix Navigation Tree -========================================================================== */ -.mx-navigationtree { - background-color: $navigation-bg; - - /* Every navigation item */ - .navbar-inner > ul { - margin: 0; - padding-left: 0; - & > li { - padding: 0; - border-style: none; - & > a { - display: flex; - align-items: center; - height: $navigation-item-height; - padding: $navigation-item-padding; - color: $navigation-color; - border-bottom: 1px solid $navigation-border-color; - border-radius: 0; - background-color: $navigation-bg; - text-shadow: none; - font-size: $navigation-font-size; - font-weight: $font-weight-normal; - .caret { - border-top-color: $navigation-color; - border-bottom-color: $navigation-color; - } - img { - width: 20px; // Default size - height: auto; - margin-right: 0.5em; - } - .glyphicon { - top: 0; - margin-right: 0.5em; - vertical-align: middle; - font-size: $navigation-glyph-size; - } - } - a:hover, - a:focus, - a.active { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - .caret { - border-top-color: $navigation-color-active; - border-bottom-color: $navigation-color-active; - } - } - a.active { - color: $navigation-color-active; - border-left-color: $navigation-color-active; - background-color: $navigation-bg-active; - } - } - } - - /* Sub navigation item specific */ - li.mx-navigationtree-has-items { - & > ul { - margin: 0; - padding-left: 0; - background-color: $navigation-sub-bg; - li { - margin: 0; - padding: 0; - border: 0; - a { - padding: 12px 20px 12px 25px; - text-decoration: none; - color: $navigation-sub-color; - border: 0; - background-color: $navigation-sub-bg; - text-shadow: none; - font-size: $navigation-sub-font-size; - font-weight: $font-weight-normal; - - &:hover, - &:focus, - &.active { - color: $navigation-sub-color-hover; - outline: 0; - background-color: $navigation-sub-bg-hover; - } - &.active { - color: $navigation-sub-color-active; - border: 0; - background-color: $navigation-sub-bg-active; - } - } - } - } - } - - /* remove focus */ - &:focus { - outline: 0; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_progress.scss b/test/theme/styles/web/sass/core/widgets/_progress.scss deleted file mode 100755 index bfdd31c..0000000 --- a/test/theme/styles/web/sass/core/widgets/_progress.scss +++ /dev/null @@ -1,64 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Progress - - Default Mendix Progress Widget. -========================================================================== */ - -.mx-progress { - color: $font-color-default; - background: $bg-color-secondary; - - .mx-progress-message { - color: $font-color-default; - } - - .mx-progress-indicator { - position: relative; - overflow: hidden; - width: 100%; - max-width: 100%; - height: 2px; - margin: auto; - padding: 0; - border-radius: 0; - background: $gray-lighter; - - &:before, - &:after { - position: absolute; - top: 0; - left: 0; - display: block; - width: 50%; - height: 2px; - content: ""; - transform: translate3d(-100%, 0, 0); - background: $brand-primary; - } - - &::before { - animation: loader 2s infinite; - } - - &::after { - animation: loader 2s -2s infinite; - } - } -} - - -@keyframes loader { - 0% { - transform: translate3d(-100%, 0, 0); - } - 100% { - transform: translate3d(200%, 0, 0); - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_radiobuttons.scss b/test/theme/styles/web/sass/core/widgets/_radiobuttons.scss deleted file mode 100755 index 63d0b5b..0000000 --- a/test/theme/styles/web/sass/core/widgets/_radiobuttons.scss +++ /dev/null @@ -1,121 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Radio Buttons - - Default Mendix Radio Button Widget -========================================================================== */ -.mx-radiobuttons.inline .mx-radiogroup { - display: flex; - flex-direction: row; - - .radio { - margin: 0 20px 0 0; - } -} - -.mx-radiobuttons .radio:last-child { - margin-bottom: 0; -} - -.radio { - display: flex !important; // Remove after mxui merge - align-items: center; - margin-top: 0; -} - -input[type='radio'] { - position: relative !important; // Remove after mxui merge - width: 16px; - height: 16px; - margin: 0; - cursor: pointer; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - -webkit-user-select: none; - user-select: none; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - - &::-ms-check { - color: $form-input-border-color; - border-color: $form-input-border-color; - background-color: $form-input-bg; - } - - &:focus::-ms-check, - &:checked::-ms-check { - color: $form-input-border-focus-color; - border-color: $form-input-border-focus-color; - background-color: $form-input-bg-focus; - } - - &:before, - &:after { - position: absolute; - display: block; - transition: all 0.3s ease-in-out; - border-radius: 50%; - } - - &:before { - width: 100%; - height: 100%; - content: ''; - border: 1px solid $form-input-border-color; - background-color: transparent; - } - - &:after { - top: 50%; - left: 50%; - width: 50%; - height: 50%; - transform: translate(-50%, -50%); - pointer-events: none; - background-color: $form-input-border-focus-color; - } - - &:not(:checked):after { - transform: translate(-50%, -50%) scale(0); - opacity: 0; - } - - &:not(:disabled):not(:checked):hover:after { - background-color: $form-input-bg-hover; - } - - &:checked:after, - &:not(:disabled):not(:checked):hover:after { - content: ''; - transform: translate(-50%, -50%) scale(1); - opacity: 1; - } - - &:checked:before { - border-color: $form-input-border-focus-color; - background-color: $form-input-bg; - } - - &:disabled:before { - background-color: $form-input-bg-disabled; - } - - &:checked:disabled:before { - border-color: rgba($form-input-border-focus-color, 0.4); - } - - &:checked:disabled:after { - background-color: rgba($form-input-border-focus-color, 0.4); - } - - & + label { - margin-left: $form-label-gutter; - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_simplemenubar.scss b/test/theme/styles/web/sass/core/widgets/_simplemenubar.scss deleted file mode 100755 index a7f11a5..0000000 --- a/test/theme/styles/web/sass/core/widgets/_simplemenubar.scss +++ /dev/null @@ -1,226 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// -/* ========================================================================== - Navigation - - Default Mendix Simple Menu Bar -========================================================================== */ -.mx-menubar { - padding: 0; - background-color: $navigation-bg; - - ul.mx-menubar-list { - display: flex; - width: 100%; - min-height: 50px; - - li.mx-menubar-item { - margin: 0; - - > a { - display: flex; - overflow: hidden; - align-items: center; - justify-content: center; - height: 100%; - padding: $navigation-item-padding; - white-space: nowrap; - color: $navigation-color; - border-radius: 0; - font-size: $navigation-font-size; - font-weight: $font-weight-normal; - - img { - margin-right: 0.5em; - } - - .glyphicon { - top: -1px; - margin-right: 0.5em; - vertical-align: middle; - font-size: $navigation-glyph-size; - } - } - - a:hover, - a:focus, - &:hover a, - &:focus a, - &.active a { - text-decoration: none; - color: $navigation-color-hover; - background-color: $navigation-bg-hover; - } - - &.active a { - color: $navigation-color-active; - background-color: $navigation-bg-active; - } - } - } - - /* remove focus */ - &:focus { - outline: 0; - } -} - -// Vertical variation specifics -.mx-menubar-vertical { - background-color: $navigation-bg; - - ul.mx-menubar-list { - display: flex; - - li.mx-menubar-item { - display: block; - - a { - border-bottom: 1px solid $navigation-border-color; - } - } - } -} - -// Horizontal variation specifics -.mx-menubar-horizontal { - box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14); - - ul.mx-menubar-list { - li.mx-menubar-item { - width: auto; - - a { - width: 100%; - } - } - } - - /* Two menu items */ - &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item { - width: 50%; - } - - /* Three menu items */ - &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item { - width: 33.33333333%; - } - - /* Four menu items */ - &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item { - width: 25%; - } - - /* Five menu items */ - &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item { - width: 20%; - } -} - -//== Regions -//## Behavior in the different regions -//-------------------------------------------------------------------------------------------------------------------// -// When used in topbar -.region-topbar { - .mx-menubar { - background-color: $navtopbar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - color: $navtopbar-color; - font-size: $navtopbar-font-size; - - .glyphicon { - font-size: $navtopbar-glyph-size; - } - } - - a:hover, - a:focus, - &:hover a, - &:focus a, - &.active a { - color: $navtopbar-color-hover; - background-color: $navtopbar-bg-hover; - } - - &.active a { - color: $navtopbar-color-active; - background-color: $navtopbar-bg-active; - } - } - } - } - - // Vertical variation specifics - .mx-menubar-vertical { - background-color: $navtopbar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - height: $navigation-item-height; - border-color: $navtopbar-border-color; - } - } - } - } -} - -// When used in sidebar -.region-sidebar { - .mx-menubar { - background-color: $navsidebar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - color: $navsidebar-color; - font-size: $navsidebar-font-size; - - .glyphicon { - font-size: $navsidebar-glyph-size; - } - } - - a:hover, - a:focus, - &:hover a, - &:focus a, - &.active a { - color: $navsidebar-color-hover; - background-color: $navsidebar-bg-hover; - } - - &.active a { - color: $navsidebar-color-active; - background-color: $navsidebar-bg-active; - } - } - } - } - - // Vertical variation specifics - .mx-menubar-vertical { - background-color: $navsidebar-bg; - - ul.mx-menubar-list { - li.mx-menubar-item { - a { - border-color: $navsidebar-border-color; - } - } - } - } -} - -@supports (padding-bottom: env(safe-area-inset-bottom)) { - .mx-menubar { - padding-bottom: env(safe-area-inset-bottom); - } -} \ No newline at end of file diff --git a/test/theme/styles/web/sass/core/widgets/_tabcontainer.scss b/test/theme/styles/web/sass/core/widgets/_tabcontainer.scss deleted file mode 100755 index 125fb00..0000000 --- a/test/theme/styles/web/sass/core/widgets/_tabcontainer.scss +++ /dev/null @@ -1,86 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tab Container - - Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages. - This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen -========================================================================== */ - -.mx-tabcontainer { - .mx-tabcontainer-tabs { - margin-bottom: 20px; - border-color: $tabs-border-color; - & > li > a { - margin-right: 0; - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - color: $tabs-color; - font-weight: $font-weight-normal; - &:hover, - &:focus { - background-color: $tabs-bg-hover; - } - } - & > li.active > a, - & > li.active > a:hover, - & > li.active > a:focus { - color: $tabs-color-active; - border: 1px solid $tabs-border-color; - border-bottom-color: transparent; - background-color: $tabs-bg; - } - } -} - -// Tab Styling Specific for mobile -.tab-mobile.mx-tabcontainer { - & > .mx-tabcontainer-tabs { - margin: 0; - text-align: center; - border-style: none; - background-color: $brand-primary; - li { - display: table-cell; - float: none; - width: 1%; - margin: 0; - text-align: center; - border-style: none; - border-radius: 0; - a { - padding: 15px; - text-transform: uppercase; - color: #FFFFFF; - border-width: 0 1px 0 0; - border-style: solid; - border-color: rgba(255, 255, 255, 0.3); - border-radius: 0; - font-size: 12px; - font-weight: $font-weight-normal; - &:hover, - &:focus { - background-color: inherit; - } - } - &:last-child a { - border-right: none; - } - &.active > a, - &.active > a:hover, - &.active > a:focus { - color: #FFFFFF; - border-style: none; - border-radius: 0; - background-color: mix($brand-primary, #000000, 80%); - } - } - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_tables.scss b/test/theme/styles/web/sass/core/widgets/_tables.scss deleted file mode 100755 index 21c0c33..0000000 --- a/test/theme/styles/web/sass/core/widgets/_tables.scss +++ /dev/null @@ -1,79 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Tables - - Default Mendix Table Widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets -========================================================================== */ - -th { - font-weight: $font-weight-bold; -} - -html body .mx-page table.mx-table { - th, - td { - &.nopadding { - padding: 0; - } - } -} - -table.mx-table { - > tbody { - /* Table row */ - > tr { - /* Table header */ - > th { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left;s - * { - color: $form-label-color; - font-weight: $font-weight-bold; - font-weight: $form-label-weight; - } - > label { - padding-top: 7px; - padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it. - } - } - /* Table cells */ - > td { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left; - > div > label, - .mx-referenceselector-input-wrapper label { - padding-top: 7px; - padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it. - } - } - } - } -} - -// Default Mendix Table Widget inside TemplateGrid -.mx-templategrid table.mx-table { - > tbody { - > tr { - > th, - > td { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left; - } - } - } -} - -// Default Mendix Table Widget inside Listview -.mx-list table.mx-table { - > tbody { - > tr { - > th, - > td { - padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom $padding-table-cell-left; - } - } - } -} diff --git a/test/theme/styles/web/sass/core/widgets/_templategrids.scss b/test/theme/styles/web/sass/core/widgets/_templategrids.scss deleted file mode 100755 index 35d6fce..0000000 --- a/test/theme/styles/web/sass/core/widgets/_templategrids.scss +++ /dev/null @@ -1,33 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Templategrid - - Default Mendix Templategrid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows -========================================================================== */ - -.mx-templategrid { - .mx-templategrid-content-wrapper { - table-layout: fixed; - } - .mx-templategrid-item { - padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; - cursor: default; - background-color: $grid-bg; - &:hover { - background-color: transparent; - } - &.selected { - background-color: $grid-bg-selected !important; - } - } - .mx-layoutgrid { - padding-top: 0 !important; - padding-bottom: 0 !important; - } -} \ No newline at end of file diff --git a/test/theme/styles/web/sass/core/widgets/_typography.scss b/test/theme/styles/web/sass/core/widgets/_typography.scss deleted file mode 100755 index 21fa8a0..0000000 --- a/test/theme/styles/web/sass/core/widgets/_typography.scss +++ /dev/null @@ -1,79 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* ========================================================================== - Typography -========================================================================== */ - -p { - line-height: $line-height-base * 1.25; -} - -label { - padding-top: 0; -} - -.mx-title { - margin: $font-header-margin; - color: $font-color-header; - font-size: $font-size-h1; - font-weight: $font-weight-header; -} - -h1, -.h1, -.h1 > * { - font-size: $font-size-h1; -} - -h2, -.h2, -.h2 > * { - font-size: $font-size-h2; -} - -h3, -.h3, -.h3 > * { - font-size: $font-size-h3; -} - -h4, -.h4, -.h4 > * { - font-size: $font-size-h4; -} - -h5, -.h5, -.h5 > * { - font-size: $font-size-h5; -} - -h6, -.h6, -.h6 > * { - font-size: $font-size-h6; -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - margin: $font-header-margin; - color: $font-color-header; - font-weight: $font-weight-header; - line-height: 1.3; -} \ No newline at end of file diff --git a/test/theme/styles/web/sass/core/widgetscustom/_dijit-widgets.scss b/test/theme/styles/web/sass/core/widgetscustom/_dijit-widgets.scss deleted file mode 100755 index cf859c1..0000000 --- a/test/theme/styles/web/sass/core/widgetscustom/_dijit-widgets.scss +++ /dev/null @@ -1,184 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* -* Mendix Documentation -* Special styles for presenting components -*/ - -/* -* Dijit Widgets -* -* Default Dojo Dijit Widgets -*/ - -/* - * Dijit Tooltip Widget - * - * Default tooltip used for Mendix widgets - */ - -.mx-tooltip { - .dijitTooltipContainer { - border-width: 1px; - border-color: $gray-light; - border-radius: 4px; - background: #ffffff; - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - .mx-tooltip-content { - padding: 10px; - } - .form-group { - margin-bottom: 5px; - } - } - .dijitTooltipConnector { - width: 0; - height: 0; - margin-left: -10px; - border-width: 10px 10px 10px 0; - border-style: solid; - border-color: transparent; - border-right-color: $gray-light; - } -} - -/* - * Dijit Border Container - * - * Used in Mendix as split pane containers - */ - -.dijitBorderContainer { - padding: 5px; - background-color: #fcfcfc; - .dijitSplitterV, - .dijitGutterV { - width: 5px; - border: 0; - background: #fcfcfc; - } - .dijitSplitterH, - .dijitGutterH { - height: 5px; - border: 0; - background: #fcfcfc; - } - .dijitSplitterH { - .dijitSplitterThumb { - top: 2px; - width: 19px; - height: 1px; - background: #b0b0b0; - } - } - .dijitSplitterV { - .dijitSplitterThumb { - left: 2px; - width: 1px; - height: 19px; - background: #b0b0b0; - } - } - .dijitSplitContainer-child, - .dijitBorderContainer-child { - border: 1px solid #cccccc; - } - .dijitBorderContainer-dijitTabContainerTop, - .dijitBorderContainer-dijitTabContainerBottom, - .dijitBorderContainer-dijitTabContainerLeft, - .dijitBorderContainer-dijitTabContainerRight { - border: none; - } - .dijitBorderContainer-dijitBorderContainer { - padding: 0; - border: none; - } - .dijitSplitterActive { - /* For IE8 and earlier */ - margin: 0; - opacity: 0.6; - background-color: #aaaaaa; - background-image: none; - font-size: 1px; - filter: alpha(opacity=60); - } - .dijitSplitContainer-dijitContentPane, - .dijitBorderContainer-dijitContentPane { - padding: 5px; - background-color: #ffffff; - } -} - -/* - * Dijit Menu Popup - * - * Used in datepickers and calendar widgets - */ - -.dijitMenuPopup { - margin-top: 10px; - .dijitMenu { - display: block; - width: 200px !important; - margin-top: 0; // No top margin because there is no parent with margin bottom - padding: 12px 10px; - border-radius: 3px; - background: $brand-inverse; - &:after { - position: absolute; - bottom: 100%; - left: 20px; - width: 0; - height: 0; - margin-left: -10px; - content: ' '; - pointer-events: none; - border: medium solid transparent; - border-width: 10px; - border-bottom-color: $brand-inverse; - } - // Menu item - .dijitMenuItem { - background: transparent; - .dijitMenuItemLabel { - display: block; - overflow: hidden; - width: 180px !important; - padding: 10px; - text-overflow: ellipsis; - color: #ffffff; - border-radius: 3px; - } - // Hover - &.dijitMenuItemHover { - background: none; - .dijitMenuItemLabel { - background: $brand-primary; - } - } - } - // New label - .tg_newlabelmenuitem { - .dijitMenuItemLabel { - font-weight: $font-weight-bold; - } - } - // Seperator - .dijitMenuSeparator { - td { - padding: 0; - border-bottom-width: 3px; - } - .dijitMenuSeparatorIconCell { - > div { - margin: 0; //override dijit styling - } - } - } - } -} diff --git a/test/theme/styles/web/sass/core/widgetscustom/_progress-bar-theme.scss b/test/theme/styles/web/sass/core/widgetscustom/_progress-bar-theme.scss deleted file mode 100755 index 7309a06..0000000 --- a/test/theme/styles/web/sass/core/widgetscustom/_progress-bar-theme.scss +++ /dev/null @@ -1,43 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */ -div.widget-progress-bar .progress-bar-default { - background-color: $brand-default; -} - -div.widget-progress-bar .progress-bar-primary { - background-color: $brand-primary; -} - -div.widget-progress-bar .progress-bar-success { - background-color: $brand-success; -} - -div.widget-progress-bar .progress-bar-info { - background-color: $brand-info; -} - -div.widget-progress-bar .progress-bar-warning { - background-color: $brand-warning; -} - -div.widget-progress-bar .progress-bar-danger { - background-color: $brand-danger; -} - -div.widget-progress-bar .progress-bar-inverse { - background-color: $brand-inverse; -} - -div.widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar { - color: $color-danger-darker; -} - -div.widget-progress-bar-text-contrast .progress-bar { - color: $font-color-default; -} diff --git a/test/theme/styles/web/sass/core/widgetscustom/_progress-circle-theme.scss b/test/theme/styles/web/sass/core/widgetscustom/_progress-circle-theme.scss deleted file mode 100755 index 0c0b385..0000000 --- a/test/theme/styles/web/sass/core/widgetscustom/_progress-circle-theme.scss +++ /dev/null @@ -1,65 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* Based on https://github.com/mendixlabs/progress-circle/tree/master/src/ui/_progress-circle-theme.scss */ -path.widget-progress-circle-path { - stroke: $brand-primary; -} - -.widget-progress-circle-primary { - path.widget-progress-circle-path { - stroke: $brand-primary; - } - .progressbar-text { - color: $brand-primary !important; - } -} - -.widget-progress-circle-info { - path.widget-progress-circle-path { - stroke: $brand-info; - } - .progressbar-text { - color: $brand-info !important; - } -} - -.widget-progress-circle-success { - path.widget-progress-circle-path { - stroke: $brand-success; - } - .progressbar-text { - color: $brand-success !important; - } -} - -.widget-progress-circle-warning { - path.widget-progress-circle-path { - stroke: $brand-warning; - } - .progressbar-text { - color: $brand-warning !important; - } -} - -.widget-progress-circle-danger { - path.widget-progress-circle-path { - stroke: $brand-danger; - } - .progressbar-text { - color: $brand-danger !important; - } -} - -.widget-progress-circle-inverse { - path.widget-progress-circle-path { - stroke: $brand-inverse; - } - .progressbar-text { - color: $brand-inverse !important; - } -} diff --git a/test/theme/styles/web/sass/core/widgetscustom/_range-slider-theme.scss b/test/theme/styles/web/sass/core/widgetscustom/_range-slider-theme.scss deleted file mode 100755 index 46f3047..0000000 --- a/test/theme/styles/web/sass/core/widgetscustom/_range-slider-theme.scss +++ /dev/null @@ -1,55 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// Based on https://github.com/mendixlabs/range-slider/tree/master/src/ui/_range-slider-theme.scss - -div.widget-range-slider { - .rc-slider-handle, - .rc-slider-dot-active { - border-color: $brand-default; - - &:active { - border-color: $brand-default; - box-shadow: none; - } - - &:hover { - border-color: $brand-default; - } - } - - &.has-error { - .rc-slider-track, - .rc-slider-rail { - background-color: $brand-danger; - } - } -} - -div.widget-range-slider-primary .rc-slider-track { - background-color: $brand-primary; -} - -div.widget-range-slider-info .rc-slider-track { - background-color: $brand-info; -} - -div.widget-range-slider-success .rc-slider-track { - background-color: $brand-success; -} - -div.widget-range-slider-warning .rc-slider-track { - background-color: $brand-warning; -} - -div.widget-range-slider-danger .rc-slider-track { - background-color: $brand-danger; -} - -div.widget-range-slider-inverse .rc-slider-track { - background-color: $brand-inverse; -} diff --git a/test/theme/styles/web/sass/core/widgetscustom/_slider-theme.scss b/test/theme/styles/web/sass/core/widgetscustom/_slider-theme.scss deleted file mode 100755 index 951b79a..0000000 --- a/test/theme/styles/web/sass/core/widgetscustom/_slider-theme.scss +++ /dev/null @@ -1,52 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -// Based on https://github.com/mendixlabs/slider/tree/master/src/ui/_slider-theme.scss - -div.widget-slider { - .rc-slider-handle, - .rc-slider-dot-active { - border-color: $brand-default; - &:active { - border-color: $brand-default; - } - &:hover { - border-color: $brand-default; - } - } - - &.has-error { - .rc-slider-track, - .rc-slider-rail { - background-color: $brand-danger; - } - } -} - -div.widget-slider-primary .rc-slider-track { - background-color: $brand-primary; -} - -div.widget-slider-info .rc-slider-track { - background-color: $brand-info; -} - -div.widget-slider-success .rc-slider-track { - background-color: $brand-success; -} - -div.widget-slider-warning .rc-slider-track { - background-color: $brand-warning; -} - -div.widget-slider-danger .rc-slider-track { - background-color: $brand-danger; -} - -div.widget-slider-inverse .rc-slider-track { - background-color: $brand-inverse; -} diff --git a/test/theme/styles/web/sass/core/widgetscustom/_star-rating-theme.scss b/test/theme/styles/web/sass/core/widgetscustom/_star-rating-theme.scss deleted file mode 100755 index 91eeb86..0000000 --- a/test/theme/styles/web/sass/core/widgetscustom/_star-rating-theme.scss +++ /dev/null @@ -1,35 +0,0 @@ -// -// DISCLAIMER: -// Do not change this file because it is core styling. -// Customizing core files will make updating Atlas much more difficult in the future. -// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. -// - -/* Based on https://github.com/mendixlabs/star-rating/blob/v1.1.1/src/ui/StarRating.scss */ -span.widget-star-rating-full-default { - color: $brand-default; -} - -span.widget-star-rating-full-primary { - color: $brand-primary; -} - -span.widget-star-rating-full-success { - color: $brand-success; -} - -span.widget-star-rating-full-info { - color: $brand-info; -} - -span.widget-star-rating-full-warning { - color: $brand-warning; -} - -span.widget-star-rating-full-danger { - color: $brand-danger; -} - -span.widget-star-rating-full-inverse { - color: $brand-inverse; -} diff --git a/test/theme/styles/web/sass/main.scss b/test/theme/styles/web/sass/main.scss deleted file mode 100755 index a3c7428..0000000 --- a/test/theme/styles/web/sass/main.scss +++ /dev/null @@ -1,103 +0,0 @@ -// Utilities -@import 'core/_legacy/bootstrap/bootstrap'; -@import 'core/_legacy/bootstrap/bootstrap-rtl'; -@import 'core/_legacy/mxui'; - -// Custom variables -@import 'app/custom-variables'; - -//================================== CORE ==================================\\ - -// Default variables -@import 'core/variables'; - -// Base -@import 'core/base/mixins/animations'; -@import 'core/base/mixins/spacing'; -@import 'core/base/mixins/layout-spacing'; -@import 'core/base/mixins/buttons'; -@import 'core/base/mixins/groupbox'; -@import 'core/base/animation'; -@import 'core/base/flex'; -@import 'core/base/spacing'; -@import 'core/base/reset'; -@import 'core/base/base'; -@import 'core/base/login'; - -// Widgets -@import 'core/widgets/inputs'; -@import 'core/widgets/alerts'; -@import 'core/helpers/alerts'; -@import 'core/helpers/backgrounds'; -@import 'core/widgets/buttons'; -@import 'core/helpers/buttons'; -@import 'core/widgets/checkbox'; -@import 'core/widgets/grid'; -@import 'core/widgets/datagrids'; -@import 'core/helpers/datagrids'; -@import 'core/widgets/dataview'; -@import 'core/widgets/datepicker'; -@import 'core/widgets/header'; -@import 'core/widgets/glyphicons'; -@import 'core/widgets/groupbox'; -@import 'core/helpers/groupbox'; -@import 'core/helpers/images'; -@import 'core/widgets/labels'; -@import 'core/helpers/labels'; -@import 'core/widgets/listview'; -@import 'core/helpers/listview'; -@import 'core/widgets/modals'; -@import 'core/widgets/navigationbar'; -@import 'core/helpers/navigationbar'; -@import 'core/widgets/navigationlist'; -@import 'core/widgets/navigationtree'; -@import 'core/helpers/navigationtree'; -@import 'core/widgets/simplemenubar'; -@import 'core/helpers/simplemenubar'; -@import 'core/widgets/radiobuttons'; -@import 'core/widgets/tabcontainer'; -@import 'core/helpers/tabcontainer'; -@import 'core/widgets/tables'; -@import 'core/helpers/tables'; -@import 'core/widgets/templategrids'; -@import 'core/helpers/templategrids'; -@import 'core/widgets/typography'; -@import 'core/helpers/typography'; -@import 'core/widgets/layoutgrid'; -@import 'core/widgets/progress'; -@import 'core/helpers/helperclasses'; - -// Custom widgets -@import 'core/widgetscustom/dijit-widgets'; -@import 'core/widgetscustom/progress-bar-theme'; -@import 'core/widgetscustom/progress-circle-theme'; -@import 'core/widgetscustom/range-slider-theme'; -@import 'core/widgetscustom/slider-theme'; -@import 'core/widgetscustom/star-rating-theme'; -@import 'core/widgetscustom/switchwidget'; - -//================================= CUSTOM =================================\\ - -// Building blocks -@import 'ui_resources/atlas_ui_resources/buildingblocks/breadcrumb'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/card'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/chat'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/controlgroup'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/pageblocks'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/pageheader'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/heroheader'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/formblock'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/master-detail'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/userprofile'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/wizard'; -@import 'ui_resources/atlas_ui_resources/buildingblocks/timeline'; - -// Layouts -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas'; -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-phone'; -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-responsive'; -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-tablet'; -@import 'ui_resources/atlas_ui_resources/layouts/layout-atlas-device-wrapper'; - -// Custom -@import 'app/custom'; diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_card.scss b/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_card.scss deleted file mode 100755 index ddfc68d..0000000 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_card.scss +++ /dev/null @@ -1,337 +0,0 @@ -/* ========================================================================== - Cards - -========================================================================== */ -.card { - padding: 30px; - border: 1px solid $border-color-default; - border-radius: $border-radius-default; - background-color: #FFFFFF; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.card-title { - margin-top: 0; -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.cardaction { - .card-image { - .glyphicon { - font-size: 58px; - } - } -} - -.cardmetrics { - .card-title { - margin-bottom: 0; - } - - .figurecontent { - } - - .card-image { - width: 100px; - height: auto; - // If btn - &.btn { - width: 100px; - height: 100px; - padding: 0; - cursor: default; - pointer-events: none; - font-size: 40px; - } - } - - .card-counter { - margin: 0; - font-size: 64px; - } - - .card-morebutton { - } -} - -.cardinfo { - .card-text { - margin-bottom: $spacing-large; - } -} - -// Used in card info -.textwithicon { - overflow: hidden; - max-width: 100%; - margin-bottom: 15px; - text-overflow: ellipsis; - - .textwithicon-icon, - .textwithicon-text { - display: inline-block; - vertical-align: middle; - } - - .textwithicon-icon { - margin-right: 15px; - padding: 0; - color: $brand-primary; // class .text-primary - border: 0; - background: transparent; - font-size: 23px; - } - - .textwithicon-text { - } -} - -// Used in card info -.socialprofiles { - .socialprofiles-title { - display: block; - margin-bottom: 10px; - font-weight: bold; // class text-bold - } - - .socialprofiles-button { - width: 24px; - height: 24px; - margin-right: 15px; - padding: 0; - border-radius: 24px; - - .glyphicon { - margin: 0; - } - } -} - - -.cardtabs { - padding: 0; -} - -.cardtabs-tabs { - margin: 0; - - ul.mx-tabcontainer-tabs { - display: flex; - margin: 0; - background-color: mix($tabs-border-color, #FFFFFF, 20%); - - li { - flex: 1 1 auto; - text-align: center; - - a, - a:hover, - a:focus { - border-top-width: 0; - border-right-width: 1px; - border-left-width: 0; - } - - &:first-child a { - border-radius: $border-radius-default 0 0 0; - } - - &:last-child a { - border-radius: 0 $border-radius-default 0 0; - } - } - } - - .mx-tabcontainer-pane { - @include get-responsive-spacing-large($type: padding, $direction: all); - } -} - -.carduser { - .card-controls { - } - - .card-title { - } - - .card-detail { - } -} - -.cardgraph { - .card-title { - } -} - -.cardchart { - .card-title { - } -} - -.cardproduct { - padding: 0; - -} - -.cardproduct-header { - position: relative; - overflow: hidden; - height: 200px; - - .card-image { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: auto; - } - -} - -.cardproduct-overlay { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - padding: 20px 30px; - background: rgba(0, 0, 0, 0.60); - -} - -.cardproduct-overlay-category, -.cardproduct-overlay-title { - margin: 0; - color: #FFFFFF; -} - -.cardproduct-footer .col { - padding: 20px 30px; - - .widget-star-rating-font { - font-size: 20px; - } -} - -.cardproduct-name { - margin: 0; -} - -.cardproduct-btn { - display: flex; - align-items: center; - height: 100%; - padding: 30px; - border-left: 1px solid $border-color-default; -} - -.cardproduct2 { - @extend .cardproduct; - - .cardproduct-header { - &::after { - position: absolute; - bottom: 0; - left: 0; - display: block; - width: 100%; - padding: 20px 30px; - content: ""; - background: rgba(0, 0, 0, 0.60); - background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%); - background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%); - background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 2%, rgba(0, 0, 0, 0.99) 99%, rgba(0, 0, 0, 1) 100%); - } - } -} - - -.cardproduct3 { - @extend .cardproduct; - - .cardproduct-header { - height: 320px; - - img { - width: 100%; - height: 100%; - object-fit: cover; - } - - } - - .cardproduct-overlay { - min-height: 100px; - padding: 30px; - background: -moz-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%); - background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%); - background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(250, 250, 250, 0) 8%, rgba(0, 0, 0, 0.99) 121%, rgba(0, 0, 0, 1) 100%); - font-size: $font-size-default; - } -} - -.cardshopping { -} - -.carduserlist { -} - -.cardstatus { - padding: 20px; - - .card-linkicon { - font-size: 30px; - } - - .cardstatus-status { - margin-bottom: 5px; - } -} - -.cardpayment { -} - -.cardprogress { -} - -.cardprogress-state { - width: 80px; - height: 80px; - padding: 0; - cursor: default; - pointer-events: none; - border-radius: 100%; - font-size: 28px; -} - -.cardhighlight { - border-top: 4px solid $brand-primary; -} - -.cardchat { - overflow: hidden; - padding: 0; - - .chat { - height: 400px; - } -} - -@media screen and (max-width: $screen-md-max) { - .widget-charts:not([height]), - .widget-charts-line:not([height]) { - padding-bottom: 80% !important; - } -} - - -@media screen and (max-width: $screen-lg-max) { - .cardprogress { - .cardprogress-state { - width: 60px; - height: 60px; - font-size: 24px; - } - } -} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss b/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss deleted file mode 100755 index f00c387..0000000 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_heroheader.scss +++ /dev/null @@ -1,99 +0,0 @@ -/* ========================================================================== - Pageheader - -========================================================================== */ -.heroheader { - border-bottom: 1px solid $border-color-default; - background: $header-bg-color; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.heroheader-title { - margin: 0 0 10px 0; -} - -.heroheader-subtitle { - margin: 0; - padding: 0 15px; - - &::before { - display: block; - max-width: 330px; - height: 1px; - margin: auto auto 10px auto; - content: ""; - background-color: lighten($border-color-default, 4); - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.heroheader1 { - background-image: $brand-gradient; - - .heroheader-title { - margin-bottom: 10px; - color: #FFFFFF; - } - - .heroheader-subtitle { - padding: 0; - color: #FFFFFF; - - &::before { - display: none; - } - } -} - -.heroheadermap { - padding: 0 !important; -} - -.heroheadermap-controls { - padding: $spacing-large; - background: $header-bg-color; -} - -.heroheaderproduct { - position: relative; - overflow: hidden; - height: 300px; - background-color: #000000; - - .heroheaderproduct-backgroundimage { - position: absolute; - z-index: 0; - top: 0; - width: 100%; - opacity: 0.7; - filter: blur(5px); - } - - .heroheaderproduct-overlay { - position: absolute; - z-index: 1; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } -} - -.heroheaderexpense { - .heroheaderexpense-title { - font-size: 72px; - } - - .heroheaderexpense-type { - align-items: center; - - &::before { - flex-grow: 1; - height: 1px; - margin-right: 10px; - content: ""; - background-color: #D2D2D2; - } - } -} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss b/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss deleted file mode 100755 index 2422239..0000000 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_master-detail.scss +++ /dev/null @@ -1,46 +0,0 @@ -/* ========================================================================== - Master Detail - - A list with a listening dataview -========================================================================== */ -.masterdetail { - .masterdetail-master { - .controlgroup { - margin-bottom: $gutter-size; - } - - @media (max-width: $screen-lg) { - @include layout-spacing($type: margin, $direction: bottom, $device: responsive); - } - - @media (min-width: $screen-lg) { - border-right: 1px solid $border-color-default; - - .mx-listview-searchbar { - margin: $gutter-size; - } - .controlgroup { - padding: $gutter-size; - border-bottom: 1px solid $border-color-default; - } - } - } - - .masterdetail-detail { - @media (min-width: $screen-lg) { - @include layout-spacing($type: padding, $direction: all, $device: responsive); - } - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.masterdetailvertical { - .masterdetail-master { - @include layout-spacing($type: margin, $direction: bottom, $device: responsive); - } - - .masterdetail-detail { - @include layout-spacing($type: padding, $direction: top, $device: responsive); - } -} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss b/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss deleted file mode 100755 index 3425161..0000000 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageheader.scss +++ /dev/null @@ -1,59 +0,0 @@ -/* ========================================================================== - Pageheader -========================================================================== */ - -//== Default -//-------------------------------------------------------------------------------------------------------------------// -.pageheader { - border-bottom: 1px solid $border-color-default; - background: $header-bg-color; -} - -// Check if it is part of a inner layoutgrid -.mx-scrollcontainer .mx-placeholder .mx-layoutgrid .pageheader { - @include get-responsive-spacing-large($type: margin, $direction: bottom); - @include get-responsive-spacing-large($type: padding, $direction: bottom); - background: transparent; -} - -//== Elements -//-------------------------------------------------------------------------------------------------------------------// -.pageheader-type { - margin: 0; -} - -.pageheader-title { - margin: 0; -} - -.pageheader-subtitle { - margin: 0; -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.pageheaderwithcontrols { - .controlgroup { - } -} - -.pageheaderwithimage { - .pageheader-image { - } - .figurecontent { - } -} - -.pageheaderwithimageandcontrols { -} - -.pageheaderwithsearch { - .pageheader-title { - margin-bottom: 1em; - } -} - -.pageheaderwithbreadcrumb { - .breadcrumb { - } -} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss b/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss deleted file mode 100755 index 63f4d65..0000000 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_timeline.scss +++ /dev/null @@ -1,46 +0,0 @@ -// Timeline -.timeline { - .timeline-header { - display: inline-block; - width: 110px; - padding: 8px; - text-align: center; - border: 1px solid $border-color-default; - border-radius: 30px; - } -} -.timeline-itemwrapper.mx-listview { - margin-bottom: 0; - margin-left: 55px; - padding: $spacing-large 0; - border-left: 1px solid $border-color-default; - & > ul > li { - position: relative; - padding-left: ($gutter-size * 2); - - &::before { - position: absolute; - top: 5px; - left: -5px; - display: block; - width: 10px; - height: 10px; - content: ''; - border-radius: 50%; - background-color: $brand-primary; - } - } - li + li { - margin-top: $spacing-large; - } -} - -//== Variations -//-------------------------------------------------------------------------------------------------------------------// -.timeline2 { - .timeline-itemwrapper.mx-listview { - & > ul > li { - padding-left: $gutter-size; - } - } -} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss b/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss deleted file mode 100755 index 37df48d..0000000 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_wizard.scss +++ /dev/null @@ -1,137 +0,0 @@ -$wizard-step-number-size: 60px; -$wizard-step-height: 50px; - -.wizard { - display: flex; - justify-content: space-between; - .wizard-step { - position: relative; - width: 100%; - text-align: center; - &::before { - position: absolute; - z-index: -1; - top: $wizard-step-number-size / 2; - display: block; - width: 100%; - height: 2px; - content: ""; - background-color: $border-color-default; - } - .wizard-step-number { - width: $wizard-step-number-size; - height: $wizard-step-number-size; - border-color: $border-color-default; - border-radius: 50%; - background-color: #FFFFFF; - font-size: 20px; - } - .wizard-step-text { - display: block; - margin-top: 15px; - } - } - - - // States - .wizard-step-active { - .wizard-step-number { - color: #FFFFFF; - border-color: $brand-primary; - background-color: $brand-primary; - } - .wizard-step-text { - color: $brand-primary; - } - } - .wizard-step-visited { - .wizard-step-number { - color: #FFFFFF; - border-color: $brand-success; - background-color: $brand-success; - } - .wizard-step-text { - } - } -} - -.wizardprogress { - display: flex; - justify-content: space-between; - - .wizard-step-text { - width: 100%; - } - - .wizard-step { - position: relative; - width: 100%; - height: $wizard-step-height; - margin-left: 0 - ($wizard-step-height / 2); - padding-left: ($wizard-step-height / 2); - border: 1px solid $border-color-default; - background: #FFFFFF; - - a { - display: block; - overflow: hidden; - width: 100%; - height: 100%; - padding: 14px; - white-space: nowrap; - text-decoration: none; - text-overflow: ellipsis; - color: $font-color-default; - } - &::before, - &::after { - position: absolute; - z-index: 1; - left: 100%; - margin-left: 0 - ($wizard-step-height / 2); - content: " "; - border-style: solid; - border-color: transparent; - } - &::after { - top: 1px; - border-width: (($wizard-step-height / 2) - 1); - border-left-color: #FFFFFF; - } - &::before { - top: 0; - border-width: $wizard-step-height / 2; - border-left-color: $border-color-default; - } - - &:first-child { - margin-left: 0; - padding-left: 0; - border-radius: 5px 0 0 5px; - } - - &:last-child { - border-radius: 0 5px 5px 0; - &::before, - &::after { - display: none; - } - } - } - // States - .wizard-step-active { - background: $brand-primary; - a { - text-decoration: none; - color: #FFFFFF; - } - &::after { - border-left-color: $brand-primary; - } - } - .wizard-step-visited { - a { - color: $link-color; - } - } -} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-device-wrapper.scss b/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-device-wrapper.scss deleted file mode 100755 index 8f5686c..0000000 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-device-wrapper.scss +++ /dev/null @@ -1,56 +0,0 @@ -.devicephone { - width: 420px; - height: 992px; - margin: auto; - padding: 120px 40px; - background: url(../../../resources/phone.png) no-repeat center center; - - .deviceframe, - .deviceshadowwrapper { - border-radius: 40px; - } -} - -.devicetablet { - width: 1210px; - height: 1000px; - margin: auto; - padding: 120px 100px; - background: url(../../../resources/tablet.png) no-repeat center center; - - .deviceframe, - .deviceshadowwrapper { - border-radius: 20px; - } -} - -.deviceframe { - width: 100%; - height: 100%; - border: none; -} -.deviceshadowwrapper { - position: relative; - width: 100%; - height: 100%; -} -.deviceshadow { - position: absolute; - z-index: 2; - top: 0; - right: 0; - bottom: 0; - left: 0; - content: ''; - pointer-events: none; - box-shadow: inset 10px 0 10px -10px black, inset -10px 0 10px -10px black; -} -.devicedisclaimer { - margin-top: 80px; - padding: 10px; - text-align: center; - color: $gray-light; - border-top: 1px solid $border-color-default; - font-size: 12px; - line-height: 20px; -} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss b/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss deleted file mode 100755 index dfa318e..0000000 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-tablet.scss +++ /dev/null @@ -1,8 +0,0 @@ -/* ========================================================================== - Atlas layout - - Extra styling for tablet layouts -========================================================================== */ -.layout-atlas-tablet { - // tablet -} diff --git a/test/theme/web/custom-variables.scss b/test/theme/web/custom-variables.scss new file mode 100644 index 0000000..05b5ad5 --- /dev/null +++ b/test/theme/web/custom-variables.scss @@ -0,0 +1,720 @@ +// +// ██████╗ █████╗ ███████╗██╗ ██████╗ +// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝ +// ██████╔╝███████║███████╗██║██║ +// ██╔══██╗██╔══██║╚════██║██║██║ +// ██████╔╝██║ ██║███████║██║╚██████╗ +// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝ +// + +//== Gray Shades +//## Different gray shades to be used for our variables and components +$gray-darker: #0a1325; +$gray-dark: #474e5c; +$gray: #787d87; +$gray-light: #a9acb3; +$gray-primary: #e7e7e9; +$gray-lighter: #f8f8f8; + +//== Step 1: Brand Colors +$brand-default: $gray-primary; +$brand-primary: #264ae5; +$brand-success: #3cb33d; +$brand-warning: #eca51c; +$brand-danger: #e33f4e; + +$brand-logo: false; +$brand-logo-height: 32px; +$brand-logo-width: 32px; // Only used for CSS brand logo + +//== Step 2: UI Customization + +// Default Font Size & Color +$font-size-default: 14px; +$font-color-default: #0a1325; + +// Global Border Color +$border-color-default: #ced0d3; +$border-radius-default: 4px; + +// Topbar +$topbar-bg: #020557; +$topbar-minimalheight: 48px; +$topbar-border-color: $border-color-default; + +// Sidebar +$sidebar-bg: #24276c; +$sidebar-width: 52px; + +// Topbar mobile +$m-header-height: 45px; +$m-header-bg: $topbar-bg; +$m-header-color: #fff; +$m-header-title-size: 16px; + +// Navbar Brand Name / For your company, product, or project name (used in layouts/base/) +$navbar-brand-name: $font-color-default; + +// Background Colors +// Backgrounds +$bg-color: #f8f8f8; +$bg-color-secondary: #fff; + +// Default Link Color +$link-color: $brand-primary; +$link-hover-color: darken($link-color, 15%); + +// +// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗ +// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗ +// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║ +// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║ +// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝ +// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ +// + +//== Typography +//## Change your font family, weight, line-height, headings and more (used in components/typography) + +// Font Family Import (Used for google font plugin in theme creater) +$font-family-import: "https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700"; + +// Font Family / False = fallback from Bootstrap (Helvetica Neue) +$font-family-base: "Open Sans", sans-serif; + +// Font Sizes +$font-size-large: 18px; +$font-size-small: 12px; + +// Font Weights +$font-weight-light: 100; +$font-weight-normal: normal; +$font-weight-semibold: 600; +$font-weight-bold: bold; + +// Font Size Headers +$font-size-h1: 31px; +$font-size-h2: 26px; +$font-size-h3: 24px; +$font-size-h4: 18px; +$font-size-h5: $font-size-default; +$font-size-h6: 12px; + +// Font Weight Headers +$font-weight-header: $font-weight-semibold; + +// Line Height +$line-height-base: 1.428571429; + +// Spacing +$font-header-margin: 0 0 8px 0; + +// Text Colors +$font-color-detail: #6c717e; +$font-color-header: #0a1325; + +//== Navigation +//## Used in components/navigation + +// Default Navigation styling +$navigation-item-height: unset; +$navigation-item-padding: 8px; + +$navigation-font-size: 14px; +$navigation-sub-font-size: $font-size-small; +$navigation-glyph-size: 20px; // For glyphicons that you can select in the Mendix Modeler + +$navigation-color: #fff; +$navigation-color-hover: #fff; +$navigation-color-active: #fff; + +$navigation-sub-color: #fff; +$navigation-sub-color-hover: #fff; +$navigation-sub-color-active: #fff; + +// Navigation Sidebar +$navsidebar-bg: $sidebar-bg; +$navsidebar-bg-hover: darken($navsidebar-bg, 10%); +$navsidebar-bg-active: darken($navsidebar-bg, 10%); + +$navsidebar-sub-bg: $navsidebar-bg-hover; +$navsidebar-sub-bg-hover: $navsidebar-bg; +$navsidebar-sub-bg-active: $navsidebar-bg; + +$navsidebar-border-color: $navsidebar-bg-hover; + +$navsidebar-font-size: $font-size-default; +$navsidebar-sub-font-size: $font-size-small; +$navsidebar-glyph-size: 20px; // For glyphicons that you can select in the Mendix Modeler + +$navsidebar-color: #fff; +$navsidebar-color-hover: #fff; +$navsidebar-color-active: #fff; + +$navsidebar-sub-color: #fff; +$navsidebar-sub-color-hover: #fff; +$navsidebar-sub-color-active: #fff; + +$navsidebar-width-closed: 52px; +$navsidebar-width-open: 232px; + +// Navigation topbar +$navtopbar-font-size: $font-size-default; +$navtopbar-sub-font-size: $font-size-small; +$navtopbar-glyph-size: 1.2em; // For glyphicons that you can select in the Mendix Modeler + +$navtopbar-bg: $topbar-bg; +$navtopbar-bg-hover: mix($topbar-bg, white, 85%); +$navtopbar-bg-active: mix($topbar-bg, white, 85%); +$navtopbar-color: #fff; +$navtopbar-color-hover: $navtopbar-color; +$navtopbar-color-active: $navtopbar-color; + +$navtopbar-sub-bg: $topbar-bg; +$navtopbar-sub-bg-hover: $navtopbar-bg-hover; +$navtopbar-sub-bg-active: $navtopbar-bg-hover; +$navtopbar-sub-color: #fff; +$navtopbar-sub-color-hover: #fff; +$navtopbar-sub-color-active: #fff; + +//## Used in layouts/base +$navtopbar-border-color: $topbar-border-color; + +//== Form +//## Used in components/inputs + +// Values that can be used default | lined +$form-input-style: default; + +// Form Label +$form-label-color: $font-color-default; +$form-label-size: $font-size-default; +$form-label-weight: $font-weight-semibold; +$form-label-gutter: 8px; + +// Form Input dimensions +$form-input-height: auto; +$form-input-padding-y: 8px; +$form-input-padding-x: 8px; +$form-input-static-padding-y: 8px; +$form-input-static-padding-x: 0; +$form-input-font-size: $form-label-size; +$form-input-line-height: $line-height-base; +$form-input-border-radius: $border-radius-default; + +// Form Input styling +$form-input-bg: #fff; +$form-input-bg-focus: #fff; +$form-input-bg-hover: $gray-primary; +$form-input-bg-disabled: $bg-color; +$form-input-color: $font-color-default; +$form-input-focus-color: $form-input-color; +$form-input-disabled-color: #9da1a8; +$form-input-placeholder-color: #6c717c; +$form-input-border-color: $gray-primary; +$form-input-border-focus-color: $brand-primary; + +// Form Input Static styling +$form-input-static-border-color: $gray-primary; + +// Form Group +$form-group-margin-bottom: 16px; +$form-group-gutter: 16px; + +//== Buttons +//## Define background-color, border-color and text. Used in components/buttons + +// Default button style +$btn-font-size: 14px; +$btn-bordered: false; // Default value false, set to true if you want this effect +$btn-border-radius: $border-radius-default; + +// Button Background Color +$btn-default-bg: #fff; +$btn-primary-bg: $brand-primary; +$btn-success-bg: $brand-success; +$btn-warning-bg: $brand-warning; +$btn-danger-bg: $brand-danger; + +// Button Border Color +$btn-default-border-color: $gray-primary; +$btn-primary-border-color: $brand-primary; +$btn-success-border-color: $brand-success; +$btn-warning-border-color: $brand-warning; +$btn-danger-border-color: $brand-danger; + +// Button Text Color +$btn-default-color: $brand-primary; +$btn-primary-color: #fff; +$btn-success-color: #fff; +$btn-warning-color: #fff; +$btn-danger-color: #fff; + +// Button Icon Color +$btn-default-icon-color: $gray; + +// Button Background Color +$btn-default-bg-hover: $btn-default-border-color; +$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%); +$btn-success-bg-hover: mix($btn-success-bg, black, 80%); +$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%); +$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%); +$btn-link-bg-hover: $gray-lighter; + +//== Header blocks +//## Define look and feel over multible building blocks that serve as header + +$header-min-height: 240px; +$header-bg-color: $brand-primary; +$header-bgimage-filter: brightness(60%); +$header-text-color: #fff; +$header-text-color-detail: rgba(0, 0, 0, 0.2); + +// +// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗ +// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝ +// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║ +// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║ +// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║ +// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ +// + +//== Color variations +//## These variations are used to support several other variables and components + +// Color variations +$color-default-darker: mix($brand-default, black, 60%); +$color-default-dark: mix($brand-default, black, 70%); +$color-default-light: mix($brand-default, white, 40%); +$color-default-lighter: mix($brand-default, white, 20%); + +$color-primary-darker: mix($brand-primary, black, 60%); +$color-primary-dark: mix($brand-primary, black, 70%); +$color-primary-light: mix($brand-primary, white, 40%); +$color-primary-lighter: mix($brand-primary, white, 20%); + +$color-success-darker: mix($brand-success, black, 60%); +$color-success-dark: mix($brand-success, black, 70%); +$color-success-light: mix($brand-success, white, 40%); +$color-success-lighter: mix($brand-success, white, 20%); + +$color-warning-darker: mix($brand-warning, black, 60%); +$color-warning-dark: mix($brand-warning, black, 70%); +$color-warning-light: mix($brand-warning, white, 40%); +$color-warning-lighter: mix($brand-warning, white, 20%); + +$color-danger-darker: mix($brand-danger, black, 60%); +$color-danger-dark: mix($brand-danger, black, 70%); +$color-danger-light: mix($brand-danger, white, 40%); +$color-danger-lighter: mix($brand-danger, white, 20%); + +$brand-gradient: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c); + +//== Grids +//## Used for Datagrid, Templategrid, Listview & Tables (see components folder) + +// Default Border Colors +$grid-border-color: $border-color-default; + +// Spacing +// Default +$grid-padding-top: 16px; +$grid-padding-right: 16px; +$grid-padding-bottom: 16px; +$grid-padding-left: 16px; + +// Listview +$listview-padding-top: 16px; +$listview-padding-right: 16px; +$listview-padding-bottom: 16px; +$listview-padding-left: 16px; + +// Background Colors +$grid-bg: transparent; +$grid-bg-header: transparent; // Grid Headers +$grid-bg-hover: mix($grid-border-color, #fff, 20%); +$grid-bg-selected: mix($grid-border-color, #fff, 30%); +$grid-bg-selected-hover: mix($grid-border-color, #fff, 50%); + +// Striped Background Color +$grid-bg-striped: mix($grid-border-color, #fff, 10%); + +// Background Footer Color +$grid-footer-bg: $gray-primary; + +// Text Color +$grid-selected-color: $font-color-default; + +// Paging Colors +$grid-paging-bg: transparent; +$grid-paging-bg-hover: transparent; +$grid-paging-border-color: transparent; +$grid-paging-border-color-hover: transparent; +$grid-paging-color: $gray-light; +$grid-paging-color-hover: $brand-primary; + +//== Tabs +//## Default variables for Tab Container Widget (used in components/tabcontainer) + +// Text Color +$tabs-color: $font-color-detail; +$tabs-color-active: $font-color-default; +$tabs-lined-color-active: $font-color-default; + +$tabs-lined-border-width: 3px; + +// Border Color +$tabs-border-color: $border-color-default; +$tabs-lined-border-color: $brand-primary; + +// Background Color +$tabs-bg: transparent; +$tabs-bg-pills: #e7e7e9; +$tabs-bg-hover: lighten($tabs-border-color, 5); +$tabs-bg-active: $brand-primary; + +//== Modals +//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals) + +// Background Color +$modal-header-bg: transparent; + +// Border Color +$modal-header-border-color: $border-color-default; + +// Text Color +$modal-header-color: $font-color-default; + +//== Dataview +//## Default variables for Dataview Widget (used in components/dataview) + +// Controls +$dataview-controls-bg: transparent; +$dataview-controls-border-color: $border-color-default; + +// Empty Message +$dataview-emptymessage-bg: $bg-color; +$dataview-emptymessage-color: $font-color-default; + +//== Alerts +//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) + +// Background Color +$alert-success-bg: $color-success-lighter; +$alert-warning-bg: $color-warning-lighter; +$alert-danger-bg: $color-danger-lighter; + +// Text Color +$alert-success-color: $color-success-darker; +$alert-warning-color: $color-warning-darker; +$alert-danger-color: $color-danger-darker; + +// Border Color +$alert-success-border-color: $color-success-dark; +$alert-warning-border-color: $color-warning-dark; +$alert-danger-border-color: $color-danger-dark; + +//== Wizard + +$wizard-step-height: 48px; +$wizard-step-number-size: 64px; +$wizard-step-number-font-size: $font-size-h3; + +//Wizard step states +$wizard-default-bg: #fff; +$wizard-default-color: #fff; +$wizard-default-step-color: $font-color-default; +$wizard-default-border-color: $border-color-default; + +$wizard-active-bg: $color-primary-lighter; +$wizard-active-color: $color-primary-dark; +$wizard-active-step-color: $color-primary-dark; +$wizard-active-border-color: $color-primary-dark; + +$wizard-visited-bg: $color-success-lighter; +$wizard-visited-color: $color-success-dark; +$wizard-visited-step-color: $color-success-dark; +$wizard-visited-border-color: $color-success-dark; + +//== Labels +//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) + +// Background Color +$label-default-bg: $brand-default; +$label-primary-bg: $brand-primary; +$label-success-bg: $brand-success; +$label-warning-bg: $brand-warning; +$label-danger-bg: $brand-danger; + +// Border Color +$label-default-border-color: $brand-default; +$label-primary-border-color: $brand-primary; +$label-success-border-color: $brand-success; +$label-warning-border-color: $brand-warning; +$label-danger-border-color: $brand-danger; + +// Text Color +$label-default-color: $font-color-default; +$label-primary-color: #fff; +$label-success-color: #fff; +$label-warning-color: #fff; +$label-danger-color: #fff; + +//== Groupbox +//## Default variables for Groupbox Widget (used in components/groupbox) + +// Background Color +$groupbox-default-bg: $gray-primary; +$groupbox-primary-bg: $brand-primary; +$groupbox-success-bg: $brand-success; +$groupbox-warning-bg: $brand-warning; +$groupbox-danger-bg: $brand-danger; +$groupbox-white-bg: #fff; + +// Text Color +$groupbox-default-color: $font-color-default; +$groupbox-primary-color: #fff; +$groupbox-success-color: #fff; +$groupbox-warning-color: #fff; +$groupbox-danger-color: #fff; +$groupbox-white-color: $font-color-default; + +//== Callout (groupbox) Colors +//## Extended variables for Groupbox Widget (used in components/groupbox) + +// Text and Border Color +$callout-default-color: $font-color-default; +$callout-success-color: $brand-success; +$callout-warning-color: $brand-warning; +$callout-danger-color: $brand-danger; + +// Background Color +$callout-default-bg: $color-default-lighter; +$callout-success-bg: $color-success-lighter; +$callout-warning-bg: $color-warning-lighter; +$callout-danger-bg: $color-danger-lighter; + +//== Timeline +//## Extended variables for Timeline Widget +// Colors +$timeline-icon-color: $brand-primary; +$timeline-border-color: $border-color-default; +$timeline-event-time-color: $brand-primary; + +// Sizes +$timeline-icon-size: 18px; +$timeline-image-size: 36px; + +//Timeline grouping +$timeline-grouping-size: 120px; +$timeline-grouping-border-radius: 30px; +$timeline-grouping-border-color: $timeline-border-color; + +//== Accordions +//## Extended variables for Accordion Widget + +// Default +$accordion-header-default-bg: $bg-color-secondary; +$accordion-header-default-bg-hover: $bg-color; +$accordion-header-default-color: $font-color-header; +$accordion-default-border-color: $border-color-default; + +$accordion-bg-striped: $grid-bg-striped; +$accordion-bg-striped-hover: $grid-bg-selected; + +// Semantic background colors +$accordion-header-primary-bg: $btn-primary-bg; +$accordion-header-secondary-bg: $btn-default-bg; +$accordion-header-success-bg: $btn-success-bg; +$accordion-header-warning-bg: $btn-warning-bg; +$accordion-header-danger-bg: $btn-danger-bg; + +$accordion-header-primary-bg-hover: $btn-primary-bg-hover; +$accordion-header-secondary-bg-hover: $btn-default-bg-hover; +$accordion-header-success-bg-hover: $btn-success-bg-hover; +$accordion-header-warning-bg-hover: $btn-warning-bg-hover; +$accordion-header-danger-bg-hover: $btn-danger-bg-hover; + +// Semantic text colors +$accordion-header-primary-color: $btn-primary-color; +$accordion-header-secondary-color: $btn-default-color; +$accordion-header-success-color: $btn-success-color; +$accordion-header-warning-color: $btn-warning-color; +$accordion-header-danger-color: $btn-danger-color; + +// Semantic border colors +$accordion-primary-border-color: $btn-primary-border-color; +$accordion-secondary-border-color: $btn-default-border-color; +$accordion-success-border-color: $btn-success-border-color; +$accordion-warning-border-color: $btn-warning-border-color; +$accordion-danger-border-color: $btn-danger-border-color; + +//== Spacing +//## Advanced layout options (used in base/mixins/default-spacing) + +// Smallest spacing +$spacing-smallest: 2px; + +// Smaller spacing +$spacing-smaller: 4px; + +// Small spacing +$spacing-small: 8px; + +// Medium spacing +$spacing-medium: 16px; +$t-spacing-medium: 16px; +$m-spacing-medium: 16px; + +// Large spacing +$spacing-large: 24px; +$t-spacing-large: 24px; +$m-spacing-large: 16px; + +// Larger spacing +$spacing-larger: 32px; + +// Largest spacing +$spacing-largest: 48px; + +// Layout spacing +$layout-spacing-top: 24px; +$layout-spacing-right: 24px; +$layout-spacing-bottom: 24px; +$layout-spacing-left: 24px; + +$t-layout-spacing-top: 24px; +$t-layout-spacing-right: 24px; +$t-layout-spacing-bottom: 24px; +$t-layout-spacing-left: 24px; + +$m-layout-spacing-top: 16px; +$m-layout-spacing-right: 16px; +$m-layout-spacing-bottom: 16px; +$m-layout-spacing-left: 16px; + +// Combined layout spacing +$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left; +$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left; +$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left; + +// Gutter size +$gutter-size: 8px; + +//== Tables +//## Table spacing options (used in components/tables) + +$padding-table-cell-top: 8px; +$padding-table-cell-bottom: 8px; +$padding-table-cell-left: 8px; +$padding-table-cell-right: 8px; + +//== Media queries breakpoints +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +$screen-xs: 480px; +$screen-sm: 576px; +$screen-md: 768px; +$screen-lg: 992px; +$screen-xl: 1200px; + +// So media queries don't overlap when required, provide a maximum (used for max-width) +$screen-xs-max: ($screen-sm - 1); +$screen-sm-max: ($screen-md - 1); +$screen-md-max: ($screen-lg - 1); +$screen-lg-max: ($screen-xl - 1); + +//== Settings +//## Enable or disable your desired framework features +// Use of !important +$important-flex: true; // ./base/flex.scss +$important-spacing: true; // ./base/spacing.scss +$important-helpers: true; // ./helpers/helperclasses.scss + +//===== Legacy variables ===== + +//== Step 1: Brand Colors +$brand-inverse: #24276c; +$brand-info: #0086d9; + +//== Step 2: UI Customization + +//== Buttons +//## Define background-color, border-color and text. Used in components/buttons + +// Button Background Color +$btn-inverse-bg: $brand-inverse; +$btn-info-bg: $brand-info; + +// Button Border Color +$btn-inverse-border-color: $brand-inverse; +$btn-info-border-color: $brand-info; + +// Button Text Color +$btn-inverse-color: #fff; +$btn-info-color: #fff; + +// Button Background Color +$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%); +$btn-info-bg-hover: mix($btn-info-bg, black, 80%); + +//== Color variations +//## These variations are used to support several other variables and components + +// Color variations +$color-inverse-darker: mix($brand-inverse, black, 60%); +$color-inverse-dark: mix($brand-inverse, black, 70%); +$color-inverse-light: mix($brand-inverse, white, 60%); +$color-inverse-lighter: mix($brand-inverse, white, 20%); + +$color-info-darker: mix($brand-info, black, 60%); +$color-info-dark: mix($brand-info, black, 70%); +$color-info-light: mix($brand-info, white, 60%); +$color-info-lighter: mix($brand-info, white, 20%); + +//== Alerts +//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) + +// Background Color +$alert-info-bg: $color-primary-lighter; + +// Text Color +$alert-info-color: $color-primary-darker; + +// Border Color +$alert-info-border-color: $color-primary-dark; + +//== Labels +//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) + +// Background Color +$label-info-bg: $brand-info; +$label-inverse-bg: $brand-inverse; + +// Border Color +$label-info-border-color: $brand-info; +$label-inverse-border-color: $brand-inverse; + +// Text Color +$label-info-color: #fff; +$label-inverse-color: #fff; + +//== Groupbox +//## Default variables for Groupbox Widget (used in components/groupbox) + +// Background Color +$groupbox-inverse-bg: $brand-inverse; +$groupbox-info-bg: $brand-info; + +// Text Color +$groupbox-inverse-color: #fff; +$groupbox-info-color: #fff; + +//== Callout (groupbox) Colors +//## Extended variables for Groupbox Widget (used in components/groupbox) + +// Text and Border Color +$callout-info-color: $brand-info; + +// Background Color +$callout-info-bg: $color-info-lighter; diff --git a/test/theme/web/exclusion-variables.scss b/test/theme/web/exclusion-variables.scss new file mode 100644 index 0000000..97e8207 --- /dev/null +++ b/test/theme/web/exclusion-variables.scss @@ -0,0 +1,80 @@ +//== Core style exclusion +$exclude-bootstrap: false; +$exclude-mxui: false; +$exclude-animations: false; +$exclude-flex: false; +$exclude-spacing: false; +$exclude-base: false; +$exclude-login: false; + +//== Widget style exclusion +$exclude-accordion: false; +$exclude-accordion-helpers: false; +$exclude-background-helpers: false; +$exclude-badge: false; +$exclude-badge-button: false; +$exclude-badge-button-helpers: false; +$exclude-barcode-scanner: false; +$exclude-button: false; +$exclude-button-helpers: false; +$exclude-check-box: false; +$exclude-custom-dijit-widget: false; +$exclude-custom-switch: false; +$exclude-data-grid: false; +$exclude-data-grid-helpers: false; +$exclude-data-view: false; +$exclude-data-picker: false; +$exclude-gallery: false; +$exclude-gallery-helpers: false; +$exclude-glyphicon: false; +$exclude-grid: false; +$exclude-group-box: false; +$exclude-group-box-helpers: false; +$exclude-header: false; +$exclude-helper-classes: false; +$exclude-input: false; +$exclude-image-helpers: false; +$exclude-label: false; +$exclude-label-helpers: false; +$exclude-layout-grid: false; +$exclude-list-view: false; +$exclude-list-view-helpers: false; +$exclude-modal: false; +$exclude-navigation-bar: false; +$exclude-navigation-bar-helpers: false; +$exclude-navigation-list: false; +$exclude-navigation-tree: false; +$exclude-navigation-tree-helpers: false; +$exclude-pagination: false; +$exclude-pop-up-menu: false; +$exclude-progress: false; +$exclude-progress-bar: false; +$exclude-progress-bar-helpers: false; +$exclude-progress-circle: false; +$exclude-progress-circle-helpers: false; +$exclude-radio-button: false; +$exclude-range-slider: false; +$exclude-range-slider-helpers: false; +$exclude-rating: false; +$exclude-rating-helpers: false; +$exclude-simple-menu-bar: false; +$exclude-simple-menu-bar-helpers: false; +$exclude-slider: false; +$exclude-slider-helpers: false; +$exclude-table: false; +$exclude-table-helpers: false; +$exclude-tab-container: false; +$exclude-tab-container-helpers: false; +$exclude-template-grid: false; +$exclude-template-grid-helpers: false; +$exclude-timeline: false; +$exclude-tree-node: false; +$exclude-tree-node-helpers: false; +$exclude-typography: false; +$exclude-typography-helpers: false; + +//== Layouts style exclusion +$exclude-layout-atlas: false; +$exclude-layout-atlas-phone: false; +$exclude-layout-atlas-responsive: false; +$exclude-layout-atlas-tablet: false; diff --git a/test/theme/web/login-with-mendixsso-automatically.html b/test/theme/web/login-with-mendixsso-automatically.html new file mode 100644 index 0000000..bdf4655 --- /dev/null +++ b/test/theme/web/login-with-mendixsso-automatically.html @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/test/theme/login-with-sso.html b/test/theme/web/login-with-mendixsso-button.html old mode 100755 new mode 100644 similarity index 91% rename from test/theme/login-with-sso.html rename to test/theme/web/login-with-mendixsso-button.html index 216132c..5ea967e --- a/test/theme/login-with-sso.html +++ b/test/theme/web/login-with-mendixsso-button.html @@ -2,13 +2,11 @@ - Login - + - {{themecss}} - + {{themecss}} {{appicons}} {{manifest}} {{startupimages}} @@ -18,7 +16,7 @@
    -

    Sign in

    +

    Sign in

    @@ -124,14 +122,14 @@

    Sign in

    diff --git a/test/theme/login.html b/test/theme/web/login.html old mode 100755 new mode 100644 similarity index 90% rename from test/theme/login.html rename to test/theme/web/login.html index 8c1fc3c..56d5048 --- a/test/theme/login.html +++ b/test/theme/web/login.html @@ -2,12 +2,11 @@ - Login - + - {{themecss}} + {{themecss}} {{appicons}} {{manifest}} {{startupimages}} @@ -17,7 +16,7 @@
    -

    Sign in

    +

    Sign in

    @@ -113,14 +112,14 @@

    Sign in

    diff --git a/test/theme/logo.png b/test/theme/web/logo.png old mode 100755 new mode 100644 similarity index 100% rename from test/theme/logo.png rename to test/theme/web/logo.png diff --git a/test/theme/web/main.scss b/test/theme/web/main.scss new file mode 100644 index 0000000..4a3a5c9 --- /dev/null +++ b/test/theme/web/main.scss @@ -0,0 +1 @@ +@import "custom-variables"; \ No newline at end of file diff --git a/test/theme/web/manifest-overrides.webmanifest b/test/theme/web/manifest-overrides.webmanifest new file mode 100644 index 0000000..10161cd --- /dev/null +++ b/test/theme/web/manifest-overrides.webmanifest @@ -0,0 +1,3 @@ +{ + "background_color": "#FFFFFF" +} diff --git a/test/theme/robots.txt b/test/theme/web/robots.txt old mode 100755 new mode 100644 similarity index 100% rename from test/theme/robots.txt rename to test/theme/web/robots.txt diff --git a/test/theme/web/settings.json b/test/theme/web/settings.json new file mode 100644 index 0000000..9dbd93b --- /dev/null +++ b/test/theme/web/settings.json @@ -0,0 +1,3 @@ +{ + "cssFiles": ["theme.compiled.css"] +} diff --git a/test/themesource/administration/native/design-properties.json b/test/themesource/administration/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/test/themesource/administration/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/test/themesource/administration/native/main.js b/test/themesource/administration/native/main.js new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/test/themesource/administration/native/main.js @@ -0,0 +1 @@ + diff --git a/test/themesource/administration/web/design-properties.json b/test/themesource/administration/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/test/themesource/administration/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/test/themesource/administration/web/main.scss b/test/themesource/administration/web/main.scss new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/test/themesource/administration/web/main.scss @@ -0,0 +1 @@ + diff --git a/test/themesource/atlas_core/native/api.js b/test/themesource/atlas_core/native/api.js new file mode 100644 index 0000000..f40d0cd --- /dev/null +++ b/test/themesource/atlas_core/native/api.js @@ -0,0 +1,3 @@ +import adjustFont from "./core/helpers/_functions/adjustfont"; +import { anyColorToRgbString, setColorBasedOnBackground, setContrastScale } from "./core/helpers/_functions/convertcolors"; +export { adjustFont, anyColorToRgbString, setColorBasedOnBackground, setContrastScale }; diff --git a/test/theme/styles/native/js/core/base/flex.js b/test/themesource/atlas_core/native/core/base/flex.js old mode 100755 new mode 100644 similarity index 81% rename from test/theme/styles/native/js/core/base/flex.js rename to test/themesource/atlas_core/native/core/base/flex.js index 1eb63b5..1a0ece0 --- a/test/theme/styles/native/js/core/base/flex.js +++ b/test/themesource/atlas_core/native/core/base/flex.js @@ -6,195 +6,198 @@ Customizing core files will make updating Atlas much more difficult in the futur To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. */ -//== Flex layout +// == Flex layout export const flexMain = { container: { // flex 1 will take all available space not taken by flexItems. - flex: 1, - }, + flex: 1 + } }; export const flexItem = { container: { // When flex is -1, the component is normally sized according width and height. // However, if there's not enough space, the component will shrink to its minWidth and minHeight - flex: -1, - }, + flex: -1 + } }; export const flexRow = { container: { - flexDirection: "row", - }, + flexDirection: "row" + } }; export const flexColumn = { container: { - flexDirection: "column", - }, + flexDirection: "column" + } }; export const flexRowReverse = { container: { - flexDirection: "row-reverse", - }, + flexDirection: "row-reverse" + } }; export const flexColumnReverse = { container: { - flexDirection: "column-reverse", - }, + flexDirection: "column-reverse" + } }; export const flexWrap = { container: { // flexWrap controls whether children can wrap around after they hit the end of a flex container. - flexWrap: "wrap", - }, + flexWrap: "wrap" + } }; export const justifyContentStart = { container: { // justifyContent aligns children in the main direction. // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "flex-start", - }, + justifyContent: "flex-start" + } }; export const justifyContentCenter = { container: { // justifyContent aligns children in the main direction. // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "center", - }, + justifyContent: "center" + } }; export const justifyContentEnd = { container: { // justifyContent aligns children in the main direction. // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "flex-end", - }, + justifyContent: "flex-end" + } }; export const justifyContentSpaceBetween = { container: { // justifyContent aligns children in the main direction. // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "space-between", - }, + justifyContent: "space-between" + } }; export const justifyContentSpaceAround = { container: { // justifyContent aligns children in the main direction. // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "space-around", - }, + justifyContent: "space-around" + } }; export const justifyContentSpaceEvenly = { container: { // justifyContent aligns children in the main direction. // For example, if children are flowing vertically, justifyContent controls how they align vertically. - justifyContent: "space-evenly", - }, + justifyContent: "space-evenly" + } }; export const alignChildrenStart = { container: { // alignItems aligns children in the cross direction. // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "flex-start", - }, + alignItems: "flex-start" + } }; export const alignChildrenCenter = { container: { // alignItems aligns children in the cross direction. // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "center", - }, + alignItems: "center" + } }; export const alignChildrenEnd = { container: { // alignItems aligns children in the cross direction. // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "flex-end", - }, + alignItems: "flex-end" + } }; export const alignChildrenStretch = { container: { // alignItems aligns children in the cross direction. // For example, if children are flowing vertically, alignItems controls how they align horizontally. - alignItems: "stretch", - }, + alignItems: "stretch" + } }; export const alignChildrenBaseline = { container: { // alignContent aligns children in the cross direction. // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignItems: "baseline", - }, + alignItems: "baseline" + } }; export const childrenCenter = { - container: Object.assign(Object.assign({}, justifyContentCenter.container), alignChildrenCenter.container), + container: { + ...justifyContentCenter.container, + ...alignChildrenCenter.container + } }; export const alignContentStart = { container: { // alignContent aligns rows of children in the cross direction. // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "flex-start", - }, + alignContent: "flex-start" + } }; export const alignContentCenter = { container: { // alignContent aligns rows of children in the cross direction. // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "center", - }, + alignContent: "center" + } }; export const alignContentEnd = { container: { // alignContent aligns rows of children in the cross direction. // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "flex-end", - }, + alignContent: "flex-end" + } }; export const alignContentStretch = { container: { // alignContent aligns rows of children in the cross direction. // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "stretch", - }, + alignContent: "stretch" + } }; export const alignContentSpaceAround = { container: { // alignContent aligns rows of children in the cross direction. // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "space-around", - }, + alignContent: "space-around" + } }; export const alignContentSpaceBetween = { container: { // alignContent aligns rows of children in the cross direction. // For example, if children are flowing vertically, alignContent controls how they align horizontally. - alignContent: "space-between", - }, + alignContent: "space-between" + } }; export const alignSelfStart = { container: { // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "flex-start", - }, + alignSelf: "flex-start" + } }; export const alignSelfCenter = { container: { // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "center", - }, + alignSelf: "center" + } }; export const alignSelfEnd = { container: { // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "flex-end", - }, + alignSelf: "flex-end" + } }; export const alignSelfStretch = { container: { // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "stretch", - }, + alignSelf: "stretch" + } }; export const alignSelfBaseline = { container: { // controls how a child aligns in the cross direction, overriding the alignItems of the parent. - alignSelf: "baseline", - }, + alignSelf: "baseline" + } }; diff --git a/test/theme/styles/native/js/core/base/spacing.js b/test/themesource/atlas_core/native/core/base/spacing.js old mode 100755 new mode 100644 similarity index 58% rename from test/theme/styles/native/js/core/base/spacing.js rename to test/themesource/atlas_core/native/core/base/spacing.js index 13a72e2..de7138c --- a/test/theme/styles/native/js/core/base/spacing.js +++ b/test/themesource/atlas_core/native/core/base/spacing.js @@ -1,4 +1,4 @@ -import { spacing } from "../variables"; +import { spacing } from "../../variables"; /* DISCLAIMER: @@ -7,497 +7,497 @@ Customizing core files will make updating Atlas much more difficult in the futur To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. */ -//== Inner Spacing +// == Inner Spacing export const spacingInnerSmallest = { container: { - padding: spacing.smallest, - }, + padding: spacing.smallest + } }; export const spacingInnerVerticalSmallest = { container: { - paddingVertical: spacing.smallest, - }, + paddingVertical: spacing.smallest + } }; export const spacingInnerHorizontalSmallest = { container: { - paddingHorizontal: spacing.smallest, - }, + paddingHorizontal: spacing.smallest + } }; export const spacingInnerTopSmallest = { container: { - paddingTop: spacing.smallest, - }, + paddingTop: spacing.smallest + } }; export const spacingInnerRightSmallest = { container: { - paddingRight: spacing.smallest, - }, + paddingRight: spacing.smallest + } }; export const spacingInnerLeftSmallest = { container: { - paddingLeft: spacing.smallest, - }, + paddingLeft: spacing.smallest + } }; export const spacingInnerBottomSmallest = { container: { - paddingBottom: spacing.smallest, - }, + paddingBottom: spacing.smallest + } }; export const spacingInnerSmaller = { container: { - padding: spacing.smaller, - }, + padding: spacing.smaller + } }; export const spacingInnerVerticalSmaller = { container: { - paddingVertical: spacing.smaller, - }, + paddingVertical: spacing.smaller + } }; export const spacingInnerHorizontalSmaller = { container: { - paddingHorizontal: spacing.smaller, - }, + paddingHorizontal: spacing.smaller + } }; export const spacingInnerTopSmaller = { container: { - paddingTop: spacing.smaller, - }, + paddingTop: spacing.smaller + } }; export const spacingInnerRightSmaller = { container: { - paddingRight: spacing.smaller, - }, + paddingRight: spacing.smaller + } }; export const spacingInnerLeftSmaller = { container: { - paddingLeft: spacing.smaller, - }, + paddingLeft: spacing.smaller + } }; export const spacingInnerBottomSmaller = { container: { - paddingBottom: spacing.smaller, - }, + paddingBottom: spacing.smaller + } }; export const spacingInnerSmall = { container: { - padding: spacing.small, - }, + padding: spacing.small + } }; export const spacingInnerVerticalSmall = { container: { - paddingVertical: spacing.small, - }, + paddingVertical: spacing.small + } }; export const spacingInnerHorizontalSmall = { container: { - paddingHorizontal: spacing.small, - }, + paddingHorizontal: spacing.small + } }; export const spacingInnerTopSmall = { container: { - paddingTop: spacing.small, - }, + paddingTop: spacing.small + } }; export const spacingInnerRightSmall = { container: { - paddingRight: spacing.small, - }, + paddingRight: spacing.small + } }; export const spacingInnerLeftSmall = { container: { - paddingLeft: spacing.small, - }, + paddingLeft: spacing.small + } }; export const spacingInnerBottomSmall = { container: { - paddingBottom: spacing.small, - }, + paddingBottom: spacing.small + } }; export const spacingInnerMedium = { container: { - padding: spacing.regular, - }, + padding: spacing.regular + } }; export const spacingInnerVerticalMedium = { container: { - paddingVertical: spacing.regular, - }, + paddingVertical: spacing.regular + } }; export const spacingInnerHorizontalMedium = { container: { - paddingHorizontal: spacing.regular, - }, + paddingHorizontal: spacing.regular + } }; export const spacingInnerTopMedium = { container: { - paddingTop: spacing.regular, - }, + paddingTop: spacing.regular + } }; export const spacingInnerRightMedium = { container: { - paddingRight: spacing.regular, - }, + paddingRight: spacing.regular + } }; export const spacingInnerLeftMedium = { container: { - paddingLeft: spacing.regular, - }, + paddingLeft: spacing.regular + } }; export const spacingInnerBottomMedium = { container: { - paddingBottom: spacing.regular, - }, + paddingBottom: spacing.regular + } }; export const spacingInnerLarge = { container: { - padding: spacing.large, - }, + padding: spacing.large + } }; export const spacingInnerVerticalLarge = { container: { - paddingVertical: spacing.large, - }, + paddingVertical: spacing.large + } }; export const spacingInnerHorizontalLarge = { container: { - paddingHorizontal: spacing.large, - }, + paddingHorizontal: spacing.large + } }; export const spacingInnerTopLarge = { container: { - paddingTop: spacing.large, - }, + paddingTop: spacing.large + } }; export const spacingInnerRightLarge = { container: { - paddingRight: spacing.large, - }, + paddingRight: spacing.large + } }; export const spacingInnerLeftLarge = { container: { - paddingLeft: spacing.large, - }, + paddingLeft: spacing.large + } }; export const spacingInnerBottomLarge = { container: { - paddingBottom: spacing.large, - }, + paddingBottom: spacing.large + } }; export const spacingInnerLarger = { container: { - padding: spacing.larger, - }, + padding: spacing.larger + } }; export const spacingInnerVerticalLarger = { container: { - paddingVertical: spacing.larger, - }, + paddingVertical: spacing.larger + } }; export const spacingInnerHorizontalLarger = { container: { - paddingHorizontal: spacing.larger, - }, + paddingHorizontal: spacing.larger + } }; export const spacingInnerTopLarger = { container: { - paddingTop: spacing.larger, - }, + paddingTop: spacing.larger + } }; export const spacingInnerRightLarger = { container: { - paddingRight: spacing.larger, - }, + paddingRight: spacing.larger + } }; export const spacingInnerLeftLarger = { container: { - paddingLeft: spacing.larger, - }, + paddingLeft: spacing.larger + } }; export const spacingInnerBottomLarger = { container: { - paddingBottom: spacing.larger, - }, + paddingBottom: spacing.larger + } }; export const spacingInnerLargest = { container: { - padding: spacing.largest, - }, + padding: spacing.largest + } }; export const spacingInnerVerticalLargest = { container: { - paddingVertical: spacing.largest, - }, + paddingVertical: spacing.largest + } }; export const spacingInnerHorizontalLargest = { container: { - paddingHorizontal: spacing.largest, - }, + paddingHorizontal: spacing.largest + } }; export const spacingInnerTopLargest = { container: { - paddingTop: spacing.largest, - }, + paddingTop: spacing.largest + } }; export const spacingInnerRightLargest = { container: { - paddingRight: spacing.largest, - }, + paddingRight: spacing.largest + } }; export const spacingInnerLeftLargest = { container: { - paddingLeft: spacing.largest, - }, + paddingLeft: spacing.largest + } }; export const spacingInnerBottomLargest = { container: { - paddingBottom: spacing.largest, - }, + paddingBottom: spacing.largest + } }; // // -//== Outer Spacing +// == Outer Spacing export const spacingOuterSmallest = { container: { - margin: spacing.smallest, - }, + margin: spacing.smallest + } }; export const spacingOuterVerticalSmallest = { container: { - marginVertical: spacing.smallest, - }, + marginVertical: spacing.smallest + } }; export const spacingOuterHorizontalSmallest = { container: { - marginHorizontal: spacing.smallest, - }, + marginHorizontal: spacing.smallest + } }; export const spacingOuterTopSmallest = { container: { - marginTop: spacing.smallest, - }, + marginTop: spacing.smallest + } }; export const spacingOuterRightSmallest = { container: { - marginRight: spacing.smallest, - }, + marginRight: spacing.smallest + } }; export const spacingOuterLeftSmallest = { container: { - marginLeft: spacing.smallest, - }, + marginLeft: spacing.smallest + } }; export const spacingOuterBottomSmallest = { container: { - marginBottom: spacing.smallest, - }, + marginBottom: spacing.smallest + } }; export const spacingOuterSmaller = { container: { - margin: spacing.smaller, - }, + margin: spacing.smaller + } }; export const spacingOuterVerticalSmaller = { container: { - marginVertical: spacing.smaller, - }, + marginVertical: spacing.smaller + } }; export const spacingOuterHorizontalSmaller = { container: { - marginHorizontal: spacing.smaller, - }, + marginHorizontal: spacing.smaller + } }; export const spacingOuterTopSmaller = { container: { - marginTop: spacing.smaller, - }, + marginTop: spacing.smaller + } }; export const spacingOuterRightSmaller = { container: { - marginRight: spacing.smaller, - }, + marginRight: spacing.smaller + } }; export const spacingOuterLeftSmaller = { container: { - marginLeft: spacing.smaller, - }, + marginLeft: spacing.smaller + } }; export const spacingOuterBottomSmaller = { container: { - marginBottom: spacing.smaller, - }, + marginBottom: spacing.smaller + } }; export const spacingOuterSmall = { container: { - margin: spacing.small, - }, + margin: spacing.small + } }; export const spacingOuterVerticalSmall = { container: { - marginVertical: spacing.small, - }, + marginVertical: spacing.small + } }; export const spacingOuterHorizontalSmall = { container: { - marginHorizontal: spacing.small, - }, + marginHorizontal: spacing.small + } }; export const spacingOuterTopSmall = { container: { - marginTop: spacing.small, - }, + marginTop: spacing.small + } }; export const spacingOuterRightSmall = { container: { - marginRight: spacing.small, - }, + marginRight: spacing.small + } }; export const spacingOuterLeftSmall = { container: { - marginLeft: spacing.small, - }, + marginLeft: spacing.small + } }; export const spacingOuterBottomSmall = { container: { - marginBottom: spacing.small, - }, + marginBottom: spacing.small + } }; export const spacingOuterMedium = { container: { - margin: spacing.regular, - }, + margin: spacing.regular + } }; export const spacingOuterVerticalMedium = { container: { - marginVertical: spacing.regular, - }, + marginVertical: spacing.regular + } }; export const spacingOuterHorizontalMedium = { container: { - marginHorizontal: spacing.regular, - }, + marginHorizontal: spacing.regular + } }; export const spacingOuterTopMedium = { container: { - marginTop: spacing.regular, - }, + marginTop: spacing.regular + } }; export const spacingOuterRightMedium = { container: { - marginRight: spacing.regular, - }, + marginRight: spacing.regular + } }; export const spacingOuterLeftMedium = { container: { - marginLeft: spacing.regular, - }, + marginLeft: spacing.regular + } }; export const spacingOuterBottomMedium = { container: { - marginBottom: spacing.regular, - }, + marginBottom: spacing.regular + } }; export const spacingOuterLarge = { container: { - margin: spacing.large, - }, + margin: spacing.large + } }; export const spacingOuterVerticalLarge = { container: { - marginVertical: spacing.large, - }, + marginVertical: spacing.large + } }; export const spacingOuterHorizontalLarge = { container: { - marginHorizontal: spacing.large, - }, + marginHorizontal: spacing.large + } }; export const spacingOuterTopLarge = { container: { - marginTop: spacing.large, - }, + marginTop: spacing.large + } }; export const spacingOuterRightLarge = { container: { - marginRight: spacing.large, - }, + marginRight: spacing.large + } }; export const spacingOuterLeftLarge = { container: { - marginLeft: spacing.large, - }, + marginLeft: spacing.large + } }; export const spacingOuterBottomLarge = { container: { - marginBottom: spacing.large, - }, + marginBottom: spacing.large + } }; export const spacingOuterLarger = { container: { - margin: spacing.larger, - }, + margin: spacing.larger + } }; export const spacingOuterVerticalLarger = { container: { - marginVertical: spacing.larger, - }, + marginVertical: spacing.larger + } }; export const spacingOuterHorizontalLarger = { container: { - marginHorizontal: spacing.larger, - }, + marginHorizontal: spacing.larger + } }; export const spacingOuterTopLarger = { container: { - marginTop: spacing.larger, - }, + marginTop: spacing.larger + } }; export const spacingOuterRightLarger = { container: { - marginRight: spacing.larger, - }, + marginRight: spacing.larger + } }; export const spacingOuterLeftLarger = { container: { - marginLeft: spacing.larger, - }, + marginLeft: spacing.larger + } }; export const spacingOuterBottomLarger = { container: { - marginBottom: spacing.larger, - }, + marginBottom: spacing.larger + } }; export const spacingOuterLargest = { container: { - margin: spacing.largest, - }, + margin: spacing.largest + } }; export const spacingOuterVerticalLargest = { container: { - marginVertical: spacing.largest, - }, + marginVertical: spacing.largest + } }; export const spacingOuterHorizontalLargest = { container: { - marginHorizontal: spacing.largest, - }, + marginHorizontal: spacing.largest + } }; export const spacingOuterTopLargest = { container: { - marginTop: spacing.largest, - }, + marginTop: spacing.largest + } }; export const spacingOuterRightLargest = { container: { - marginRight: spacing.largest, - }, + marginRight: spacing.largest + } }; export const spacingOuterLeftLargest = { container: { - marginLeft: spacing.largest, - }, + marginLeft: spacing.largest + } }; export const spacingOuterBottomLargest = { container: { - marginBottom: spacing.largest, - }, + marginBottom: spacing.largest + } }; diff --git a/test/theme/styles/native/js/core/helpers/_functions/adjustfont.js b/test/themesource/atlas_core/native/core/helpers/_functions/adjustfont.js old mode 100755 new mode 100644 similarity index 79% rename from test/theme/styles/native/js/core/helpers/_functions/adjustfont.js rename to test/themesource/atlas_core/native/core/helpers/_functions/adjustfont.js index 7c8efe1..41fb606 --- a/test/theme/styles/native/js/core/helpers/_functions/adjustfont.js +++ b/test/themesource/atlas_core/native/core/helpers/_functions/adjustfont.js @@ -12,28 +12,34 @@ const pixelRatio = PixelRatio.get(); function adjustFont(size) { if (pixelRatio === 2) { // iphone 5s and older Androids - if (width < 360) + if (width < 360) { return size * 0.95; + } // iphone 5 - if (height < 667) + if (height < 667) { return size; + } // iphone 6-6s - else if (height >= 667 && height <= 735) + else if (height >= 667 && height <= 735) { return size * 1.15; + } // older phablets return size * 1.25; } if (pixelRatio === 3) { // catch Android font scaling on small machines // where pixel ratio / font scale ratio => 3:3 - if (width <= 360) + if (width <= 360) { return size; + } // Catch other weird android width sizings - if (height < 667) + if (height < 667) { return size * 1.15; + } // catch in-between size Androids and scale font up - if (height >= 667 && height <= 735) + if (height >= 667 && height <= 735) { return size * 1.2; + } // catch larger devices // ie iphone 6s plus / 7 plus / mi note return size * 1.27; @@ -41,14 +47,17 @@ function adjustFont(size) { if (pixelRatio === 3.5) { // catch Android font scaling on small machines // where pixel ratio / font scale ratio => 3:3 - if (width <= 360) + if (width <= 360) { return size; + } // Catch other smaller android height sizings - if (height < 667) + if (height < 667) { return size * 1.2; + } // catch in-between size Androids and scale font up - if (height >= 667 && height <= 735) + if (height >= 667 && height <= 735) { return size * 1.25; + } // catch larger phablet devices return size * 1.4; } diff --git a/test/theme/styles/native/js/core/helpers/_functions/colorwords.js b/test/themesource/atlas_core/native/core/helpers/_functions/colorwords.js old mode 100755 new mode 100644 similarity index 99% rename from test/theme/styles/native/js/core/helpers/_functions/colorwords.js rename to test/themesource/atlas_core/native/core/helpers/_functions/colorwords.js index 3c4cb0f..00e6f4c --- a/test/theme/styles/native/js/core/helpers/_functions/colorwords.js +++ b/test/themesource/atlas_core/native/core/helpers/_functions/colorwords.js @@ -147,7 +147,7 @@ const colors = { white: { r: 255, g: 255, b: 255 }, whitesmoke: { r: 245, g: 245, b: 245 }, yellow: { r: 255, g: 255, b: 0 }, - yellowgreen: { r: 154, g: 205, b: 50 }, + yellowgreen: { r: 154, g: 205, b: 50 } }; // export default colors; diff --git a/test/theme/styles/native/js/core/helpers/_functions/convertcolors.js b/test/themesource/atlas_core/native/core/helpers/_functions/convertcolors.js old mode 100755 new mode 100644 similarity index 82% rename from test/theme/styles/native/js/core/helpers/_functions/convertcolors.js rename to test/themesource/atlas_core/native/core/helpers/_functions/convertcolors.js index d24f483..8d1ff99 --- a/test/theme/styles/native/js/core/helpers/_functions/convertcolors.js +++ b/test/themesource/atlas_core/native/core/helpers/_functions/convertcolors.js @@ -1,4 +1,4 @@ -import colors from "./colorwords.js"; +import colors from "./colorwords"; /** * * Converts RGB color to HEX @@ -14,6 +14,7 @@ function RgbToHex(r, g, b) { const color = r.replace(/rgb[(]|[)]/gm, ""); [r, g, b] = color.split(","); } + // eslint-disable-next-line no-bitwise return "#" + ((1 << 24) + (Number(r) << 16) + (Number(g) << 8) + Number(b)).toString(16).slice(1); } /** @@ -31,7 +32,7 @@ function hexToRgb(hex) { r: parseInt("0x" + hex[0] + hex[1], 16), g: parseInt("0x" + hex[2] + hex[3], 16), b: parseInt("0x" + hex[4] + hex[5], 16), - a: parseInt("0x" + hex[6] + hex[7], 16) / 255 || 1, + a: parseInt("0x" + hex[6] + hex[7], 16) / 255 || 1 }); } /** @@ -55,19 +56,34 @@ export function anyColorToRgbString(anyColor) { * @return {object} Returns RGB color; {r,g,b} */ function hslToRgb(hsl) { - let hslArray = hsl.replace(/hsla?[(]|[%]|[)]/gm, "").split(",").map(x => x.trim()); - let h = hslArray[0], s = Number(hslArray[1]) / 100, l = Number(hslArray[2]) / 100, a = 1; + const hslArray = hsl + .replace(/hsla?[(]|[%]|[)]/gm, "") + .split(",") + .map(x => x.trim()); + let h = hslArray[0]; + const s = Number(hslArray[1]) / 100; + const l = Number(hslArray[2]) / 100; + const a = 1; // Strip label and convert to degrees (if necessary) - if (~h.indexOf("deg")) + // eslint-disable-next-line no-bitwise + if (~h.indexOf("deg")) { h = h.substr(0, h.length - 3); - else if (~h.indexOf("rad")) + // eslint-disable-next-line no-bitwise + } + else if (~h.indexOf("rad")) { h = Math.round(Number(h.substr(0, h.length - 3)) * (180 / Math.PI)); - else if (~h.indexOf("turn")) + // eslint-disable-next-line no-bitwise + } + else if (~h.indexOf("turn")) { h = Math.round(Number(h.substr(0, h.length - 4)) * 360); + } h = Number(h); - if (h >= 360) - h %= 360; // Keep hue fraction of 360 if h is higher than 360 - let r = 255, g = 255, b = 255; + if (h >= 360) { + h %= 360; + } // Keep hue fraction of 360 if h is higher than 360 + let r = 255; + let g = 255; + let b = 255; const c = (1 - Math.abs(2 * l - 1)) * s; // chroma -> color intensity const x = c * (1 - Math.abs(((h / 60) % 2) - 1)); // Second largest component (first being chroma) const m = l - c / 2; // Amount to add to each channel to match lightness @@ -105,7 +121,7 @@ function hslToRgb(hsl) { r: Math.round((r + m) * 255), g: Math.round((g + m) * 255), b: Math.round((b + m) * 255), - a, + a }); } /** @@ -119,11 +135,14 @@ function hslToRgb(hsl) { function rgbStringToRgb(rgb) { const color = rgb.replace(/rgb[(]|[)]/gm, ""); // if RGB has hex color definition - if (~rgb.indexOf("#")) + // eslint-disable-next-line no-bitwise + if (~rgb.indexOf("#")) { return hexToRgb(color); + } // if RGB has word color definition - else if (!(/\d/).test(rgb)) + else if (!/\d/.test(rgb)) { return colors[color.toLowerCase()]; + } // if RGB has RGB color definition else { const [r, g, b] = color.split(","); @@ -149,11 +168,13 @@ function rgbaToRgb(rgba) { const color = val.slice(0, val.lastIndexOf(",")).trim(); const alpha = Number(val.slice(val.lastIndexOf(",") + 1).trim()); // if RGBA has HEX color definition - if (color[0] === "#") + if (color[0] === "#") { RGB = hexToRgb(color); + } // if RGBA has word color definition - else if (!(/\d/).test(color)) + else if (!/\d/.test(color)) { RGB = colors[color.toLowerCase()]; + } // if RGBA has RGB color definition else { const [r, g, b] = color.split(","); @@ -174,16 +195,24 @@ function rgbaToRgb(rgba) { * @return {object} Returns RGB color; {r,g,b} */ function checkColor(color) { - if (color in colors) + if (color in colors) { return colors[color.toLowerCase()]; - else if (color[0] === "#") + } + else if (color[0] === "#") { return hexToRgb(color); - else if (~color.indexOf("hsl")) + // eslint-disable-next-line no-bitwise + } + else if (~color.indexOf("hsl")) { return hslToRgb(color); - else if (~color.indexOf("rgba")) + // eslint-disable-next-line no-bitwise + } + else if (~color.indexOf("rgba")) { return rgbaToRgb(color); - else if (~color.indexOf("rgb")) + // eslint-disable-next-line no-bitwise + } + else if (~color.indexOf("rgb")) { return rgbStringToRgb(color); + } return { r: 255, g: 255, b: 255 }; } /** @@ -214,10 +243,12 @@ export function setColorBasedOnBackground(color) { * @return {string} Returns HEX color */ export function setContrastScale(contrast, color) { - if (contrast > 1) + if (contrast > 1) { contrast = 1; - if (contrast < 0) + } + if (contrast < 0) { contrast = 0; + } const max = 256; const c = checkColor(color); const { r, g, b } = typeof c === "object" ? c : { r: 255, g: 255, b: 255 }; diff --git a/test/theme/styles/native/js/core/helpers/_functions/device.js b/test/themesource/atlas_core/native/core/helpers/_functions/device.js old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/native/js/core/helpers/_functions/device.js rename to test/themesource/atlas_core/native/core/helpers/_functions/device.js diff --git a/test/theme/styles/native/js/core/helpers/_functions/mergeobjects.js b/test/themesource/atlas_core/native/core/helpers/_functions/mergeobjects.js old mode 100755 new mode 100644 similarity index 79% rename from test/theme/styles/native/js/core/helpers/_functions/mergeobjects.js rename to test/themesource/atlas_core/native/core/helpers/_functions/mergeobjects.js index 0590b3e..6385209 --- a/test/theme/styles/native/js/core/helpers/_functions/mergeobjects.js +++ b/test/themesource/atlas_core/native/core/helpers/_functions/mergeobjects.js @@ -12,18 +12,20 @@ export default function (...sources) { function isObject(item) { return item && typeof item === "object" && !Array.isArray(item); } - if (!sources.length) + if (!sources.length) { return target; + } const source = sources.shift(); if (isObject(target) && isObject(source)) { - Object.keys(source).forEach((key) => { + Object.keys(source).forEach(key => { if (isObject(source[key])) { - if (!target[key]) + if (!target[key]) { Object.assign(target, { [key]: {} }); + } mergeDeep(target[key], source[key]); } else { - Object.assign(target, { [key]: source[key] }); + Object.assign(target, { [key]: source[key] || target[key] }); } }); } diff --git a/test/theme/styles/native/js/core/helpers/activityindicator.js b/test/themesource/atlas_core/native/core/helpers/activityindicator.js old mode 100755 new mode 100644 similarity index 83% rename from test/theme/styles/native/js/core/helpers/activityindicator.js rename to test/themesource/atlas_core/native/core/helpers/activityindicator.js index 97ac202..c047f47 --- a/test/theme/styles/native/js/core/helpers/activityindicator.js +++ b/test/themesource/atlas_core/native/core/helpers/activityindicator.js @@ -1,4 +1,4 @@ -import { brand } from "../variables"; +import { brand } from "../../variables"; /* DISCLAIMER: @@ -15,16 +15,16 @@ To customize any core styling, copy the part you want to customize to styles/nat // Activity indicator Colors export const activityIndicatorSuccess = { indicator: { - color: brand.success, - }, + color: brand.success + } }; export const activityIndicatorWarning = { indicator: { - color: brand.warning, - }, + color: brand.warning + } }; export const activityIndicatorDanger = { indicator: { - color: brand.danger, - }, + color: brand.danger + } }; diff --git a/test/theme/styles/native/js/core/helpers/badge.js b/test/themesource/atlas_core/native/core/helpers/badge.js old mode 100755 new mode 100644 similarity index 65% rename from test/theme/styles/native/js/core/helpers/badge.js rename to test/themesource/atlas_core/native/core/helpers/badge.js index d224531..04eb76e --- a/test/theme/styles/native/js/core/helpers/badge.js +++ b/test/themesource/atlas_core/native/core/helpers/badge.js @@ -1,4 +1,4 @@ -import { badge } from "../variables"; +import { badge } from "../../variables"; /* DISCLAIMER: @@ -15,33 +15,33 @@ To customize any core styling, copy the part you want to customize to styles/nat // Badge Colors export const badgePrimary = { container: { - backgroundColor: badge.primary.backgroundColor, + backgroundColor: badge.primary.backgroundColor }, caption: { - color: badge.primary.color, - }, + color: badge.primary.color + } }; export const badgeSuccess = { container: { - backgroundColor: badge.success.backgroundColor, + backgroundColor: badge.success.backgroundColor }, caption: { - color: badge.success.color, - }, + color: badge.success.color + } }; export const badgeWarning = { container: { - backgroundColor: badge.warning.backgroundColor, + backgroundColor: badge.warning.backgroundColor }, caption: { - color: badge.warning.color, - }, + color: badge.warning.color + } }; export const badgeDanger = { container: { - backgroundColor: badge.danger.backgroundColor, + backgroundColor: badge.danger.backgroundColor }, caption: { - color: badge.danger.color, - }, + color: badge.danger.color + } }; diff --git a/test/themesource/atlas_core/native/core/helpers/barchart.js b/test/themesource/atlas_core/native/core/helpers/barchart.js new file mode 100644 index 0000000..834992c --- /dev/null +++ b/test/themesource/atlas_core/native/core/helpers/barchart.js @@ -0,0 +1,11 @@ +export const barChartSquare = { + chart: { + aspectRatio: 1 + } +}; +export const barChartMaxSpace = { + chart: { + flex: 1, + aspectRatio: undefined + } +}; diff --git a/test/theme/styles/native/js/core/helpers/buttons.js b/test/themesource/atlas_core/native/core/helpers/buttons.js old mode 100755 new mode 100644 similarity index 56% rename from test/theme/styles/native/js/core/helpers/buttons.js rename to test/themesource/atlas_core/native/core/helpers/buttons.js index 80e7c6b..08134ac --- a/test/theme/styles/native/js/core/helpers/buttons.js +++ b/test/themesource/atlas_core/native/core/helpers/buttons.js @@ -1,4 +1,4 @@ -import { brand, button, contrast, font } from "../variables"; +import { brand, button, contrast, font } from "../../variables"; import merge from "./_functions/mergeobjects"; /* @@ -17,124 +17,116 @@ To customize any core styling, copy the part you want to customize to styles/nat export const btnSecondary = { container: { borderColor: button.secondary.borderColor, - backgroundColor: button.secondary.backgroundColor, + backgroundColor: button.secondary.backgroundColor }, icon: { - color: button.secondary.color, + color: button.secondary.color }, caption: { - color: button.secondary.color, - }, + color: button.secondary.color + } }; export const btnSuccess = { container: { borderColor: button.success.borderColor, - backgroundColor: button.success.backgroundColor, + backgroundColor: button.success.backgroundColor }, icon: { - color: button.success.color, + color: button.success.color }, caption: { - color: button.success.color, - }, + color: button.success.color + } }; export const btnWarning = { container: { borderColor: button.warning.borderColor, - backgroundColor: button.warning.backgroundColor, + backgroundColor: button.warning.backgroundColor }, icon: { - color: button.warning.color, + color: button.warning.color }, caption: { - color: button.warning.color, - }, + color: button.warning.color + } }; export const btnDanger = { container: { borderColor: button.danger.borderColor, - backgroundColor: button.danger.backgroundColor, + backgroundColor: button.danger.backgroundColor }, icon: { - color: button.danger.color, + color: button.danger.color }, caption: { - color: button.danger.color, - }, + color: button.danger.color + } }; export const btnPrimaryInversed = { container: { borderColor: button.primary.color, - backgroundColor: button.primary.color, + backgroundColor: button.primary.color }, icon: { - color: button.primary.backgroundColor, + color: button.primary.backgroundColor }, caption: { - color: button.primary.backgroundColor, - }, + color: button.primary.backgroundColor + } }; // -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -export const btnSecondaryInversed = { - container: { - borderColor: button.secondary.inversedColor, - backgroundColor: button.secondary.backgroundColor, - }, - icon: { - color: button.secondary.inversedColor, - }, - caption: { - color: button.secondary.inversedColor, - }, -}; +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// // // Button Icon Only export const btnIcon = { container: { borderWidth: 0, backgroundColor: "transparent", + width: font.sizeLarge, + height: font.sizeLarge, + minWidth: undefined, + minHeight: undefined, paddingVertical: 0, - paddingHorizontal: 0, + paddingHorizontal: 0 }, icon: { - color: font.color, + color: font.colorTitle }, caption: { - fontSize: 0, - }, + fontSize: 0 + } }; export const btnIconPrimary = merge(btnIcon, { icon: { - color: button.primary.backgroundColor, - }, + color: button.primary.backgroundColor + } }); export const btnIconSecondary = merge(btnIcon, { icon: { - color: contrast.low, - }, + color: contrast.low + } }); export const btnIconSuccess = merge(btnIcon, { icon: { - color: button.success.backgroundColor, - }, + color: button.success.backgroundColor + } }); export const btnIconWarning = merge(btnIcon, { icon: { - color: button.warning.backgroundColor, - }, + color: button.warning.backgroundColor + } }); export const btnIconDanger = merge(btnIcon, { icon: { - color: button.danger.backgroundColor, - }, + color: button.danger.backgroundColor + } }); export const btnIconWhite = merge(btnIcon, { icon: { - color: "#FFF", - }, + color: "#FFF" + } }); // export const btnIconGrayRounded = { @@ -144,15 +136,15 @@ export const btnIconGrayRounded = { padding: 10, borderRadius: 20, borderWidth: 0, - backgroundColor: contrast.lowest, + backgroundColor: contrast.lowest }, icon: { size: 30, - color: contrast.high, + color: contrast.high }, caption: { - fontSize: 0, - }, + fontSize: 0 + } }; // // Round Button Icon With Background @@ -162,16 +154,16 @@ export const btnIconPrimaryBackground = { height: 40, borderRadius: 20, paddingVertical: 0, - paddingHorizontal: 0, + paddingHorizontal: 0 }, icon: { width: "100%", height: "100%", alignItems: "center", justifyContent: "center", - size: button.fontSizeIconLarge, - color: button.primary.color, - }, + size: font.sizeLarge, + color: button.primary.color + } }; // // @@ -182,27 +174,41 @@ export const btnAsText = { borderWidth: 0, borderRadius: 0, rippleColor: contrast.lowest, - backgroundColor: "transparent", - paddingVertical: 0, - paddingHorizontal: 0, + backgroundColor: "transparent" + // paddingVertical: 0, + // paddingHorizontal: 0, }, icon: { - color: brand.primary, - size: button.fontSizeIcon, + size: button.icon.size }, caption: { - color: brand.primary, fontWeight: font.weightSemiBold, - fontSize: button.fontSize, - }, + fontSize: button.caption.fontSize + } }; +export const btnAsTextPrimary = merge(btnAsText, { + icon: { + color: brand.primary + }, + caption: { + color: brand.primary + } +}); +export const btnAsTextSecondary = merge(btnAsText, { + icon: { + color: font.colorTitle + }, + caption: { + color: font.colorTitle + } +}); // // Button sizes export const btnLarge = { icon: { - size: button.fontSizeIconLarge, + size: font.size }, caption: { - fontSize: button.fontSizeLarge, - }, + fontSize: font.size + } }; diff --git a/test/theme/styles/native/js/core/helpers/floatingactionbutton.js b/test/themesource/atlas_core/native/core/helpers/floatingactionbutton.js old mode 100755 new mode 100644 similarity index 72% rename from test/theme/styles/native/js/core/helpers/floatingactionbutton.js rename to test/themesource/atlas_core/native/core/helpers/floatingactionbutton.js index 5d37bed..0f5e777 --- a/test/theme/styles/native/js/core/helpers/floatingactionbutton.js +++ b/test/themesource/atlas_core/native/core/helpers/floatingactionbutton.js @@ -1,4 +1,4 @@ -import { brand } from "../variables"; +import { background, brand } from "../../variables"; /* DISCLAIMER: @@ -13,18 +13,29 @@ To customize any core styling, copy the part you want to customize to styles/nat //## Helper classes to change the look and feel of the widget ========================================================================== */ // Floating Action Button Colors +export const floatingActionButtonSecondary = { + button: { + backgroundColor: background.primary + }, + buttonIcon: { + color: brand.primary + } +}; export const floatingActionButtonSuccess = { button: { backgroundColor: brand.success, - }, + borderColor: brand.success + } }; export const floatingActionButtonWarning = { button: { backgroundColor: brand.warning, - }, + borderColor: brand.warning + } }; export const floatingActionButtonDanger = { button: { backgroundColor: brand.danger, - }, + borderColor: brand.danger + } }; diff --git a/test/themesource/atlas_core/native/core/helpers/helperclasses.js b/test/themesource/atlas_core/native/core/helpers/helperclasses.js new file mode 100644 index 0000000..f1ae538 --- /dev/null +++ b/test/themesource/atlas_core/native/core/helpers/helperclasses.js @@ -0,0 +1,111 @@ +import { Platform } from "react-native"; +import { background, border } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +*/ +// Hide on Android +export const hideOnAndroid = { + container: { + display: Platform.select({ ios: "flex", android: "none" }) + } +}; +// Hide on iOS +export const hideOnIos = { + container: { + display: Platform.select({ ios: "none", android: "flex" }) + } +}; +// +// == Background Colors +export const backgroundPrimary = { + container: { + backgroundColor: background.primary + } +}; +export const backgroundSecondary = { + container: { + backgroundColor: background.secondary + } +}; +export const backgroundBrandPrimary = { + container: { + backgroundColor: background.brandPrimary + } +}; +export const backgroundBrandSuccess = { + container: { + backgroundColor: background.brandSuccess + } +}; +export const backgroundBrandWarning = { + container: { + backgroundColor: background.brandWarning + } +}; +export const backgroundBrandDanger = { + container: { + backgroundColor: background.brandDanger + } +}; +export const backgroundBrandInfo = { + container: { + backgroundColor: background.brandInfo + } +}; +// +// borders +export const borderTop = { + container: { + borderColor: border.color, + borderTopWidth: border.width + } +}; +export const borderRight = { + container: { + borderColor: border.color, + borderRightWidth: border.width + } +}; +export const borderBottom = { + container: { + borderColor: border.color, + borderBottomWidth: border.width + } +}; +export const borderRadiusSmall = { + container: { + overflow: "hidden", + borderRadius: border.radiusSmall + } +}; +export const borderRadiusLarge = { + container: { + overflow: "hidden", + borderRadius: border.radiusLarge + } +}; +// +// Positioning +export const absoluteBottom = { + container: { + position: "absolute", + bottom: 0, + width: "100%", + maxWidth: "100%", + zIndex: 99 + } +}; +export const absoluteTop = { + container: { + position: "absolute", + top: 0, + width: "100%", + maxWidth: "100%", + zIndex: 99 + } +}; diff --git a/test/themesource/atlas_core/native/core/helpers/image.js b/test/themesource/atlas_core/native/core/helpers/image.js new file mode 100644 index 0000000..d009429 --- /dev/null +++ b/test/themesource/atlas_core/native/core/helpers/image.js @@ -0,0 +1,142 @@ +import { border, brand, contrast, image } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Image + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +// Image Overlay +export const imageOverlay = { + container: { + zIndex: 10, + width: "100%", + height: "100%", + position: "absolute", + backgroundColor: "rgba(0,0,0,0.4)" + } +}; +// +// Image Shapes +export const imageSquare = { + image: { + width: "100%", + height: "auto", + aspectRatio: 1, + borderRadius: border.radiusSmall + } +}; +export const imageCircle = { + image: { + width: "100%", + height: "auto", + aspectRatio: 1, + borderRadius: 50000 + } +}; +// Image Sizes +export const imageIcon = { + image: { + maxWidth: image.icon, + maxHeight: image.icon + }, + container: { + maxWidth: image.icon, + maxHeight: image.icon + } +}; +export const imageSmall = { + image: { + maxWidth: image.image.small, + maxHeight: image.image.small + }, + container: { + maxWidth: image.image.small, + maxHeight: image.image.small + } +}; +export const imageMedium = { + image: { + maxWidth: image.image.medium, + maxHeight: image.image.medium + }, + container: { + maxWidth: image.image.medium, + maxHeight: image.image.medium + } +}; +export const imageLarge = { + image: { + maxWidth: image.image.large, + maxHeight: image.image.large + }, + container: { + maxWidth: image.image.large, + maxHeight: image.image.large + } +}; +export const imageLarger = { + image: { + maxWidth: image.image.larger, + maxHeight: image.image.larger + }, + container: { + maxWidth: image.image.larger, + maxHeight: image.image.larger + } +}; +export const imageFullSize = { + image: { + maxWidth: "100%", + maxHeight: "auto" + } +}; +// +// Image / SVG Styles +export const imageIconPrimary = { + image: { + fill: brand.primary, + color: brand.primary + } +}; +export const imageIconSecondary = { + image: { + fill: contrast.low, + color: contrast.low + } +}; +export const imageIconSuccess = { + image: { + fill: brand.success, + color: brand.success + } +}; +export const imageIconWarning = { + image: { + fill: brand.warning, + color: brand.warning + } +}; +export const imageIconDanger = { + image: { + fill: brand.danger, + color: brand.danger + } +}; +export const imageIconInfo = { + image: { + fill: brand.info, + color: brand.info + } +}; diff --git a/test/themesource/atlas_core/native/core/helpers/introscreen.js b/test/themesource/atlas_core/native/core/helpers/introscreen.js new file mode 100644 index 0000000..bc3ff89 --- /dev/null +++ b/test/themesource/atlas_core/native/core/helpers/introscreen.js @@ -0,0 +1,75 @@ +import { backgroundDefaults, brand, fontDefaults } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Intro Screen + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +const introScreenButton = { + icon: { + // Size and color are allowed + color: fontDefaults.colorTitleDark + }, + caption: { + // All TextStyle properties are allowed + color: fontDefaults.colorTitleDark + } +}; +export const introScreenLightMode = { + fullscreenContainer: { + // All ViewStyle properties are allowed + backgroundColor: backgroundDefaults.primaryLight + }, + popupContainer: { + // All ViewStyle properties are allowed + backgroundColor: backgroundDefaults.primaryLight + }, + paginationText: { + // All TextStyle properties are allowed + color: fontDefaults.colorTitleLight + }, + dotStyle: { + // All ViewStyle properties are allowed + backgroundColor: fontDefaults.colorDisabledLight + }, + activeDotStyle: { + // All ViewStyle properties are allowed + backgroundColor: backgroundDefaults.secondaryDark + }, + // Button styles + paginationAbove: { + buttonSkip: introScreenButton, + buttonPrevious: introScreenButton, + buttonNext: introScreenButton, + buttonDone: introScreenButton + }, + paginationBetween: { + buttonSkip: introScreenButton, + buttonPrevious: introScreenButton, + buttonNext: introScreenButton, + buttonDone: introScreenButton + } +}; +// Background colors +export const introScreenBackgroundBrandPrimary = { + fullscreenContainer: { + // All ViewStyle properties are allowed + backgroundColor: brand.primary + }, + popupContainer: { + // All ViewStyle properties are allowed + backgroundColor: brand.primary + } +}; diff --git a/test/themesource/atlas_core/native/core/helpers/linechart.js b/test/themesource/atlas_core/native/core/helpers/linechart.js new file mode 100644 index 0000000..32eabbd --- /dev/null +++ b/test/themesource/atlas_core/native/core/helpers/linechart.js @@ -0,0 +1,11 @@ +export const lineChartSquare = { + chart: { + aspectRatio: 1 + } +}; +export const lineChartMaxSpace = { + chart: { + flex: 1, + aspectRatio: undefined + } +}; diff --git a/test/theme/styles/native/js/core/helpers/listviews.js b/test/themesource/atlas_core/native/core/helpers/listview.js old mode 100755 new mode 100644 similarity index 51% rename from test/theme/styles/native/js/core/helpers/listviews.js rename to test/themesource/atlas_core/native/core/helpers/listview.js index 8d98e1f..7fa30dd --- a/test/theme/styles/native/js/core/helpers/listviews.js +++ b/test/themesource/atlas_core/native/core/helpers/listview.js @@ -1,4 +1,4 @@ -import { listView } from "../variables"; +import { background, border, listView, spacing } from "../../variables"; /* DISCLAIMER: @@ -16,26 +16,31 @@ To customize any core styling, copy the part you want to customize to styles/nat export const listItemBorderBottom = { listItem: { borderColor: listView.border.color, - borderBottomWidth: listView.border.width, - }, + borderBottomWidth: listView.border.width + } }; export const listItemBorderRight = { listItem: { borderColor: listView.border.color, - borderRightWidth: listView.border.width, - }, + borderRightWidth: listView.border.width + } }; // -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// -export const listItemIconSmall = { - icon: { - size: 16, - }, +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +export const listItemImage = { + container: { + height: 88, + width: 128, + overflow: "hidden", + backgroundColor: background.primary, + borderRadius: border.radiusLarge, + marginRight: spacing.regular + } }; -export const listItemIconLarge = { - icon: { - size: 24, - }, +export const horizontalListItemCard = { + container: { + width: 280 + } }; diff --git a/test/theme/styles/native/js/core/helpers/listviewswipe.js b/test/themesource/atlas_core/native/core/helpers/listviewswipe.js old mode 100755 new mode 100644 similarity index 65% rename from test/theme/styles/native/js/core/helpers/listviewswipe.js rename to test/themesource/atlas_core/native/core/helpers/listviewswipe.js index 5f09712..31fb38b --- a/test/theme/styles/native/js/core/helpers/listviewswipe.js +++ b/test/themesource/atlas_core/native/core/helpers/listviewswipe.js @@ -1,3 +1,4 @@ +import { listViewSwipe } from "../../variables"; /* DISCLAIMER: @@ -14,24 +15,24 @@ To customize any core styling, copy the part you want to customize to styles/nat export const listViewSwipeSmallPanels = { leftAction: { // PanelSize & All ViewStyle properties are allowed - panelSize: 150, + panelSize: listViewSwipe.leftAction.panelSizeSmall }, rightAction: { // PanelSize & All ViewStyle properties are allowed - panelSize: 150, - }, + panelSize: listViewSwipe.rightAction.panelSizeSmall + } }; export const listViewSwipeLargePanels = { leftAction: { // PanelSize & All ViewStyle properties are allowed - panelSize: 250, + panelSize: listViewSwipe.leftAction.panelSizeLarge }, rightAction: { // PanelSize & All ViewStyle properties are allowed - panelSize: 250, - }, + panelSize: listViewSwipe.rightAction.panelSizeLarge + } }; // -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// diff --git a/test/theme/styles/native/js/core/helpers/maps.js b/test/themesource/atlas_core/native/core/helpers/maps.js old mode 100755 new mode 100644 similarity index 63% rename from test/theme/styles/native/js/core/helpers/maps.js rename to test/themesource/atlas_core/native/core/helpers/maps.js index 20d3491..f71c711 --- a/test/theme/styles/native/js/core/helpers/maps.js +++ b/test/themesource/atlas_core/native/core/helpers/maps.js @@ -1,4 +1,4 @@ -import { border, brand } from "../variables"; +import { border, brand } from "../../variables"; /* DISCLAIMER: @@ -15,40 +15,40 @@ To customize any core styling, copy the part you want to customize to styles/nat // Maps Colors export const mapsSuccess = { marker: { - color: brand.success, - }, + color: brand.success + } }; export const mapsWarning = { marker: { - color: brand.warning, - }, + color: brand.warning + } }; export const mapsDanger = { marker: { - color: brand.danger, - }, + color: brand.danger + } }; // // Maps Size export const mapsSquare = { container: { - aspectRatio: 1 / 1, - }, + aspectRatio: 1 / 1 + } }; export const mapsMaxSpace = { container: { flex: 1, - aspectRatio: undefined, - }, + aspectRatio: undefined + } }; // -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// // Maps Shape export const mapsRounded = { container: { - borderRadius: border.radius, - overflow: "hidden", - }, + borderRadius: border.radiusSmall, + overflow: "hidden" + } }; diff --git a/test/themesource/atlas_core/native/core/helpers/progressbar.js b/test/themesource/atlas_core/native/core/helpers/progressbar.js new file mode 100644 index 0000000..571e5b9 --- /dev/null +++ b/test/themesource/atlas_core/native/core/helpers/progressbar.js @@ -0,0 +1,44 @@ +import { brand, progressBar } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Progress Bar + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Progress Bar Color +export const progressBarSuccess = { + fill: { + backgroundColor: brand.success + } +}; +export const progressBarWarning = { + fill: { + backgroundColor: brand.warning + } +}; +export const progressBarDanger = { + fill: { + backgroundColor: brand.danger + } +}; +// +// Progress Bar Size +export const progressBarSmall = { + bar: { + height: progressBar.bar.heightSmall, + borderRadius: progressBar.bar.heightSmall / 2 + } +}; +export const progressBarLarge = { + bar: { + height: progressBar.bar.heightLarge, + borderRadius: progressBar.bar.heightLarge / 2 + } +}; diff --git a/test/theme/styles/native/js/core/helpers/progresscircle.js b/test/themesource/atlas_core/native/core/helpers/progresscircle.js old mode 100755 new mode 100644 similarity index 67% rename from test/theme/styles/native/js/core/helpers/progresscircle.js rename to test/themesource/atlas_core/native/core/helpers/progresscircle.js index 393f0d7..ca16a0d --- a/test/theme/styles/native/js/core/helpers/progresscircle.js +++ b/test/themesource/atlas_core/native/core/helpers/progresscircle.js @@ -1,4 +1,4 @@ -import { brand, contrast, font } from "../variables"; +import { brand, contrast, font } from "../../variables"; /* DISCLAIMER: @@ -15,46 +15,46 @@ To customize any core styling, copy the part you want to customize to styles/nat // Progress Circle Color export const progressCircleSuccess = { fill: { - backgroundColor: brand.success, + backgroundColor: brand.success }, text: { - color: contrast.regular, - }, + color: brand.success + } }; export const progressCircleWarning = { fill: { - backgroundColor: brand.warning, + backgroundColor: brand.warning }, text: { - color: contrast.regular, - }, + color: brand.warning + } }; export const progressCircleDanger = { fill: { - backgroundColor: brand.danger, + backgroundColor: brand.danger }, text: { - color: contrast.regular, - }, + color: brand.danger + } }; export const progressCircleGray = { fill: { - backgroundColor: contrast.regular, + backgroundColor: contrast.regular }, text: { - color: contrast.regular, - }, + color: contrast.regular + } }; // // Sizes export const progressCircleSmall = { circle: { - size: 50, + size: 50 }, fill: { - width: 3, + width: 3 }, text: { - fontSize: font.sizeSmall, - }, + fontSize: font.sizeSmall + } }; diff --git a/test/theme/styles/native/js/core/helpers/rangeslider.js b/test/themesource/atlas_core/native/core/helpers/rangeslider.js old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/native/js/core/helpers/rangeslider.js rename to test/themesource/atlas_core/native/core/helpers/rangeslider.js diff --git a/test/theme/styles/native/js/core/helpers/slider.js b/test/themesource/atlas_core/native/core/helpers/slider.js old mode 100755 new mode 100644 similarity index 61% rename from test/theme/styles/native/js/core/helpers/slider.js rename to test/themesource/atlas_core/native/core/helpers/slider.js index e1f9443..fd707ff --- a/test/theme/styles/native/js/core/helpers/slider.js +++ b/test/themesource/atlas_core/native/core/helpers/slider.js @@ -1,5 +1,4 @@ -import { Platform } from "react-native"; -import { brand, contrast } from "../variables"; +import { brand } from "../../variables"; /* DISCLAIMER: @@ -16,25 +15,25 @@ To customize any core styling, copy the part you want to customize to styles/nat // Slider Color export const sliderSuccess = { highlight: { - backgroundColor: brand.success, + backgroundColor: brand.success }, highlightDisabled: { - backgroundColor: Platform.select({ ios: brand.success, android: contrast.low }), - }, + backgroundColor: brand.success + } }; export const sliderWarning = { highlight: { - backgroundColor: brand.warning, + backgroundColor: brand.warning }, highlightDisabled: { - backgroundColor: Platform.select({ ios: brand.warning, android: contrast.low }), - }, + backgroundColor: brand.warning + } }; export const sliderDanger = { highlight: { - backgroundColor: brand.danger, + backgroundColor: brand.danger }, highlightDisabled: { - backgroundColor: Platform.select({ ios: brand.danger, android: contrast.low }), - }, + backgroundColor: brand.danger + } }; diff --git a/test/theme/styles/native/js/core/helpers/tabcontainer.js b/test/themesource/atlas_core/native/core/helpers/tabcontainer.js old mode 100755 new mode 100644 similarity index 71% rename from test/theme/styles/native/js/core/helpers/tabcontainer.js rename to test/themesource/atlas_core/native/core/helpers/tabcontainer.js index 2d64f41..08884fe --- a/test/theme/styles/native/js/core/helpers/tabcontainer.js +++ b/test/themesource/atlas_core/native/core/helpers/tabcontainer.js @@ -14,20 +14,20 @@ To customize any core styling, copy the part you want to customize to styles/nat // Enable scroll for the tab bar export const tabContainerScroll = { tabBar: { - scrollEnabled: true, - }, + scrollEnabled: true + } }; // -//== Extra Classes -//## Helper classes to change the look and feel of the widget -//-------------------------------------------------------------------------------------------------------------------// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// // Tab container as content of page export const tabContainerMinimal = { container: { - backgroundColor: "transparent", + backgroundColor: "transparent" }, tabBar: { backgroundColor: "transparent", - elevation: 0, - }, + elevation: 0 + } }; diff --git a/test/theme/styles/native/js/core/helpers/textbox.js b/test/themesource/atlas_core/native/core/helpers/textbox.js old mode 100755 new mode 100644 similarity index 82% rename from test/theme/styles/native/js/core/helpers/textbox.js rename to test/themesource/atlas_core/native/core/helpers/textbox.js index ad07594..5309bc4 --- a/test/theme/styles/native/js/core/helpers/textbox.js +++ b/test/themesource/atlas_core/native/core/helpers/textbox.js @@ -14,21 +14,21 @@ To customize any core styling, copy the part you want to customize to styles/nat // Text Box Color export const textInputCapitalizeNone = { input: { - autoCapitalize: "none", - }, + autoCapitalize: "none" + } }; export const textInputCapitalizeCharacters = { input: { - autoCapitalize: "characters", - }, + autoCapitalize: "characters" + } }; export const textInputCapitalizeWords = { input: { - autoCapitalize: "words", - }, + autoCapitalize: "words" + } }; export const textInputCapitalizeSentences = { input: { - autoCapitalize: "sentences", - }, + autoCapitalize: "sentences" + } }; diff --git a/test/themesource/atlas_core/native/core/helpers/typography.js b/test/themesource/atlas_core/native/core/helpers/typography.js new file mode 100644 index 0000000..9fbdb93 --- /dev/null +++ b/test/themesource/atlas_core/native/core/helpers/typography.js @@ -0,0 +1,156 @@ +import { brand, font, fontDefaults } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Text + +//== Design Properties +//## Helper classes to change the look and feel of the widget +========================================================================== */ +// Text Colors +export const textTitle = { + text: { + color: font.colorTitle + } +}; +export const textParagraph = { + text: { + color: font.colorParagraph + } +}; +export const textDisabled = { + text: { + color: font.colorDisabled + } +}; +export const textWhite = { + text: { + color: fontDefaults.colorTitleLight + } +}; +export const textBlack = { + text: { + color: fontDefaults.colorTitleDark + } +}; +export const textPrimary = { + text: { + color: brand.primary + } +}; +export const textSuccess = { + text: { + color: brand.success + } +}; +export const textWarning = { + text: { + color: brand.warning + } +}; +export const textDanger = { + text: { + color: brand.danger + } +}; +// +// Text Alignment +export const textLeft = { + text: { + textAlign: "left" + } +}; +export const textCenter = { + text: { + textAlign: "center" + } +}; +export const textRight = { + text: { + textAlign: "right" + } +}; +// +// Text Weights +export const textLight = { + text: { + fontWeight: font.weightLight + } +}; +export const textNormal = { + text: { + fontWeight: font.weightNormal + } +}; +export const textSemiBold = { + text: { + fontWeight: font.weightSemiBold + } +}; +export const textBold = { + text: { + fontWeight: font.weightBold + } +}; +// +// Text Sizes +export const textSmallest = { + text: { + fontSize: font.sizeSmallest, + lineHeight: font.lineHeightSmallest + } +}; +export const textSmall = { + text: { + fontSize: font.sizeSmall, + lineHeight: font.lineHeightSmall + } +}; +export const textLarge = { + text: { + fontSize: font.sizeLarge, + lineHeight: font.lineHeightLarge + } +}; +export const textLargest = { + text: { + fontSize: font.sizeLargest, + lineHeight: font.lineHeightLargest + } +}; +// +// == Extra Classes +// ## Helper classes to change the look and feel of the widget +// -------------------------------------------------------------------------------------------------------------------// +// +// Text Transformations +export const textLowercase = { + text: { + textTransform: "lowercase" + } +}; +export const textUppercase = { + text: { + textTransform: "uppercase" + } +}; +export const textCapitalize = { + text: { + textTransform: "capitalize" + } +}; +export const textUnderline = { + text: { + textDecorationLine: "underline" + } +}; +export const textLineThrough = { + text: { + textDecorationLine: "line-through" + } +}; diff --git a/test/theme/styles/native/js/core/manifest.json b/test/themesource/atlas_core/native/core/manifest.json old mode 100755 new mode 100644 similarity index 59% rename from test/theme/styles/native/js/core/manifest.json rename to test/themesource/atlas_core/native/core/manifest.json index ddbcaa1..b6b47f5 --- a/test/theme/styles/native/js/core/manifest.json +++ b/test/themesource/atlas_core/native/core/manifest.json @@ -1,4 +1,4 @@ { "name": "Atlas-UI-Framework", - "version": "2.5.5" -} \ No newline at end of file + "version": "3.0.0" +} diff --git a/test/theme/styles/native/js/core/widgets/activityindicator.js b/test/themesource/atlas_core/native/core/widgets/activityindicator.js old mode 100755 new mode 100644 similarity index 91% rename from test/theme/styles/native/js/core/widgets/activityindicator.js rename to test/themesource/atlas_core/native/core/widgets/activityindicator.js index 088542b..1ae32d7 --- a/test/theme/styles/native/js/core/widgets/activityindicator.js +++ b/test/themesource/atlas_core/native/core/widgets/activityindicator.js @@ -1,4 +1,4 @@ -import { brand } from "../variables"; +import { brand } from "../../variables"; /* DISCLAIMER: @@ -18,6 +18,6 @@ export const com_mendix_widget_native_activityindicator_ActivityIndicator = { indicator: { // Color and size are allowed color: brand.primary, - size: "large", - }, + size: "large" + } }; diff --git a/test/theme/styles/native/js/core/widgets/animation.js b/test/themesource/atlas_core/native/core/widgets/animation.js old mode 100755 new mode 100644 similarity index 89% rename from test/theme/styles/native/js/core/widgets/animation.js rename to test/themesource/atlas_core/native/core/widgets/animation.js index bfef391..4b143de --- a/test/theme/styles/native/js/core/widgets/animation.js +++ b/test/themesource/atlas_core/native/core/widgets/animation.js @@ -11,5 +11,7 @@ To customize any core styling, copy the part you want to customize to styles/nat Default Class For Mendix Animation Widget ========================================================================== */ export const com_mendix_widget_native_animation_Animation = { - container: {}, + container: { + // All ViewStyle properties are allowed + } }; diff --git a/test/theme/styles/native/js/core/widgets/backgroundimage.js b/test/themesource/atlas_core/native/core/widgets/backgroundimage.js old mode 100755 new mode 100644 similarity index 99% rename from test/theme/styles/native/js/core/widgets/backgroundimage.js rename to test/themesource/atlas_core/native/core/widgets/backgroundimage.js index bd79f14..40d6829 --- a/test/theme/styles/native/js/core/widgets/backgroundimage.js +++ b/test/themesource/atlas_core/native/core/widgets/backgroundimage.js @@ -15,5 +15,5 @@ export const com_mendix_widget_native_backgroundimage_BackgroundImage = { }, image: { // svgColor and all ImageStyle properties are allowed - }, + } }; diff --git a/test/theme/styles/native/js/core/widgets/badge.js b/test/themesource/atlas_core/native/core/widgets/badge.js old mode 100755 new mode 100644 similarity index 84% rename from test/theme/styles/native/js/core/widgets/badge.js rename to test/themesource/atlas_core/native/core/widgets/badge.js index bf93454..260c6da --- a/test/theme/styles/native/js/core/widgets/badge.js +++ b/test/themesource/atlas_core/native/core/widgets/badge.js @@ -1,4 +1,4 @@ -import { badge, font } from "../variables"; +import { badge, font } from "../../variables"; /* DISCLAIMER: @@ -15,14 +15,15 @@ export const com_mendix_widget_native_badge_Badge = { container: { // All ViewStyle properties are allowed backgroundColor: badge.default.backgroundColor, + borderRadius: badge.borderRadius, paddingVertical: badge.paddingVertical, - paddingHorizontal: badge.paddingHorizontal, + paddingHorizontal: badge.paddingHorizontal }, caption: { // All TextStyle properties are allowed color: badge.default.color, fontFamily: font.family, fontWeight: badge.fontWeight, - marginTop: -1, - }, + marginTop: -1 + } }; diff --git a/test/themesource/atlas_core/native/core/widgets/barchart.js b/test/themesource/atlas_core/native/core/widgets/barchart.js new file mode 100644 index 0000000..6bcb7dc --- /dev/null +++ b/test/themesource/atlas_core/native/core/widgets/barchart.js @@ -0,0 +1,166 @@ +import { border, brand, font, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Bar Chart + + Default Class For Mendix Bar Chart Widget +========================================================================== */ +export const com_mendix_widget_native_barchart_BarChart = { + container: { + // All ViewStyle properties are allowed + }, + errorMessage: { + // All TextStyle properties are allowed + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + chart: { + // All ViewStyle properties are allowed + }, + grid: { + /* + Allowed properties: + - backgroundColor (string) + - dashArray (string) + - lineColor (string) + - padding (number) + - paddingBottom (number) + - paddingHorizontal (number) + - paddingLeft (number) + - paddingRight (number) + - paddingTop (number) + - paddingVertical (number) + - width (number) + */ + lineColor: border.color, + paddingBottom: 32, + paddingLeft: 32, + paddingRight: 8, + paddingTop: 8 + }, + xAxis: { + /* + Allowed properties: + - color (string) + - dashArray (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + - lineColor (string) + - width (number) + */ + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + label: { + /* + All TextStyle properties are allowed and: + - relativePositionGrid ("bottom" or "right") + */ + color: font.colorParagraph, + alignSelf: "center", + marginHorizontal: 0, + marginVertical: 8, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + lineColor: border.color + }, + yAxis: { + /* + Allowed properties: + - color (string) + - dashArray (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + - lineColor (string) + - width (number) + */ + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + label: { + /* + All TextStyle properties are allowed and: + - relativePositionGrid ("top" or "left") + */ + color: font.colorParagraph, + marginHorizontal: 0, + marginVertical: 8, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + lineColor: border.color + }, + bars: { + /* + Allowed properties: + - barColorPalette (string with array of colors separated by ';') + - barsOffset (number) + + */ + barColorPalette: Object.values(brand) + .map((color, index, brandColors) => (index === brandColors.length - 1 ? color : `${color};`)) + .join(""), + barsOffset: 20, + customBarStyles: { + your_static_or_dynamic_attribute_value: { + bar: { + /* + Allowed properties: + - ending (number) + - barColor (string) + - width (number) + */ + }, + label: { + /* + Allowed properties: + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + */ + } + } + } + }, + legend: { + container: { + // All ViewStyle properties are allowed + justifyContent: "flex-start", + marginHorizontal: 0, + marginVertical: spacing.small + }, + item: { + // All ViewStyle properties are allowed + padding: 0, + paddingRight: spacing.regular + }, + indicator: { + // All ViewStyle properties are allowed + marginRight: spacing.small + }, + label: { + // All TextStyle properties are allowed + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + } + } +}; diff --git a/test/theme/styles/native/js/core/widgets/bottomsheet.js b/test/themesource/atlas_core/native/core/widgets/bottomsheet.js old mode 100755 new mode 100644 similarity index 68% rename from test/theme/styles/native/js/core/widgets/bottomsheet.js rename to test/themesource/atlas_core/native/core/widgets/bottomsheet.js index b36fc5a..32fe4f8 --- a/test/theme/styles/native/js/core/widgets/bottomsheet.js +++ b/test/themesource/atlas_core/native/core/widgets/bottomsheet.js @@ -1,4 +1,4 @@ -import { background, border } from "../variables"; +import { background, border, brand, contrast, font } from "../../variables"; // // DISCLAIMER: // Do not change this file because it is core styling. @@ -14,45 +14,54 @@ export const com_mendix_widget_native_bottomsheet_BottomSheet = { container: { // All ViewStyle properties are allowed backgroundColor: background.primary, - borderRadius: border.radius, + borderRadius: border.radiusLarge, elevation: 20, shadowColor: "#000", shadowOpacity: 0.1, shadowRadius: 6, shadowOffset: { width: 0, - height: -4, - }, + height: -4 + } }, containerWhenExpandedFullscreen: { // All ViewStyle properties are allowed height: "100%", alignSelf: "stretch", - backgroundColor: background.primary, + backgroundColor: background.primary }, modal: { - // All ViewStyle properties are allowed + // All ViewStyle properties are allowed + margin: 0, + justifyContent: "flex-end" }, modalItems: { + container: { + // rippleColor & All TextStyle properties are allowed + height: 50, + marginTop: 0, + rippleColor: contrast.lower, + backgroundColor: background.primary + }, defaultStyle: { // All TextStyle properties are allowed fontSize: 16, - color: "black", + color: font.colorTitle }, primaryStyle: { // All TextStyle properties are allowed fontSize: 16, - color: "#0595DB", + color: brand.primary }, dangerStyle: { // All TextStyle properties are allowed fontSize: 16, - color: "#ed1c24", + color: brand.danger }, customStyle: { // All TextStyle properties are allowed fontSize: 16, - color: "#76CA02", - }, - }, + color: font.colorTitle + } + } }; diff --git a/test/theme/styles/native/js/core/widgets/buttons.js b/test/themesource/atlas_core/native/core/widgets/buttons.js old mode 100755 new mode 100644 similarity index 57% rename from test/theme/styles/native/js/core/widgets/buttons.js rename to test/themesource/atlas_core/native/core/widgets/buttons.js index 15f2238..752b2b7 --- a/test/theme/styles/native/js/core/widgets/buttons.js +++ b/test/themesource/atlas_core/native/core/widgets/buttons.js @@ -1,4 +1,4 @@ -import { button, contrast, font } from "../variables"; +import { button, font } from "../../variables"; /* DISCLAIMER: @@ -16,27 +16,43 @@ export const ActionButton = { // Ripplecolor and all ViewStyle properties are allowed borderWidth: 1, borderStyle: "solid", - rippleColor: contrast.lowest, + rippleColor: button.container.rippleColor, borderColor: button.primary.borderColor, backgroundColor: button.primary.backgroundColor, alignItems: "center", justifyContent: "center", - borderRadius: button.borderRadius, - paddingVertical: button.paddingVertical, - paddingHorizontal: button.paddingHorizontal, + borderRadius: button.container.borderRadius, + minWidth: button.container.minWidth, + minHeight: button.container.minHeight, + paddingVertical: button.container.paddingVertical, + paddingHorizontal: button.container.paddingHorizontal + }, + containerDisabled: { + // All ViewStyle properties are allowed + borderColor: button.containerDisabled.borderColor, + backgroundColor: button.containerDisabled.backgroundColor }, icon: { // Size and color are allowed color: button.primary.color, - size: button.fontSizeIcon, + size: button.icon.size + }, + iconDisabled: { + // Size and color are allowed + color: button.iconDisabled.color }, caption: { // All TextStyle properties are allowed color: button.primary.color, - fontSize: button.fontSize, + fontSize: button.caption.fontSize, fontFamily: font.family, - fontWeight: button.fontWeight, + fontWeight: button.caption.fontWeight, + lineHeight: font.lineHeight }, + captionDisabled: { + // All TextStyle properties are allowed + color: button.captionDisabled.color + } }; // // Default style for button inside a header @@ -45,15 +61,15 @@ export const ActionButtonHeader = { borderColor: button.header.borderColor, backgroundColor: button.header.backgroundColor, paddingLeft: button.header.paddingLeft, - paddingRight: button.header.paddingRight, + paddingRight: button.header.paddingRight }, icon: { color: button.header.color, - size: button.header.fontSizeIcon, + size: button.header.fontSizeIcon }, caption: { color: button.header.color, fontSize: button.header.fontSize, - fontFamily: font.family, - }, + fontFamily: font.family + } }; diff --git a/test/theme/styles/native/js/core/widgets/carousel.js b/test/themesource/atlas_core/native/core/widgets/carousel.js old mode 100755 new mode 100644 similarity index 83% rename from test/theme/styles/native/js/core/widgets/carousel.js rename to test/themesource/atlas_core/native/core/widgets/carousel.js index 09b071e..cd2819e --- a/test/theme/styles/native/js/core/widgets/carousel.js +++ b/test/themesource/atlas_core/native/core/widgets/carousel.js @@ -1,4 +1,4 @@ -import { brand, contrast, font, spacing } from "../variables"; +import { brand, contrast, font, spacing } from "../../variables"; /* DISCLAIMER: @@ -15,7 +15,7 @@ To customize any core styling, copy the part you want to customize to styles/nat const carouselFullWidthLayout = { slideItem: { // All ViewStyle properties are allowed - height: 250, + height: 250 }, inactiveSlideItem: { // Only opacity and scale are allowed @@ -28,7 +28,7 @@ const carouselFullWidthLayout = { width: "100%", justifyContent: "center", paddingHorizontal: spacing.regular, - paddingBottom: spacing.regular, + paddingBottom: spacing.regular }, text: { // All TextStyle properties are allowed @@ -40,23 +40,23 @@ const carouselFullWidthLayout = { textShadowRadius: 3, textShadowOffset: { width: 0, - height: 1, - }, + height: 1 + } }, dotContainerStyle: { // All ViewStyle properties are allowed - marginHorizontal: 3, + marginHorizontal: 3 }, dotStyle: { // Color and all ViewStyle properties are allowed - color: "#FFF", + color: "#FFF" }, inactiveDotStyle: { // Only opacity, scale and color are allowed color: "rgba(255, 255, 255, 0.45)", - scale: 1, - }, - }, + scale: 1 + } + } }; const carouselCardLayout = { slideItem: { @@ -71,40 +71,40 @@ const carouselCardLayout = { shadowRadius: 6, shadowOffset: { width: 0, - height: 4, - }, + height: 4 + } }, inactiveSlideItem: { // Only opacity and scale are allowed - opacity: .8, + opacity: 0.8 }, pagination: { container: { // All ViewStyle properties are allowed paddingHorizontal: spacing.regular, - paddingBottom: spacing.smaller, + paddingBottom: spacing.smaller }, text: { // All TextStyle properties are allowed - color: font.color, + color: font.colorTitle, fontSize: font.size, fontFamily: font.family, - textAlign: "center", + textAlign: "center" }, dotContainerStyle: { // All ViewStyle properties are allowed - marginHorizontal: 3, + marginHorizontal: 3 }, dotStyle: { // Color and all ViewStyle properties are allowed - color: brand.primary, + color: brand.primary }, inactiveDotStyle: { // Only opacity, scale and color are allowed color: contrast.lower, - scale: 1, - }, - }, + scale: 1 + } + } }; export const com_mendix_widget_native_carousel_Carousel = { container: { @@ -114,6 +114,6 @@ export const com_mendix_widget_native_carousel_Carousel = { cardLayout: carouselCardLayout, activityIndicator: { // Only color is allowed - color: font.color, - }, + color: font.colorTitle + } }; diff --git a/test/themesource/atlas_core/native/core/widgets/checkbox.js b/test/themesource/atlas_core/native/core/widgets/checkbox.js new file mode 100644 index 0000000..1a1735b --- /dev/null +++ b/test/themesource/atlas_core/native/core/widgets/checkbox.js @@ -0,0 +1,86 @@ +import { Platform } from "react-native"; +import { background, backgroundDefaults, border, brand, contrast, font, spacing } from "../../variables"; +import { TextBox, TextBoxVertical } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + CheckBox + + Default Class For Mendix CheckBox Widget +========================================================================== */ +export const CheckBox = { + container: { + // All ViewStyle properties are allowed + ...TextBox.container, + paddingVertical: spacing.smallest, + justifyContent: "center" + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...TextBox.containerDisabled + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...TextBox.label + }, + labelDisabled: { + // All TextStyle properties are allowed + ...TextBox.labelDisabled + }, + input: { + // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed + backgroundColor: "transparent", + marginRight: Platform.select({ android: -3 }), + thumbColorOn: backgroundDefaults.primaryLight, + trackColorOn: brand.primary, + thumbColorOff: "#FFF", + trackColorOff: border.color + }, + inputDisabled: { + // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed + thumbColorOn: background.secondary, + trackColorOn: font.colorDisabled, + thumbColorOff: background.secondary, + trackColorOff: border.color + }, + inputError: { + // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed + ...TextBox.inputError, + thumbColorOn: backgroundDefaults.primaryLight, + trackColorOn: brand.danger, + thumbColorOff: contrast.low, + trackColorOff: brand.danger + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage, + alignSelf: "stretch" + } +}; +export const CheckBoxVertical = { + container: TextBoxVertical.container, + containerDisabled: TextBoxVertical.containerDisabled, + label: TextBoxVertical.label, + labelDisabled: TextBoxVertical.labelDisabled, + input: { + ...CheckBox.input, + alignSelf: "flex-start" + }, + inputDisabled: CheckBox.inputDisabled, + inputError: { + ...TextBoxVertical.inputError, + thumbColorOn: background.primary, + trackColorOn: brand.danger, + thumbColorOff: contrast.low, + trackColorOff: brand.danger + }, + validationMessage: { + ...TextBoxVertical.validationMessage, + alignSelf: "stretch" + } +}; diff --git a/test/theme/styles/native/js/core/widgets/colorpicker.js b/test/themesource/atlas_core/native/core/widgets/colorpicker.js old mode 100755 new mode 100644 similarity index 99% rename from test/theme/styles/native/js/core/widgets/colorpicker.js rename to test/themesource/atlas_core/native/core/widgets/colorpicker.js index 020e2e3..dd0aadf --- a/test/theme/styles/native/js/core/widgets/colorpicker.js +++ b/test/themesource/atlas_core/native/core/widgets/colorpicker.js @@ -16,5 +16,5 @@ export const com_mendix_widget_native_colorpicker_ColorPicker = { }, thumbnail: { // All ViewStyle properties are allowed - }, + } }; diff --git a/test/theme/styles/native/js/core/widgets/container.js b/test/themesource/atlas_core/native/core/widgets/container.js old mode 100755 new mode 100644 similarity index 72% rename from test/theme/styles/native/js/core/widgets/container.js rename to test/themesource/atlas_core/native/core/widgets/container.js index 04ed86f..3636ff5 --- a/test/theme/styles/native/js/core/widgets/container.js +++ b/test/themesource/atlas_core/native/core/widgets/container.js @@ -1,3 +1,4 @@ +import { container } from "../../variables"; /* DISCLAIMER: @@ -12,11 +13,15 @@ To customize any core styling, copy the part you want to customize to styles/nat ========================================================================== */ export const Container = { container: { - // All ViewStyle properties are allowed + // rippleColor & all ViewStyle properties are allowed }, + containerDisabled: { + // All ViewStyle properties are allowed + opacity: container.containerDisabled.opacity + } }; export const ScrollContainer = { container: { // All ViewStyle properties are allowed - }, + } }; diff --git a/test/themesource/atlas_core/native/core/widgets/datepicker.js b/test/themesource/atlas_core/native/core/widgets/datepicker.js new file mode 100644 index 0000000..7c80dc7 --- /dev/null +++ b/test/themesource/atlas_core/native/core/widgets/datepicker.js @@ -0,0 +1,89 @@ +var _a, _b, _c, _d; +import { background, font, input } from "../../variables"; +import { TextBox, TextBoxVertical } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Date Picker + + Default Class For Mendix Date Picker Widget +========================================================================== */ +export const DatePicker = { + container: { + // All ViewStyle properties are allowed + ...TextBox.container + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...TextBox.containerDisabled + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...TextBox.label + }, + labelDisabled: { + // All TextStyle properties are allowed + ...TextBox.labelDisabled + }, + pickerIOS: { + // All ViewStyle properties & "color" (type: string) are allowed + backgroundColor: background.primary, + color: font.colorTitle + }, + pickerBackdropIOS: { + // All ViewStyle properties are allowed + }, + pickerTopIOS: { + // All ViewStyle properties are allowed + backgroundColor: background.primary + }, + value: { + // All TextStyle properties are allowed + color: input.input.color, + borderColor: input.input.borderColor, + backgroundColor: input.input.backgroundColor, + fontSize: input.input.fontSize, + lineHeight: input.input.lineHeight, + fontFamily: font.family, + borderWidth: input.input.borderWidth, + borderRadius: input.input.borderRadius, + textAlignVertical: "center", + minWidth: input.input.minWidth, + minHeight: input.input.minHeight, + paddingHorizontal: input.input.paddingHorizontal, + paddingVertical: input.input.paddingVertical + }, + valueDisabled: { + // All TextStyle properties are allowed + color: (_a = TextBox.inputDisabled) === null || _a === void 0 ? void 0 : _a.color, + borderColor: (_b = TextBox.inputDisabled) === null || _b === void 0 ? void 0 : _b.borderColor, + backgroundColor: (_c = TextBox.inputDisabled) === null || _c === void 0 ? void 0 : _c.backgroundColor + }, + placeholder: { + // All TextStyle properties are allowed + color: input.input.placeholderTextColor + }, + placeholderDisabled: { + // All TextStyle properties are allowed + color: (_d = TextBox.inputDisabled) === null || _d === void 0 ? void 0 : _d.color + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + } +}; +export const DatePickerVertical = { + container: TextBoxVertical.container, + containerDisabled: TextBoxVertical.containerDisabled, + label: TextBoxVertical.label, + labelDisabled: TextBoxVertical.labelDisabled, + value: DatePicker.value, + valueDisabled: DatePicker.valueDisabled, + placeholder: DatePicker.placeholder, + validationMessage: TextBoxVertical.validationMessage +}; diff --git a/test/themesource/atlas_core/native/core/widgets/dropdown.js b/test/themesource/atlas_core/native/core/widgets/dropdown.js new file mode 100644 index 0000000..a947fdd --- /dev/null +++ b/test/themesource/atlas_core/native/core/widgets/dropdown.js @@ -0,0 +1,154 @@ +var _a, _b, _c; +import { font, input } from "../../variables"; +import { TextBox, TextBoxVertical } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Drop Down + + Default Class For Mendix Drop Down Widget +========================================================================== */ +export const DropDown = { + container: { + // All ViewStyle properties are allowed + ...TextBox.container + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...TextBox.containerDisabled + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...TextBox.label + }, + labelDisabled: { + // All TextStyle properties are allowed + ...TextBox.labelDisabled + }, + value: { + // All TextStyle properties & placeholderTextColor are allowed + color: input.input.color, + placeholderTextColor: input.input.placeholderTextColor, + fontSize: input.input.fontSize, + lineHeight: input.input.lineHeight, + fontFamily: font.family, + overflow: "hidden", + textAlignVertical: "center" + }, + valueDisabled: { + // All TextStyle properties are allowed + color: (_a = TextBox.inputDisabled) === null || _a === void 0 ? void 0 : _a.color, + borderColor: (_b = TextBox.inputDisabled) === null || _b === void 0 ? void 0 : _b.borderColor, + backgroundColor: (_c = TextBox.inputDisabled) === null || _c === void 0 ? void 0 : _c.backgroundColor + }, + valueFocused: { + // All TextStyle properties are allowed + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + }, + /* New dropdown styles start */ + valueContainer: { + // All ViewStyle properties & rippleColor & activeOpacity & underlayColor are allowed + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + rippleColor: input.valueContainer.rippleColor, + borderWidth: input.input.borderWidth, + borderRadius: input.input.borderRadius, + paddingHorizontal: input.input.paddingHorizontal, + paddingVertical: input.input.paddingVertical, + backgroundColor: input.input.backgroundColor, + borderColor: input.input.borderColor, + minWidth: input.input.minWidth, + minHeight: input.input.minHeight + }, + valueContainerDisabled: { + // All ViewStyle properties are allowed + }, + valueContainerFocused: { + // All ViewStyle properties are allowed + }, + iconStyle: { + // All TextStyle properties are allowed + color: input.input.color + }, + menuWrapper: { + // All ViewStyle properties are allowed + borderRadius: input.input.borderRadius, + shadowColor: "#000", + shadowOpacity: 0.2, + shadowRadius: 10, + elevation: 16, + backgroundColor: input.input.backgroundColor + }, + itemContainer: { + // All ViewStyle properties & rippleColor & activeOpacity & underlayColor are allowed + maxWidth: input.itemContainer.maxWidth, + paddingVertical: input.itemContainer.paddingVertical, + paddingHorizontal: input.itemContainer.paddingHorizontal, + backgroundColor: input.itemContainer.backgroundColor, + underlayColor: input.inputContainer.underlayColor, + overflow: "hidden" + }, + item: { + // All TextStyle properties are allowed + color: input.item.color, + fontSize: input.item.fontSize + }, + selectedItem: { + // All TextStyle properties are allowed + color: input.selectedItem.color, + fontSize: input.selectedItem.fontSize, + backgroundColor: "transparent" + }, + selectedItemContainer: { + // All ViewStyle properties are allowed + borderWidth: input.selectedItemContainer.borderWidth, + borderRadius: input.selectedItemContainer.borderRadius, + borderColor: input.selectedItemContainer.borderColor, + backgroundColor: input.selectedItemContainer.backgroundColor + }, + /* New dropdown styles end */ + useUniformDesign: true, + /* Old dropdown styles start */ + pickerIOS: { + // All ViewStyle properties are allowed + backgroundColor: input.input.backgroundColor + }, + pickerItemIOS: { + // All TextStyle properties are allowed + }, + pickerBackdropIOS: { + // All ViewStyle properties are allowed + }, + pickerTopIOS: { + // All ViewStyle properties are allowed + backgroundColor: input.input.backgroundColor + } + /* Old dropdown styles end */ +}; +export const DropDownVertical = { + container: TextBoxVertical.container, + label: TextBoxVertical.label, + value: DropDown.value, + valueFocused: DropDown.valueFocused, + validationMessage: TextBoxVertical.validationMessage, + valueContainer: DropDown.valueContainer, + valueContainerFocused: DropDown.valueContainerFocused, + iconStyle: DropDown.iconStyle, + menuWrapper: DropDown.menuWrapper, + itemContainer: DropDown.itemContainer, + item: DropDown.item, + useUniformDesign: DropDown.useUniformDesign, + pickerIOS: DropDown.pickerIOS, + pickerItemIOS: DropDown.pickerItemIOS, + pickerBackdropIOS: DropDown.pickerBackdropIOS, + pickerTopIOS: DropDown.pickerTopIOS +}; diff --git a/test/theme/styles/native/js/core/widgets/feedback.js b/test/themesource/atlas_core/native/core/widgets/feedback.js old mode 100755 new mode 100644 similarity index 60% rename from test/theme/styles/native/js/core/widgets/feedback.js rename to test/themesource/atlas_core/native/core/widgets/feedback.js index f1c2d82..85f5e40 --- a/test/theme/styles/native/js/core/widgets/feedback.js +++ b/test/themesource/atlas_core/native/core/widgets/feedback.js @@ -1,5 +1,5 @@ import { Platform } from "react-native"; -import { background, border, brand, button, contrast, font, input } from "../variables"; +import { background, border, brand, button, contrast, font, input } from "../../variables"; /* DISCLAIMER: @@ -17,50 +17,50 @@ export const com_mendix_widget_native_feedback_Feedback = { // All ViewStyle properties are allowed borderRadius: 0, backgroundColor: background.secondary, - borderTopLeftRadius: button.borderRadius, - borderBottomLeftRadius: button.borderRadius, + borderTopLeftRadius: button.container.borderRadius, + borderBottomLeftRadius: button.container.borderRadius, elevation: 1.5, shadowColor: "#000", shadowOpacity: 0.2, shadowRadius: 10, shadowOffset: { width: 0, - height: 2, - }, + height: 2 + } }, dialog: { // All ViewStyle properties are allowed - backgroundColor: background.primary, + backgroundColor: background.primary }, title: { // All TextStyle properties are allowed - color: font.color, - fontFamily: font.family, + color: font.colorTitle, + fontFamily: font.family }, textAreaInput: { - // All TextStyle properties are allowed - color: input.color, - borderColor: input.borderColor, - backgroundColor: input.backgroundColor, - selectionColor: input.selectionColor, - placeholderTextColor: input.placeholderTextColor, - underlineColorAndroid: input.underlineColorAndroid, + // placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + color: input.input.color, + borderColor: input.input.borderColor, + backgroundColor: input.input.backgroundColor, + selectionColor: input.input.selectionColor, + placeholderTextColor: input.input.placeholderTextColor, + underlineColorAndroid: "transparent", height: 100, - fontSize: input.fontSize, - fontFamily: input.fontFamily, - borderRadius: input.borderRadius, - borderTopWidth: input.borderWidth, - borderBottomWidth: input.borderWidth, + fontSize: input.input.fontSize, + fontFamily: font.family, + borderRadius: input.input.borderRadius, + borderTopWidth: input.input.borderWidth, + borderBottomWidth: input.input.borderWidth, borderWidth: Platform.select({ android: border.width }), textAlignVertical: "top", - paddingVertical: input.paddingVertical, - paddingHorizontal: input.paddingHorizontal, + paddingVertical: input.input.paddingVertical, + paddingHorizontal: input.input.paddingHorizontal }, switchLabel: { // All TextStyle properties are allowed - color: input.color, - fontSize: input.fontSize, - fontFamily: input.fontFamily, + color: input.label.color, + fontSize: input.label.fontSize, + fontFamily: font.family }, switchInput: { // thumbColorOn, thumbColorOff, trackColorOn, trackColorOff and all TextStyle properties are allowed @@ -70,16 +70,16 @@ export const com_mendix_widget_native_feedback_Feedback = { thumbColorOn: background.primary, trackColorOn: brand.success, thumbColorOff: contrast.regular, - trackColorOff: contrast.lower, + trackColorOff: contrast.lower }, button: { // Just these 3 properties are allowed color: brand.primary, borderColor: border.color, - borderWidth: border.width, + borderWidth: border.width // Required for IOS }, activityIndicator: { // Only color is allowed - color: font.color, - }, + color: font.colorTitle + } }; diff --git a/test/theme/styles/native/js/core/widgets/floatingactionbutton.js b/test/themesource/atlas_core/native/core/widgets/floatingactionbutton.js old mode 100755 new mode 100644 similarity index 52% rename from test/theme/styles/native/js/core/widgets/floatingactionbutton.js rename to test/themesource/atlas_core/native/core/widgets/floatingactionbutton.js index fc14ef4..47f449c --- a/test/theme/styles/native/js/core/widgets/floatingactionbutton.js +++ b/test/themesource/atlas_core/native/core/widgets/floatingactionbutton.js @@ -1,4 +1,4 @@ -import { background, brand, contrast, font } from "../variables"; +import { floatingActionButton, font } from "../../variables"; /* DISCLAIMER: @@ -14,57 +14,67 @@ To customize any core styling, copy the part you want to customize to styles/nat export const com_mendix_widget_native_floatingactionbutton_FloatingActionButton = { container: { // All ViewStyle properties are allowed - margin: 30, + margin: floatingActionButton.container.margin }, button: { // Size, ripplecolor and all ViewStyle properties are allowed - size: 50, - rippleColor: contrast.lowest, - backgroundColor: brand.primary, - elevation: 2, + size: floatingActionButton.button.size, + height: floatingActionButton.button.size, + width: floatingActionButton.button.size, + rippleColor: floatingActionButton.button.rippleColor, + backgroundColor: floatingActionButton.button.backgroundColor, + borderColor: floatingActionButton.button.borderColor, + borderRadius: floatingActionButton.button.size / 2, + borderWidth: 1, + elevation: 3, shadowColor: "#000", shadowOpacity: 0.3, shadowRadius: 4, shadowOffset: { width: 0, - height: 2, - }, + height: 2 + } }, buttonIcon: { // Size and color are allowed - size: font.sizeLarge, - color: contrast.lowest, + size: floatingActionButton.buttonIcon.size, + color: floatingActionButton.buttonIcon.color }, secondaryButton: { // Size and all ViewStyle properties are allowed - size: 30, - backgroundColor: background.secondary, + size: floatingActionButton.secondaryButton.size, + backgroundColor: floatingActionButton.secondaryButton.backgroundColor, elevation: 2, shadowColor: "#000", shadowOpacity: 0.3, shadowRadius: 4, shadowOffset: { width: 0, - height: 2, - }, + height: 2 + } }, secondaryButtonIcon: { // Size and color are allowed - size: font.sizeSmall, - color: contrast.high, + size: floatingActionButton.secondaryButtonIcon.size, + color: floatingActionButton.secondaryButtonIcon.color }, secondaryButtonCaption: { - // All TextStyle properties are allowed + // All TextStyle properties are allowed + color: floatingActionButton.secondaryButtonCaption.color, + fontSize: floatingActionButton.secondaryButtonCaption.fontSize, + lineHeight: floatingActionButton.secondaryButtonCaption.fontSize, + fontFamily: font.family }, secondaryButtonCaptionContainer: { // All ViewStyle properties are allowed + backgroundColor: floatingActionButton.secondaryButtonCaptionContainer.backgroundColor, marginHorizontal: 5, elevation: 2, shadowOpacity: 0.3, shadowRadius: 4, shadowOffset: { width: 0, - height: 2, - }, - }, + height: 2 + } + } }; diff --git a/test/theme/styles/native/js/core/widgets/images.js b/test/themesource/atlas_core/native/core/widgets/image.js old mode 100755 new mode 100644 similarity index 59% rename from test/theme/styles/native/js/core/widgets/images.js rename to test/themesource/atlas_core/native/core/widgets/image.js index b9b1383..8c5d2c9 --- a/test/theme/styles/native/js/core/widgets/images.js +++ b/test/themesource/atlas_core/native/core/widgets/image.js @@ -1,4 +1,4 @@ -import { contrast } from "../variables"; +import { contrast, image } from "../../variables"; /* DISCLAIMER: @@ -13,25 +13,43 @@ To customize any core styling, copy the part you want to customize to styles/nat ========================================================================== */ export const Image = { container: { - // RippleColor & All ViewStyle properties are allowed + // rippleColor & all ViewStyle properties are allowed rippleColor: contrast.lowest, + maxWidth: "100%", + maxHeight: "100%" + }, + containerDisabled: { + // All ViewStyle properties are allowed }, image: { // All ImageStyle properties are allowed maxWidth: "100%", maxHeight: "100%", - resizeMode: "cover", + resizeMode: "cover" }, + imageDisabled: { + // All ImageStyle properties are allowed + opacity: image.imageDisabled.opacity + } }; export const ImageViewer = { container: { // RippleColor & All ViewStyle properties are allowed rippleColor: contrast.lowest, + maxWidth: "100%", + maxHeight: "100%" + }, + containerDisabled: { + // All ViewStyle properties are allowed }, image: { // All ImageStyle properties are allowed maxWidth: "100%", maxHeight: "100%", - resizeMode: "cover", + resizeMode: "cover" }, + imageDisabled: { + // All ImageStyle properties are allowed + opacity: image.imageDisabled.opacity + } }; diff --git a/test/theme/styles/native/js/core/widgets/introscreen.js b/test/themesource/atlas_core/native/core/widgets/introscreen.js old mode 100755 new mode 100644 similarity index 57% rename from test/theme/styles/native/js/core/widgets/introscreen.js rename to test/themesource/atlas_core/native/core/widgets/introscreen.js index 86db1d5..4e2dc34 --- a/test/theme/styles/native/js/core/widgets/introscreen.js +++ b/test/themesource/atlas_core/native/core/widgets/introscreen.js @@ -1,5 +1,5 @@ import { isIphoneWithNotch } from "../helpers/_functions/device"; -import { background, button, contrast, font, spacing } from "../variables"; +import { font, spacing, introScreen } from "../../variables"; /* DISCLAIMER: @@ -16,27 +16,28 @@ To customize any core styling, copy the part you want to customize to styles/nat export const introScreenButtonPaginationAbove = { container: { // Ripplecolor and all ViewStyle properties are allowed + flex: 1, flexDirection: "row", alignSelf: "stretch", alignItems: "center", justifyContent: "center", - paddingVertical: spacing.regular, - backgroundColor: button.primary.backgroundColor, + paddingVertical: introScreen.buttonPaginationAbove.container.paddingVertical, + backgroundColor: introScreen.buttonPaginationAbove.container.backgroundColor }, icon: { // Size and color are allowed - color: button.primary.color, - size: button.fontSizeIcon, + color: introScreen.button.icon.color, + size: introScreen.button.icon.size }, caption: { // All TextStyle properties are allowed - color: button.primary.color, - fontSize: button.fontSize, + color: introScreen.button.caption.color, + fontSize: introScreen.button.caption.fontSize, fontFamily: font.family, - fontWeight: font.weightBold, - textTransform: "uppercase", - paddingHorizontal: spacing.smallest, - }, + fontWeight: introScreen.button.caption.fontWeight, + textTransform: introScreen.button.caption.textTransform, + paddingHorizontal: introScreen.button.caption.paddingHorizontal + } }; // Button styles when the chose to show the indicator between the buttons export const introScreenButtonPaginationBetween = { @@ -44,34 +45,34 @@ export const introScreenButtonPaginationBetween = { // Ripplecolor and all ViewStyle properties are allowed flexDirection: "row", alignItems: "center", - justifyContent: "center", + justifyContent: "center" }, icon: { // Size and color are allowed - color: font.color, - size: button.fontSizeIcon, + color: introScreen.button.icon.color, + size: introScreen.button.icon.size }, caption: { // All TextStyle properties are allowed - color: font.color, - fontSize: button.fontSize, + color: introScreen.button.caption.color, + fontSize: introScreen.button.caption.fontSize, fontFamily: font.family, - fontWeight: font.weightBold, - textTransform: "uppercase", - paddingHorizontal: spacing.smallest, - }, + fontWeight: introScreen.button.caption.fontWeight, + textTransform: introScreen.button.caption.textTransform, + paddingHorizontal: introScreen.button.caption.paddingHorizontal + } }; // Default styles export const com_mendix_widget_native_introscreen_IntroScreen = { fullscreenContainer: { // All ViewStyle properties are allowed - backgroundColor: background.primary, + backgroundColor: introScreen.fullscreenContainer.backgroundColor }, popupContainer: { // All ViewStyle properties are allowed - paddingVertical: 150, - paddingHorizontal: 50, - backgroundColor: `rgba(0, 0, 0, 0.5)`, + paddingVertical: introScreen.popupContainer.paddingVertical, + paddingHorizontal: introScreen.popupContainer.paddingHorizontal, + backgroundColor: introScreen.popupContainer.backgroundColor }, // Pagination styles paginationContainer: { @@ -79,44 +80,48 @@ export const com_mendix_widget_native_introscreen_IntroScreen = { position: "absolute", left: 0, right: 0, + width: "100%", + marginTop: spacing.largest, bottom: isIphoneWithNotch ? 22 : 0, justifyContent: "space-between", - alignItems: "center", + alignItems: "center" }, paginationText: { // All TextStyle properties are allowed - color: font.color, - fontSize: font.size, - fontFamily: font.family, + color: introScreen.pagination.text.color, + fontSize: introScreen.pagination.text.fontSize, + fontFamily: font.family }, dotStyle: { // All ViewStyle properties are allowed - backgroundColor: contrast.lower, - transform: [{ scale: 0.5 }], + width: introScreen.pagination.dotStyle.size, + height: introScreen.pagination.dotStyle.size, + backgroundColor: introScreen.pagination.dotStyle.backgroundColor }, activeDotStyle: { // All ViewStyle properties are allowed - backgroundColor: background.brandPrimary, + width: introScreen.pagination.activeDotStyle.size, + height: introScreen.pagination.activeDotStyle.size, + backgroundColor: introScreen.pagination.activeDotStyle.backgroundColor }, // Button styles paginationAbove: { buttonsContainer: { // All ViewStyle properties are allowed flex: 1, - marginTop: 30, flexDirection: "row", justifyContent: "center", - width: "100%", + width: "100%" }, buttonSkip: introScreenButtonPaginationAbove, buttonPrevious: introScreenButtonPaginationAbove, buttonNext: introScreenButtonPaginationAbove, - buttonDone: introScreenButtonPaginationAbove, + buttonDone: introScreenButtonPaginationAbove }, paginationBetween: { buttonSkip: introScreenButtonPaginationBetween, buttonPrevious: introScreenButtonPaginationBetween, buttonNext: introScreenButtonPaginationBetween, - buttonDone: introScreenButtonPaginationBetween, - }, + buttonDone: introScreenButtonPaginationBetween + } }; diff --git a/test/theme/styles/native/js/core/widgets/layoutgrid.js b/test/themesource/atlas_core/native/core/widgets/layoutgrid.js old mode 100755 new mode 100644 similarity index 64% rename from test/theme/styles/native/js/core/widgets/layoutgrid.js rename to test/themesource/atlas_core/native/core/widgets/layoutgrid.js index 3a73aca..a0c8365 --- a/test/theme/styles/native/js/core/widgets/layoutgrid.js +++ b/test/themesource/atlas_core/native/core/widgets/layoutgrid.js @@ -1,4 +1,4 @@ -import { layoutGrid } from "../variables"; +import { layoutGrid } from "../../variables"; /* DISCLAIMER: @@ -12,110 +12,110 @@ To customize any core styling, copy the part you want to customize to styles/nat Default Class For Mendix Layoutgrid Widget ========================================================================== */ export const LayoutGrid = { - container: {}, + container: {} }; export const row = { container: { flexDirection: "row", flexWrap: "wrap", - marginHorizontal: -layoutGrid.gutterSize, - }, + marginHorizontal: -layoutGrid.gutterSize + } }; export const col = { container: { flex: 1, - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const colFitToContent = { container: { flex: -1, - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col1 = { container: { flexBasis: "8.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col2 = { container: { flexBasis: "16.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col3 = { container: { flexBasis: "25%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col4 = { container: { flexBasis: "33.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col5 = { container: { flexBasis: "41.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col6 = { container: { flexBasis: "50%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col7 = { container: { flexBasis: "58.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col8 = { container: { flexBasis: "66.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col9 = { container: { flexBasis: "75%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col10 = { container: { flexBasis: "83.333%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col11 = { container: { flexBasis: "91.666%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const col12 = { container: { flexBasis: "100%", - paddingHorizontal: layoutGrid.gutterSize, - }, + paddingHorizontal: layoutGrid.gutterSize + } }; export const noGutters = { container: { paddingLeft: 0, paddingRight: 0, - paddingHorizontal: 0, - }, + paddingHorizontal: 0 + } }; export const noGuttersRow = { container: { marginLeft: 0, marginRight: 0, - marginHorizontal: 0, - }, + marginHorizontal: 0 + } }; diff --git a/test/themesource/atlas_core/native/core/widgets/linechart.js b/test/themesource/atlas_core/native/core/widgets/linechart.js new file mode 100644 index 0000000..e0a6cfa --- /dev/null +++ b/test/themesource/atlas_core/native/core/widgets/linechart.js @@ -0,0 +1,168 @@ +import { border, brand, font, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Line Chart + + Default Class For Mendix Line Chart Widget +========================================================================== */ +export const com_mendix_widget_native_linechart_LineChart = { + container: { + // All ViewStyle properties are allowed + }, + errorMessage: { + // All TextStyle properties are allowed + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + }, + chart: { + // All ViewStyle properties are allowed + }, + grid: { + /* + Allowed properties: + - backgroundColor (string) + - dashArray (string) + - lineColor (string) + - lineWidth (number) + - padding (number) + - paddingBottom (number) + - paddingHorizontal (number) + - paddingLeft (number) + - paddingRight (number) + - paddingTop (number) + - paddingVertical (number) + */ + lineColor: border.color, + paddingBottom: 32, + paddingLeft: 32, + paddingRight: 8, + paddingTop: 8 + }, + xAxis: { + /* + Allowed properties: + - color (string) + - dashArray (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + - lineColor (string) + - lineWidth (number) + */ + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + lineColor: border.color, + label: { + /* + All TextStyle properties are allowed and: + - relativePositionGrid ("bottom" or "right") + */ + color: font.colorParagraph, + alignSelf: "center", + marginHorizontal: 0, + marginVertical: spacing.small, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + relativePositionGrid: "bottom" + } + }, + yAxis: { + /* + Allowed properties: + - color (string) + - dashArray (string) + - fontFamily (string) + - fontSize (number) + - fontStyle ("normal" or "italic") + - fontWeight ("normal" or "bold" or "100" or "200" or "300" or "400" or "500" or "600" or "700" or "800" or "900") + - lineColor (string) + - lineWidth (number) + */ + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + lineColor: border.color, + label: { + /* + All TextStyle properties are allowed and: + - relativePositionGrid ("top" or "left") + */ + color: font.colorParagraph, + marginHorizontal: 0, + marginVertical: spacing.small, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal, + relativePositionGrid: "top" + } + }, + lines: { + /* + Allowed properties: + - lineColorPalette (string with array of colors separated by ';') + */ + lineColorPalette: Object.values(brand) + .map((color, index, brandColors) => (index === brandColors.length - 1 ? color : `${color};`)) + .join(""), + customLineStyles: { + any_custom_line_style_name: { + line: { + /* + Allowed properties: + - dashArray (string) + - ending ("flat" or "round") + - lineColor (string) + - lineWidth (number) + */ + }, + markers: { + /* + Allowed properties: + - backgroundColor (string) + - borderColor (string) + - borderWidth (number) + - display ("false" or "underneath" or "onTop") + - size (number) + - symbol ("circle" or "diamond" or "plus" or "minus" or "square" or "star" or "triangleDown" or "triangleUp") + */ + } + } + } + }, + legend: { + container: { + // All ViewStyle properties are allowed + justifyContent: "flex-start", + marginHorizontal: 0, + marginVertical: spacing.small + }, + item: { + // All ViewStyle properties are allowed + padding: 0, + paddingRight: spacing.regular + }, + indicator: { + // All ViewStyle properties are allowed + marginRight: spacing.small + }, + label: { + // All TextStyle properties are allowed + color: font.colorTitle, + fontFamily: font.family, + fontSize: font.sizeSmall, + fontWeight: font.weightNormal + } + } +}; diff --git a/test/theme/styles/native/js/core/widgets/listviews.js b/test/themesource/atlas_core/native/core/widgets/listview.js old mode 100755 new mode 100644 similarity index 81% rename from test/theme/styles/native/js/core/widgets/listviews.js rename to test/themesource/atlas_core/native/core/widgets/listview.js index 22be896..5ec4e2c --- a/test/theme/styles/native/js/core/widgets/listviews.js +++ b/test/themesource/atlas_core/native/core/widgets/listview.js @@ -12,9 +12,13 @@ To customize any core styling, copy the part you want to customize to styles/nat ========================================================================== */ export const ListView = { container: { - // numColumns and all ViewStyle properties are allowed + // All ViewStyle properties are allowed }, listItem: { // All ViewStyle properties are allowed }, + listItemDisabled: { + // All ViewStyle properties are allowed + opacity: 0.6 + } }; diff --git a/test/theme/styles/native/js/core/widgets/listviewswipe.js b/test/themesource/atlas_core/native/core/widgets/listviewswipe.js old mode 100755 new mode 100644 similarity index 74% rename from test/theme/styles/native/js/core/widgets/listviewswipe.js rename to test/themesource/atlas_core/native/core/widgets/listviewswipe.js index 7adec6e..6344352 --- a/test/theme/styles/native/js/core/widgets/listviewswipe.js +++ b/test/themesource/atlas_core/native/core/widgets/listviewswipe.js @@ -1,4 +1,4 @@ -import { background } from "../variables"; +import { background, listViewSwipe } from "../../variables"; /* DISCLAIMER: @@ -17,22 +17,22 @@ export const com_mendix_widget_native_listviewswipe_ListViewSwipe = { flex: 1, alignItems: "stretch", justifyContent: "space-between", - backgroundColor: background.primary, + backgroundColor: background.primary }, leftAction: { // PanelSize & All ViewStyle properties are allowed - panelSize: 200, + panelSize: listViewSwipe.leftAction.panelSize, flex: 1, flexDirection: "row", alignItems: "stretch", - backgroundColor: background.primary, + backgroundColor: listViewSwipe.leftAction.backgroundColor }, rightAction: { // PanelSize & All ViewStyle properties are allowed - panelSize: 200, + panelSize: listViewSwipe.rightAction.panelSize, flex: 1, flexDirection: "row", alignItems: "stretch", - backgroundColor: background.primary, - }, + backgroundColor: listViewSwipe.rightAction.backgroundColor + } }; diff --git a/test/theme/styles/native/js/core/widgets/maps.js b/test/themesource/atlas_core/native/core/widgets/maps.js old mode 100755 new mode 100644 similarity index 87% rename from test/theme/styles/native/js/core/widgets/maps.js rename to test/themesource/atlas_core/native/core/widgets/maps.js index 3036260..1f5e42b --- a/test/theme/styles/native/js/core/widgets/maps.js +++ b/test/themesource/atlas_core/native/core/widgets/maps.js @@ -1,4 +1,4 @@ -import { brand } from "../variables"; +import { brand } from "../../variables"; /* DISCLAIMER: @@ -16,18 +16,18 @@ export const com_mendix_widget_native_maps_Maps = { // All ViewStyle properties are allowed flex: 1, maxWidth: "100%", - aspectRatio: 4 / 2, + aspectRatio: 4 / 2 }, loadingOverlay: { // All ViewStyle properties are allowed }, loadingIndicator: { // Only color is allowed - color: brand.primary, + color: brand.primary }, marker: { // Only color & opacity are allowed color: brand.primary, - opacity: 1, - }, + opacity: 1 + } }; diff --git a/test/theme/styles/native/js/core/widgets/navigation.js b/test/themesource/atlas_core/native/core/widgets/navigation.js old mode 100755 new mode 100644 similarity index 74% rename from test/theme/styles/native/js/core/widgets/navigation.js rename to test/themesource/atlas_core/native/core/widgets/navigation.js index 7ddc09b..e77a35c --- a/test/theme/styles/native/js/core/widgets/navigation.js +++ b/test/themesource/atlas_core/native/core/widgets/navigation.js @@ -1,4 +1,4 @@ -import { border, font, navigation, spacing } from "../variables"; +import { border, font, navigation, spacing } from "../../variables"; /* DISCLAIMER: @@ -7,69 +7,69 @@ Customizing core files will make updating Atlas much more difficult in the futur To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. ========================================================================== - TopBar / BottomBar / ProgressOverlay + BottomBar / ProgressOverlay - Default Class For Mendix TopBar, BottomBar and ProgressOverlay + Default Class For Mendix BottomBar and ProgressOverlay ========================================================================== */ export const navigationStyle = { bottomBar: { container: { // All ViewStyle properties are allowed - backgroundColor: navigation.bottomBar.backgroundColor, + backgroundColor: navigation.bottomBar.backgroundColor }, label: { // All TextStyle properties are allowed color: navigation.bottomBar.color, fontFamily: font.family, - fontSize: navigation.bottomBar.fontSize, + fontSize: navigation.bottomBar.fontSize }, selectedLabel: { // All TextStyle properties are allowed color: navigation.bottomBar.selectedTextColor, fontFamily: font.family, - fontSize: navigation.bottomBar.fontSize, + fontSize: navigation.bottomBar.fontSize }, icon: { // All TextStyle properties are allowed color: navigation.bottomBar.color, - fontSize: navigation.bottomBar.iconSize, + fontSize: navigation.bottomBar.iconSize }, selectedIcon: { // All TextStyle properties are allowed color: navigation.bottomBar.selectedIconColor, - fontSize: navigation.bottomBar.iconSize, - }, + fontSize: navigation.bottomBar.iconSize + } }, progressOverlay: { background: { // All ViewStyle properties are allowed - backgroundColor: navigation.progressOverlay.backgroundColor, + backgroundColor: navigation.progressOverlay.backgroundColor }, container: { // All ViewStyle properties are allowed backgroundColor: navigation.progressOverlay.containerBackgroundColor, paddingHorizontal: spacing.largest, paddingVertical: spacing.large, - borderRadius: border.radius, - elevation: 1.5, + borderRadius: border.radiusSmall, + elevation: navigation.progressOverlay.elevation, shadowColor: navigation.progressOverlay.shadowColor, - shadowOpacity: 0.1, - shadowRadius: 10, + shadowOpacity: navigation.progressOverlay.shadowOpacity, + shadowRadius: navigation.progressOverlay.shadowRadius, shadowOffset: { width: 0, - height: 2, - }, + height: 2 + } }, activityIndicator: { // Color, Size & All ViewStyle properties are allowed - color: navigation.progressOverlay.activityIndicatorColor, + color: navigation.progressOverlay.activityIndicatorColor }, text: { // All TextStyle properties are allowed color: navigation.progressOverlay.color, marginTop: spacing.small, fontFamily: font.family, - fontSize: navigation.progressOverlay.fontSize, - }, - }, + fontSize: navigation.progressOverlay.fontSize + } + } }; diff --git a/test/theme/styles/native/js/core/widgets/pagetitle.js b/test/themesource/atlas_core/native/core/widgets/pagetitle.js old mode 100755 new mode 100644 similarity index 79% rename from test/theme/styles/native/js/core/widgets/pagetitle.js rename to test/themesource/atlas_core/native/core/widgets/pagetitle.js index 8946e38..aa20b25 --- a/test/theme/styles/native/js/core/widgets/pagetitle.js +++ b/test/themesource/atlas_core/native/core/widgets/pagetitle.js @@ -1,4 +1,4 @@ -import { font } from "../variables"; +import { font } from "../../variables"; import { TextHeading1 } from "./typography"; /* @@ -16,5 +16,9 @@ export const PageTitle = { container: { // All ViewStyle properties are allowed }, - text: Object.assign(Object.assign({}, TextHeading1.text), { color: font.color }), + text: { + // All TextStyle properties are allowed + ...TextHeading1.text, + color: font.colorTitle + } }; diff --git a/test/theme/styles/native/js/core/widgets/popupmenu.js b/test/themesource/atlas_core/native/core/widgets/popupmenu.js old mode 100755 new mode 100644 similarity index 67% rename from test/theme/styles/native/js/core/widgets/popupmenu.js rename to test/themesource/atlas_core/native/core/widgets/popupmenu.js index ca69077..0cb7700 --- a/test/theme/styles/native/js/core/widgets/popupmenu.js +++ b/test/themesource/atlas_core/native/core/widgets/popupmenu.js @@ -1,4 +1,4 @@ -import { brand, font } from "../variables"; +import { brand, contrast, font, background, border } from "../../variables"; /* DISCLAIMER: @@ -14,35 +14,46 @@ To customize any core styling, copy the part you want to customize to styles/nat export const com_mendix_widget_native_popupmenu_PopupMenu = { container: { // All ViewStyle properties are allowed + backgroundColor: background.secondary, borderRadius: 10, shadowColor: "#000", shadowOpacity: 0.2, shadowRadius: 10, - elevation: 16, + elevation: 16 + }, + custom: { + container: { + // All ViewStyle properties are allowed + }, + itemStyle: { + rippleColor: contrast.lower + } }, basic: { - dividerColor: font.color, + dividerColor: border.color, + container: { + // All ViewStyle properties are allowed + height: 40 + }, itemStyle: { ellipsizeMode: "tail", + rippleColor: contrast.lower, defaultStyle: { // All TextStyle properties are allowed - color: font.color, + fontSize: font.size, + color: font.colorTitle }, primaryStyle: { // All TextStyle properties are allowed - color: brand.primary, + color: brand.primary }, dangerStyle: { // All TextStyle properties are allowed - color: brand.danger, + color: brand.danger }, customStyle: { // All TextStyle properties are allowed - }, - }, - containerStyle: { - // All ViewStyle properties are allowed - height: 40, - }, - }, + } + } + } }; diff --git a/test/theme/styles/native/js/core/widgets/progressbar.js b/test/themesource/atlas_core/native/core/widgets/progressbar.js old mode 100755 new mode 100644 similarity index 52% rename from test/theme/styles/native/js/core/widgets/progressbar.js rename to test/themesource/atlas_core/native/core/widgets/progressbar.js index df59147..7e4dc94 --- a/test/theme/styles/native/js/core/widgets/progressbar.js +++ b/test/themesource/atlas_core/native/core/widgets/progressbar.js @@ -1,6 +1,5 @@ -import { Platform } from "react-native"; -import { anyColorToRgbString } from "../helpers/_functions/convertcolors"; -import { brand, font, input } from "../variables"; +import { progressBar } from "../../variables"; +import { TextBox } from "./textbox"; /* DISCLAIMER: @@ -16,26 +15,21 @@ To customize any core styling, copy the part you want to customize to styles/nat export const com_mendix_widget_native_progressbar_ProgressBar = { container: { // All ViewStyle properties are allowed - alignSelf: "stretch", + alignSelf: "stretch" + }, + bar: { + // All ViewStyle properties are allowed + height: progressBar.bar.height, + borderWidth: 0, + borderRadius: progressBar.bar.height / 2, + backgroundColor: progressBar.bar.backgroundColor }, - bar: Object.assign({}, Platform.select({ - ios: { - borderColor: brand.primary, - }, - android: { - borderRadius: 0, - borderWidth: 0, - backgroundColor: `rgba(${anyColorToRgbString(brand.primary)},0.2)`, - }, - })), fill: { - //Only the backgroundColor property is allowed - backgroundColor: brand.primary, + // Only the backgroundColor property is allowed + backgroundColor: progressBar.fill.backgroundColor }, validationMessage: { // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, + ...TextBox.validationMessage + } }; diff --git a/test/theme/styles/native/js/core/widgets/progresscircle.js b/test/themesource/atlas_core/native/core/widgets/progresscircle.js old mode 100755 new mode 100644 similarity index 64% rename from test/theme/styles/native/js/core/widgets/progresscircle.js rename to test/themesource/atlas_core/native/core/widgets/progresscircle.js index 522a5eb..a0cd98c --- a/test/theme/styles/native/js/core/widgets/progresscircle.js +++ b/test/themesource/atlas_core/native/core/widgets/progresscircle.js @@ -1,4 +1,5 @@ -import { brand, contrast, font, input } from "../variables"; +import { font, progressCircle } from "../../variables"; +import { TextBox } from "./textbox"; /* DISCLAIMER: @@ -17,26 +18,24 @@ export const com_mendix_widget_native_progresscircle_ProgressCircle = { }, circle: { // Only the size & borderWidth & borderColor properties are allowed - size: 80, - borderWidth: 0, + size: progressCircle.circle.size, + borderWidth: 0 }, fill: { // Only the width & backgroundColor & lineCapRounded properties are allowed - backgroundColor: brand.primary, - width: 5, - lineCapRounded: true, + width: progressCircle.fill.width, + lineCapRounded: progressCircle.fill.lineCapRounded, + backgroundColor: progressCircle.fill.backgroundColor }, text: { // All TextStyle properties are allowed - color: contrast.regular, - fontSize: font.size, - fontWeight: font.weightSemiBold, - fontFamily: font.family, + color: progressCircle.text.color, + fontSize: progressCircle.text.fontSize, + fontWeight: progressCircle.text.fontWeight, + fontFamily: font.family }, validationMessage: { // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, + ...TextBox.validationMessage + } }; diff --git a/test/theme/styles/native/js/core/widgets/qrcode.js b/test/themesource/atlas_core/native/core/widgets/qrcode.js old mode 100755 new mode 100644 similarity index 87% rename from test/theme/styles/native/js/core/widgets/qrcode.js rename to test/themesource/atlas_core/native/core/widgets/qrcode.js index c7f8113..ce19cdb --- a/test/theme/styles/native/js/core/widgets/qrcode.js +++ b/test/themesource/atlas_core/native/core/widgets/qrcode.js @@ -1,4 +1,4 @@ -import { background, contrast } from "../variables"; +import { background, contrast } from "../../variables"; /* DISCLAIMER: @@ -19,6 +19,6 @@ export const com_mendix_widget_native_qrcode_QRCode = { // Only size, color and backgroundColor are allowed size: 100, color: contrast.highest, - backgroundColor: background.primary, - }, + backgroundColor: background.primary + } }; diff --git a/test/theme/styles/native/js/core/widgets/rangeslider.js b/test/themesource/atlas_core/native/core/widgets/rangeslider.js old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/native/js/core/widgets/rangeslider.js rename to test/themesource/atlas_core/native/core/widgets/rangeslider.js diff --git a/test/theme/styles/native/js/core/widgets/rating.js b/test/themesource/atlas_core/native/core/widgets/rating.js old mode 100755 new mode 100644 similarity index 71% rename from test/theme/styles/native/js/core/widgets/rating.js rename to test/themesource/atlas_core/native/core/widgets/rating.js index 7ab06d9..a6250cf --- a/test/theme/styles/native/js/core/widgets/rating.js +++ b/test/themesource/atlas_core/native/core/widgets/rating.js @@ -1,4 +1,4 @@ -import { spacing } from "../variables"; +import { spacing, rating } from "../../variables"; /* DISCLAIMER: @@ -13,15 +13,18 @@ To customize any core styling, copy the part you want to customize to styles/nat ========================================================================== */ export const com_mendix_widget_native_rating_Rating = { container: { - // All ViewStyle properties are allowed + // All ViewStyle properties are allowed + justifyContent: "center" }, containerDisabled: { // All ViewStyle properties are allowed - opacity: 0.5, + opacity: rating.containerDisabled.opacity }, icon: { // Size, color, selectedColor & all ViewStyle properties are allowed - size: 30, + size: rating.icon.size, marginRight: spacing.smaller, - }, + color: rating.icon.color, + selectedColor: rating.icon.selectedColor + } }; diff --git a/test/themesource/atlas_core/native/core/widgets/referenceselector.js b/test/themesource/atlas_core/native/core/widgets/referenceselector.js new file mode 100644 index 0000000..51dd534 --- /dev/null +++ b/test/themesource/atlas_core/native/core/widgets/referenceselector.js @@ -0,0 +1,121 @@ +import { DropDown, DropDownVertical } from "./dropdown"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Reference Selector + + Default Class For Mendix Reference Selector Widget +========================================================================== */ +export const ReferenceSelector = { + container: { + // All ViewStyle properties are allowed + ...DropDown.container + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...DropDown.containerDisabled + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...DropDown.label + }, + labelDisabled: { + // All TextStyle properties are allowed + ...DropDown.labelDisabled + }, + value: { + // All TextStyle properties & placeholderTextColor are allowed + ...DropDown.value + }, + valueDisabled: { + // All TextStyle properties are allowed + ...DropDown.valueDisabled + }, + valueFocused: { + // All TextStyle properties are allowed + ...DropDown.valueFocused + }, + validationMessage: { + // All TextStyle properties are allowed + ...DropDown.validationMessage + }, + /* New dropdown styles start */ + valueContainer: { + // All ViewStyle properties & rippleColor are allowed + ...DropDown.valueContainer + }, + valueContainerDisabled: { + // All ViewStyle properties are allowed + }, + valueContainerFocused: { + // All ViewStyle properties are allowed + ...DropDown.valueContainerFocused + }, + iconStyle: { + // All TextStyle properties are allowed + ...DropDown.iconStyle + }, + menuWrapper: { + // All ViewStyle properties are allowed + ...DropDown.menuWrapper + }, + itemContainer: { + // All ViewStyle properties are allowed + ...DropDown.itemContainer + }, + item: { + // All TextStyle properties are allowed + ...DropDown.item + }, + selectedItem: { + // All TextStyle properties are allowed + ...DropDown.selectedItem + }, + selectedItemContainer: { + // All ViewStyle properties are allowed + ...DropDown.selectedItemContainer + }, + /* New dropdown styles end */ + useUniformDesign: DropDown.useUniformDesign, + /* Old dropdown styles start */ + pickerIOS: { + // All ViewStyle properties are allowed + ...DropDown.pickerIOS + }, + pickerItemIOS: { + // All TextStyle properties are allowed + ...DropDown.pickerItemIOS + }, + pickerBackdropIOS: { + // All ViewStyle properties are allowed + ...DropDown.pickerBackdropIOS + }, + pickerTopIOS: { + // All ViewStyle properties are allowed + ...DropDown.pickerTopIOS + } + /* Old dropdown styles end */ +}; +export const ReferenceSelectorVertical = { + container: DropDownVertical.container, + label: DropDownVertical.label, + value: DropDownVertical.value, + valueFocused: DropDownVertical.valueFocused, + validationMessage: DropDownVertical.validationMessage, + valueContainer: DropDownVertical.valueContainer, + valueContainerFocused: DropDownVertical.valueContainerFocused, + iconStyle: DropDownVertical.iconStyle, + menuWrapper: DropDownVertical.menuWrapper, + itemContainer: DropDownVertical.itemContainer, + item: DropDownVertical.item, + useUniformDesign: DropDownVertical.useUniformDesign, + pickerIOS: DropDownVertical.pickerIOS, + pickerItemIOS: DropDownVertical.pickerItemIOS, + pickerBackdropIOS: DropDownVertical.pickerBackdropIOS, + pickerTopIOS: DropDownVertical.pickerTopIOS +}; diff --git a/test/theme/styles/native/js/core/widgets/safeareaview.js b/test/themesource/atlas_core/native/core/widgets/safeareaview.js old mode 100755 new mode 100644 similarity index 98% rename from test/theme/styles/native/js/core/widgets/safeareaview.js rename to test/themesource/atlas_core/native/core/widgets/safeareaview.js index dd81a25..5d187b5 --- a/test/theme/styles/native/js/core/widgets/safeareaview.js +++ b/test/themesource/atlas_core/native/core/widgets/safeareaview.js @@ -13,5 +13,5 @@ To customize any core styling, copy the part you want to customize to styles/nat export const com_mendix_widget_native_safeareaview_SafeAreaView = { container: { // All ViewStyle properties are allowed - }, + } }; diff --git a/test/themesource/atlas_core/native/core/widgets/slider.js b/test/themesource/atlas_core/native/core/widgets/slider.js new file mode 100644 index 0000000..2e8f83d --- /dev/null +++ b/test/themesource/atlas_core/native/core/widgets/slider.js @@ -0,0 +1,76 @@ +import { slider } from "../../variables"; +import { TextBox } from "./textbox"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Slider + + Default Class For Mendix Slider Widget +========================================================================== */ +export const com_mendix_widget_native_slider_Slider = { + container: { + // All ViewStyle properties are allowed + alignSelf: "stretch" + }, + track: { + // All ViewStyle properties are allowed + height: slider.track.height, + backgroundColor: slider.track.backgroundColor + }, + trackDisabled: { + // All ViewStyle properties are allowed + height: slider.track.height, + backgroundColor: slider.trackDisabled.backgroundColor, + opacity: slider.trackDisabled.opacity + }, + highlight: { + // All ViewStyle properties are allowed + height: slider.track.height, + backgroundColor: slider.highlight.backgroundColor + }, + highlightDisabled: { + // All ViewStyle properties are allowed + height: slider.track.height, + backgroundColor: slider.highlightDisabled.backgroundColor + }, + marker: { + // All ViewStyle properties are allowed + backgroundColor: slider.marker.backgroundColor, + width: slider.marker.size, + height: slider.marker.size, + borderRadius: slider.marker.size / 2, + borderColor: slider.marker.borderColor, + elevation: 2, + shadowColor: "#000", + shadowOpacity: 0.1, + shadowOffset: { width: 0, height: 1 } + }, + markerActive: { + // All ViewStyle properties are allowed + width: slider.markerActive.size, + height: slider.markerActive.size, + borderRadius: slider.markerActive.size / 2, + borderWidth: 0 + }, + markerDisabled: { + // All ViewStyle properties are allowed + backgroundColor: slider.markerDisabled.backgroundColor, + width: slider.markerDisabled.size, + height: slider.markerDisabled.size, + borderRadius: slider.markerDisabled.size / 2, + borderColor: slider.markerDisabled.borderColor, + elevation: 2, + shadowColor: "#000", + shadowOpacity: 0.1, + shadowOffset: { width: 0, height: 1 } + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + } +}; diff --git a/test/theme/styles/native/js/core/widgets/tabcontainer.js b/test/themesource/atlas_core/native/core/widgets/tabcontainer.js old mode 100755 new mode 100644 similarity index 58% rename from test/theme/styles/native/js/core/widgets/tabcontainer.js rename to test/themesource/atlas_core/native/core/widgets/tabcontainer.js index 62e6960..1f68372 --- a/test/theme/styles/native/js/core/widgets/tabcontainer.js +++ b/test/themesource/atlas_core/native/core/widgets/tabcontainer.js @@ -1,4 +1,4 @@ -import { font, spacing, tabContainer } from "../variables"; +import { badge, font, tabContainer } from "../../variables"; /* DISCLAIMER: @@ -14,38 +14,58 @@ To customize any core styling, copy the part you want to customize to styles/nat export const TabContainer = { container: { // All ViewStyle properties are allowed - flex: 1, + flex: 1 }, tabBar: { // bounces, pressColor, pressOpacity, scrollEnabled and all ViewStyle properties are allowed bounces: true, - pressColor: tabContainer.tabBar.pressColor, + scrollEnabled: false, pressOpacity: 0.8, + pressColor: tabContainer.tabBar.pressColor, backgroundColor: tabContainer.tabBar.backgroundColor, - scrollEnabled: false, - paddingVertical: spacing.smaller, + height: 48, + justifyContent: "center" }, indicator: { // All ViewStyle properties are allowed backgroundColor: tabContainer.indicator.backgroundColor, - height: tabContainer.indicator.height, + height: tabContainer.indicator.height }, tab: { // All ViewStyle properties are allowed - paddingVertical: spacing.smaller, + padding: undefined, + minHeight: undefined, + paddingVertical: tabContainer.tab.paddingVertical }, label: { // All TextStyle properties are allowed color: tabContainer.label.color, + fontSize: tabContainer.label.fontSize, fontFamily: font.family, fontWeight: tabContainer.label.fontWeight, - textTransform: tabContainer.label.textTransform, + textTransform: tabContainer.label.textTransform }, activeLabel: { // All TextStyle properties are allowed color: tabContainer.activeLabel.color, + fontSize: tabContainer.activeLabel.fontSize, fontFamily: font.family, fontWeight: tabContainer.activeLabel.fontWeight, - textTransform: tabContainer.activeLabel.textTransform, + textTransform: tabContainer.activeLabel.textTransform }, + badgeContainer: { + // All ViewStyle properties are allowed + borderRadius: tabContainer.badgeContainer.borderRadius, + backgroundColor: badge.default.backgroundColor, + paddingVertical: tabContainer.badgeContainer.paddingVertical, + paddingHorizontal: tabContainer.badgeContainer.paddingHorizontal, + marginLeft: 8 + }, + badgeCaption: { + // All TextStyle properties are allowed + fontSize: font.size, + color: badge.default.color, + fontFamily: font.family, + fontWeight: badge.fontWeight + } }; diff --git a/test/themesource/atlas_core/native/core/widgets/textarea.js b/test/themesource/atlas_core/native/core/widgets/textarea.js new file mode 100644 index 0000000..ab4f552 --- /dev/null +++ b/test/themesource/atlas_core/native/core/widgets/textarea.js @@ -0,0 +1,83 @@ +var _a, _b, _c, _d, _e, _f; +import { TextBox, TextBoxVertical } from "./textbox"; +import { input } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Text Area + + Default Class For Mendix Text Area Widget +========================================================================== */ +export const TextArea = { + container: { + // All ViewStyle properties are allowed + ...TextBox.container + }, + containerDisabled: { + // All ViewStyle properties are allowed + ...TextBox.containerDisabled + }, + label: { + // numberOfLines and all TextStyle properties are allowed + ...TextBox.label, + lineHeight: input.input.lineHeight, + height: "100%", + textAlignVertical: "top", + paddingVertical: (_a = TextBox.input) === null || _a === void 0 ? void 0 : _a.paddingVertical + }, + labelDisabled: { + color: (_b = TextBox.labelDisabled) === null || _b === void 0 ? void 0 : _b.color + }, + input: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + ...TextBox.input, + textAlignVertical: "top", + paddingTop: (_c = TextBox.input) === null || _c === void 0 ? void 0 : _c.paddingVertical + }, + inputDisabled: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + backgroundColor: (_d = TextBox.inputDisabled) === null || _d === void 0 ? void 0 : _d.backgroundColor, + borderColor: (_e = TextBox.inputDisabled) === null || _e === void 0 ? void 0 : _e.borderColor, + color: (_f = TextBox.inputDisabled) === null || _f === void 0 ? void 0 : _f.color + }, + inputFocused: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + }, + inputError: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + ...TextBox.inputError + }, + validationMessage: { + // All TextStyle properties are allowed + ...TextBox.validationMessage + } +}; +export const TextAreaVertical = { + container: TextBoxVertical.container, + containerDisabled: TextBoxVertical.containerDisabled, + label: { + ...TextBoxVertical.label, + height: undefined, + paddingVertical: undefined, + textAlignVertical: undefined + }, + labelDisabled: { + ...TextBoxVertical.labelDisabled, + height: undefined, + paddingVertical: undefined, + textAlignVertical: undefined + }, + input: { + ...TextBoxVertical.input, + lineHeight: input.input.lineHeight + }, + inputDisabled: TextBoxVertical.inputDisabled, + inputFocused: TextBoxVertical.inputFocused, + inputError: TextBoxVertical.inputError, + validationMessage: TextBoxVertical.validationMessage +}; diff --git a/test/themesource/atlas_core/native/core/widgets/textbox.js b/test/themesource/atlas_core/native/core/widgets/textbox.js new file mode 100644 index 0000000..6c1aff1 --- /dev/null +++ b/test/themesource/atlas_core/native/core/widgets/textbox.js @@ -0,0 +1,108 @@ +import { font, input, spacing } from "../../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Text Box + + Default Class For Mendix Text Box Widget +========================================================================== */ +export const TextBox = { + container: { + // All ViewStyle properties are allowed + }, + containerDisabled: { + // All ViewStyle properties are allowed + }, + label: { + // numberOfLines and all TextStyle properties are allowed + numberOfLines: input.label.numberOfLines, + color: input.label.color, + fontSize: input.label.fontSize, + fontFamily: font.family, + textAlign: input.label.textAlign, + marginRight: spacing.small + }, + labelDisabled: { + // TextStyle properties are allowed + color: input.labelDisabled.color + }, + input: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + color: input.input.color, + borderColor: input.input.borderColor, + backgroundColor: input.input.backgroundColor, + selectionColor: input.input.selectionColor, + placeholderTextColor: input.input.placeholderTextColor, + fontSize: input.input.fontSize, + fontFamily: font.family, + borderWidth: input.input.borderWidth, + borderRadius: input.input.borderRadius, + // textAlignVertical: "center", + minWidth: input.input.minWidth, + minHeight: input.input.minHeight, + paddingHorizontal: input.input.paddingHorizontal, + paddingVertical: input.input.paddingVertical + }, + inputDisabled: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + color: input.inputDisabled.color, + borderColor: input.inputDisabled.borderColor, + backgroundColor: input.inputDisabled.backgroundColor + }, + inputFocused: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + }, + inputError: { + // autoCapitalize, placeholderTextColor, selectionColor, underlineColorAndroid and all TextStyle properties are allowed + color: input.inputError.color, + borderColor: input.inputError.borderColor, + placeholderTextColor: input.inputError.placeholderTextColor, + underlineColorAndroid: "transparent" + }, + validationMessage: { + // All TextStyle properties are allowed + color: input.validationMessage.color, + fontSize: input.validationMessage.fontSize, + fontFamily: font.family + } +}; +export const TextBoxVertical = { + container: {}, + containerDisabled: {}, + label: { + numberOfLines: input.label.numberOfLines, + color: input.label.color, + fontSize: input.label.fontSize, + fontFamily: font.family, + textAlign: input.label.textAlign, + marginBottom: spacing.small + }, + labelDisabled: { + color: input.labelDisabled.color + }, + input: { + color: input.input.color, + borderColor: input.input.borderColor, + backgroundColor: input.input.backgroundColor, + selectionColor: input.input.selectionColor, + placeholderTextColor: input.input.placeholderTextColor, + fontSize: input.input.fontSize, + fontFamily: font.family, + borderWidth: input.input.borderWidth, + borderRadius: input.input.borderRadius, + // textAlignVertical: "center", + minWidth: input.input.minWidth, + minHeight: input.input.minHeight, + paddingHorizontal: input.input.paddingHorizontal, + paddingVertical: input.input.paddingVertical + }, + inputDisabled: TextBox.inputDisabled, + inputFocused: TextBox.inputFocused, + inputError: TextBox.inputError, + validationMessage: TextBox.validationMessage +}; diff --git a/test/theme/styles/native/js/core/widgets/togglebuttons.js b/test/themesource/atlas_core/native/core/widgets/togglebuttons.js old mode 100755 new mode 100644 similarity index 55% rename from test/theme/styles/native/js/core/widgets/togglebuttons.js rename to test/themesource/atlas_core/native/core/widgets/togglebuttons.js index 89f42e3..4769dbe --- a/test/theme/styles/native/js/core/widgets/togglebuttons.js +++ b/test/themesource/atlas_core/native/core/widgets/togglebuttons.js @@ -1,5 +1,5 @@ -import { Platform } from "react-native"; -import { background, brand, contrast, font, input } from "../variables"; +import { background, brand, contrast, font } from "../../variables"; +import { TextBox } from "./textbox"; /* DISCLAIMER: @@ -15,42 +15,40 @@ To customize any core styling, copy the part you want to customize to styles/nat export const com_mendix_widget_native_togglebuttons_ToggleButtons = { container: { // All ViewStyle properties are allowed - alignSelf: "stretch", + backgroundColor: background.secondary, + borderRadius: 16, + alignSelf: "stretch" }, containerDisabled: { opacity: 0.6, - alignSelf: "stretch", + alignSelf: "stretch" }, button: { // All ViewStyle properties are allowed - backgroundColor: background.primary, - borderColor: Platform.select({ ios: brand.primary, android: contrast.lower }), + backgroundColor: "transparent", + borderColor: "transparent", + borderRadius: 16 }, text: { // All TextStyle properties are allowed - color: Platform.select({ ios: brand.primary, android: contrast.high }), + color: contrast.low, fontSize: font.size, - fontFamily: font.family, + fontFamily: font.family + }, + activeButton: { + // All ViewStyle properties are allowed + backgroundColor: brand.primary, + borderColor: brand.primary, + borderRadius: 16 }, - activeButton: Object.assign({}, Platform.select({ - ios: { - backgroundColor: brand.primary, - borderColor: brand.primary, - }, - android: { - backgroundColor: brand.primary, - borderColor: brand.primary, - }, - })), activeButtonText: { // All TextStyle properties are allowed + color: "#FFF", fontSize: font.size, - fontFamily: font.family, + fontFamily: font.family }, validationMessage: { // All TextStyle properties are allowed - color: input.errorColor, - fontSize: font.size, - fontFamily: font.family, - }, + ...TextBox.validationMessage + } }; diff --git a/test/theme/styles/native/js/core/widgets/typography.js b/test/themesource/atlas_core/native/core/widgets/typography.js old mode 100755 new mode 100644 similarity index 82% rename from test/theme/styles/native/js/core/widgets/typography.js rename to test/themesource/atlas_core/native/core/widgets/typography.js index 5dd872a..3ed8cbe --- a/test/theme/styles/native/js/core/widgets/typography.js +++ b/test/themesource/atlas_core/native/core/widgets/typography.js @@ -1,4 +1,4 @@ -import { font } from "../variables"; +import { font } from "../../variables"; /* DISCLAIMER: @@ -17,11 +17,11 @@ export const Text = { }, text: { // numberOfLines & All TextStyle properties are allowed - color: font.color, + color: font.colorTitle, fontSize: font.size, fontFamily: font.family, - lineHeight: font.size + 2, - }, + lineHeight: font.lineHeight + } }; export const TextHeading1 = { container: {}, @@ -29,8 +29,8 @@ export const TextHeading1 = { fontWeight: font.weightSemiBold, fontSize: font.sizeH1, fontFamily: font.family, - lineHeight: font.sizeH1, - }, + lineHeight: font.lineHeightH1 + } }; export const TextHeading2 = { container: {}, @@ -38,8 +38,8 @@ export const TextHeading2 = { fontWeight: font.weightSemiBold, fontSize: font.sizeH2, fontFamily: font.family, - lineHeight: font.sizeH2, - }, + lineHeight: font.lineHeightH2 + } }; export const TextHeading3 = { container: {}, @@ -47,8 +47,8 @@ export const TextHeading3 = { fontWeight: font.weightSemiBold, fontSize: font.sizeH3, fontFamily: font.family, - lineHeight: font.sizeH3, - }, + lineHeight: font.lineHeightH3 + } }; export const TextHeading4 = { container: {}, @@ -56,8 +56,8 @@ export const TextHeading4 = { fontWeight: font.weightSemiBold, fontSize: font.sizeH4, fontFamily: font.family, - lineHeight: font.sizeH4, - }, + lineHeight: font.lineHeightH4 + } }; export const TextHeading5 = { container: {}, @@ -65,8 +65,8 @@ export const TextHeading5 = { fontWeight: font.weightSemiBold, fontSize: font.sizeH5, fontFamily: font.family, - lineHeight: font.sizeH5, - }, + lineHeight: font.lineHeightH5 + } }; export const TextHeading6 = { container: {}, @@ -74,6 +74,6 @@ export const TextHeading6 = { fontWeight: font.weightSemiBold, fontSize: font.sizeH6, fontFamily: font.family, - lineHeight: font.sizeH6, - }, + lineHeight: font.lineHeightH6 + } }; diff --git a/test/theme/styles/native/js/core/widgets/videoplayer.js b/test/themesource/atlas_core/native/core/widgets/videoplayer.js old mode 100755 new mode 100644 similarity index 99% rename from test/theme/styles/native/js/core/widgets/videoplayer.js rename to test/themesource/atlas_core/native/core/widgets/videoplayer.js index 3e47b5e..ce06e22 --- a/test/theme/styles/native/js/core/widgets/videoplayer.js +++ b/test/themesource/atlas_core/native/core/widgets/videoplayer.js @@ -19,5 +19,5 @@ export const com_mendix_widget_native_videoplayer_VideoPlayer = { }, video: { // All ViewStyle properties are allowed - }, + } }; diff --git a/test/theme/styles/native/js/core/widgets/webview.js b/test/themesource/atlas_core/native/core/widgets/webview.js old mode 100755 new mode 100644 similarity index 90% rename from test/theme/styles/native/js/core/widgets/webview.js rename to test/themesource/atlas_core/native/core/widgets/webview.js index a8078f0..e2240c7 --- a/test/theme/styles/native/js/core/widgets/webview.js +++ b/test/themesource/atlas_core/native/core/widgets/webview.js @@ -1,4 +1,4 @@ -import { font } from "../variables"; +import { font } from "../../variables"; /* DISCLAIMER: @@ -21,6 +21,6 @@ export const com_mendix_widget_native_webview_WebView = { errorText: { // All TextStyle properties are allowed fontSize: font.size, - fontFamily: font.family, - }, + fontFamily: font.family + } }; diff --git a/test/themesource/atlas_core/native/design-properties.json b/test/themesource/atlas_core/native/design-properties.json new file mode 100644 index 0000000..a79453b --- /dev/null +++ b/test/themesource/atlas_core/native/design-properties.json @@ -0,0 +1,2348 @@ +{ + "Document": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + }, + { + "name": "Baseline", + "class": "alignChildrenBaseline" + } + ] + }, + { + "name": "Justify content", + "type": "Dropdown", + "description": "Justify content in the active direction.", + "options": [ + { + "name": "Start", + "class": "justifyContentStart" + }, + { + "name": "Center", + "class": "justifyContentCenter" + }, + { + "name": "End", + "class": "justifyContentEnd" + }, + { + "name": "Space between", + "class": "justifyContentSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyContentSpaceAround" + }, + { + "name": "Space evenly", + "class": "justifyContentSpaceEvenly" + } + ] + } + ], + "Page": [ + { + "name": "Hide header bottom border", + "type": "Toggle", + "description": "Hide the bottom border (iOS) and elevation (Android) of the header.", + "class": "pageHeaderBorderNone" + } + ], + "Widget": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Smallest", + "class": "spacingOuterTopSmallest" + }, + { + "name": "Smaller", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Small", + "class": "spacingOuterTopSmall" + }, + { + "name": "Medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Large", + "class": "spacingOuterTopLarge" + }, + { + "name": "Larger", + "class": "spacingOuterTopLarger" + }, + { + "name": "Largest", + "class": "spacingOuterTopLargest" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Smallest", + "class": "spacingOuterBottomSmallest" + }, + { + "name": "Smaller", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Small", + "class": "spacingOuterBottomSmall" + }, + { + "name": "Medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Large", + "class": "spacingOuterBottomLarge" + }, + { + "name": "Larger", + "class": "spacingOuterBottomLarger" + }, + { + "name": "Largest", + "class": "spacingOuterBottomLargest" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Smallest", + "class": "spacingOuterLeftSmallest" + }, + { + "name": "Smaller", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Small", + "class": "spacingOuterLeftSmall" + }, + { + "name": "Medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Large", + "class": "spacingOuterLeftLarge" + }, + { + "name": "Larger", + "class": "spacingOuterLeftLarger" + }, + { + "name": "Largest", + "class": "spacingOuterLeftLargest" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Smallest", + "class": "spacingOuterRightSmallest" + }, + { + "name": "Smaller", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Small", + "class": "spacingOuterRightSmall" + }, + { + "name": "Medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Large", + "class": "spacingOuterRightLarge" + }, + { + "name": "Larger", + "class": "spacingOuterRightLarger" + }, + { + "name": "Largest", + "class": "spacingOuterRightLargest" + } + ] + } + ], + "DivContainer": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Change the size of the widget relative to its sibling(s).", + "options": [ + { + "name": "Maximum space", + "class": "flexMain" + }, + { + "name": "Minimum space", + "class": "flexItem" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Align", + "type": "Dropdown", + "description": "Aligns the element. This overrides 'Align children' of the parent.", + "options": [ + { + "name": "Start", + "class": "alignSelfStart" + }, + { + "name": "Center", + "class": "alignSelfCenter" + }, + { + "name": "End", + "class": "alignSelfEnd" + }, + { + "name": "Stretch", + "class": "alignSelfStretch" + }, + { + "name": "Baseline", + "class": "alignSelfBaseline" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + }, + { + "name": "Baseline", + "class": "alignChildrenBaseline" + } + ] + }, + { + "name": "Justify content", + "type": "Dropdown", + "description": "Justify content in the active direction.", + "options": [ + { + "name": "Start", + "class": "justifyContentStart" + }, + { + "name": "Center", + "class": "justifyContentCenter" + }, + { + "name": "End", + "class": "justifyContentEnd" + }, + { + "name": "Space between", + "class": "justifyContentSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyContentSpaceAround" + }, + { + "name": "Space evenly", + "class": "justifyContentSpaceEvenly" + } + ] + } + ], + "ScrollContainer": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Change the size of the widget relative to its sibling(s).", + "options": [ + { + "name": "Maximum space", + "class": "flexMain" + }, + { + "name": "Minimum space", + "class": "flexItem" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Align", + "type": "Dropdown", + "description": "Aligns the element. This overrides 'Align children' of the parent.", + "options": [ + { + "name": "Start", + "class": "alignSelfStart" + }, + { + "name": "Center", + "class": "alignSelfCenter" + }, + { + "name": "End", + "class": "alignSelfEnd" + }, + { + "name": "Stretch", + "class": "alignSelfStretch" + }, + { + "name": "Baseline", + "class": "alignSelfBaseline" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + }, + { + "name": "Baseline", + "class": "alignChildrenBaseline" + } + ] + }, + { + "name": "Justify content", + "type": "Dropdown", + "description": "Justify content in the active direction.", + "options": [ + { + "name": "Start", + "class": "justifyContentStart" + }, + { + "name": "Center", + "class": "justifyContentCenter" + }, + { + "name": "End", + "class": "justifyContentEnd" + }, + { + "name": "Space between", + "class": "justifyContentSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyContentSpaceAround" + } + ] + } + ], + "ActionButton": [ + { + "name": "Button style", + "type": "Dropdown", + "description": "Style of the button", + "options": [ + { + "name": "Secondary", + "class": "btnSecondary" + }, + { + "name": "Success", + "class": "btnSuccess" + }, + { + "name": "Warning", + "class": "btnWarning" + }, + { + "name": "Danger", + "class": "btnDanger" + }, + { + "name": "Inversed", + "class": "btnPrimaryInversed" + } + ] + }, + { + "name": "Align", + "type": "Dropdown", + "description": "Aligns the element. This overrides 'Align children' of the parent.", + "options": [ + { + "name": "Start", + "class": "alignSelfStart" + }, + { + "name": "Center", + "class": "alignSelfCenter" + }, + { + "name": "End", + "class": "alignSelfEnd" + }, + { + "name": "Stretch", + "class": "alignSelfStretch" + }, + { + "name": "Baseline", + "class": "alignSelfBaseline" + } + ] + } + ], + "StaticImageViewer": [ + { + "name": "Shape", + "type": "Dropdown", + "description": "Change the shape of the image", + "options": [ + { + "name": "Square", + "class": "imageSquare" + }, + { + "name": "Circle", + "class": "imageCircle" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Make the image smaller or larger.", + "options": [ + { + "name": "Icon", + "class": "imageIcon", + "oldNames": ["imageCircleIcon", "imageSquareIcon"] + }, + { + "name": "Small", + "class": "imageSmall", + "oldNames": ["imageCircleSmall", "imageSquareSmall"] + }, + { + "name": "Medium", + "class": "imageMedium", + "oldNames": ["imageCircleMedium", "imageSquareMedium"] + }, + { + "name": "Large", + "class": "imageLarge", + "oldNames": ["imageCircleLarge", "imageSquareLarge"] + }, + { + "name": "Larger", + "class": "imageLarger", + "oldNames": ["imageCircleLarger", "imageSquareLarger"] + }, + { + "name": "FullSize", + "class": "imageFullSize" + } + ] + } + ], + "DynamicImageViewer": [ + { + "name": "Shape", + "type": "Dropdown", + "description": "Change the shape of the image", + "options": [ + { + "name": "Square", + "class": "imageSquare" + }, + { + "name": "Circle", + "class": "imageCircle" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Make the image smaller or larger.", + "options": [ + { + "name": "Icon", + "class": "imageIcon", + "oldNames": ["imageCircleIcon", "imageSquareIcon"] + }, + { + "name": "Small", + "class": "imageSmall", + "oldNames": ["imageCircleSmall", "imageSquareSmall"] + }, + { + "name": "Medium", + "class": "imageMedium", + "oldNames": ["imageCircleMedium", "imageSquareMedium"] + }, + { + "name": "Large", + "class": "imageLarge", + "oldNames": ["imageCircleLarge", "imageSquareLarge"] + }, + { + "name": "Larger", + "class": "imageLarger", + "oldNames": ["imageCircleLarger", "imageSquareLarger"] + }, + { + "name": "FullSize", + "class": "imageFullSize" + } + ] + } + ], + "DynamicText": [ + { + "name": "Color", + "type": "Dropdown", + "description": "Change the color of text.", + "options": [ + { + "name": "Paragraph", + "class": "textParagraph" + }, + { + "name": "Disabled", + "class": "textDisabled" + }, + { + "name": "White", + "class": "textWhite" + }, + { + "name": "Black", + "class": "textBlack" + }, + { + "name": "Brand primary", + "class": "textPrimary" + }, + { + "name": "Brand success", + "class": "textSuccess" + }, + { + "name": "Brand warning", + "class": "textWarning" + }, + { + "name": "Brand danger", + "class": "textDanger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Make the text smaller or larger.", + "options": [ + { + "name": "Smallest", + "class": "textSmallest" + }, + { + "name": "Small", + "class": "textSmall" + }, + { + "name": "Large", + "class": "textLarge" + }, + { + "name": "Largest", + "class": "textLargest" + } + ] + }, + { + "name": "Weight", + "type": "Dropdown", + "description": "Emphasize the text with a heavier or lighter font weight", + "options": [ + { + "name": "Default", + "class": "textNormal" + }, + { + "name": "Bold", + "class": "textBold" + } + ] + }, + { + "name": "Decoration", + "type": "Dropdown", + "description": "Decorate the text with an underline or a line through", + "options": [ + { + "name": "Underline", + "class": "textUnderline" + }, + { + "name": "Line Through", + "class": "textLineThrough" + } + ] + }, + { + "name": "Alignment", + "type": "Dropdown", + "description": "Align the text.", + "options": [ + { + "name": "Left", + "class": "textLeft" + }, + { + "name": "Center", + "class": "textCenter" + }, + { + "name": "Right", + "class": "textRight" + } + ] + } + ], + "LayoutGrid": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller", + "oldNames": ["Small"] + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium", + "oldNames": ["Medium"] + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger", + "oldNames": ["Large"] + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller", + "oldNames": ["Small"] + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium", + "oldNames": ["Medium"] + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger", + "oldNames": ["Large"] + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller", + "oldNames": ["Small"] + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium", + "oldNames": ["Medium"] + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger", + "oldNames": ["Large"] + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller", + "oldNames": ["Small"] + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium", + "oldNames": ["Medium"] + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger", + "oldNames": ["Large"] + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + } + ], + "LayoutGridRow": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + } + ], + "LayoutGridColumn": [ + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + } + ], + "ListView": [ + { + "name": "List item divider", + "type": "Dropdown", + "description": "Give each list item a border.", + "options": [ + { + "name": "Vertical", + "class": "listItemBorderBottom" + }, + { + "name": "Horizontal", + "class": "listItemBorderRight" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + } + ], + "TabContainer": [ + { + "name": "Tab bar scroll", + "type": "Toggle", + "description": "Enable horizontal scroll for the tab bar.", + "class": "tabContainerScroll" + } + ], + "TextBox": [ + { + "name": "Capitalize", + "type": "Dropdown", + "description": "Change the capitalization of the input.", + "options": [ + { + "name": "None", + "class": "textInputCapitalizeNone" + }, + { + "name": "Characters", + "class": "textInputCapitalizeCharacters" + }, + { + "name": "Words", + "class": "textInputCapitalizeWords" + }, + { + "name": "Sentences", + "class": "textInputCapitalizeSentences" + } + ] + } + ], + "TextArea": [ + { + "name": "Capitalize", + "type": "Dropdown", + "description": "Change the capitalization of the input.", + "options": [ + { + "name": "None", + "class": "textInputCapitalizeNone" + }, + { + "name": "Characters", + "class": "textInputCapitalizeCharacters" + }, + { + "name": "Words", + "class": "textInputCapitalizeWords" + }, + { + "name": "Sentences", + "class": "textInputCapitalizeSentences" + } + ] + } + ], + "com.mendix.widget.native.activityindicator.ActivityIndicator": [ + { + "name": "Activity indicator style", + "type": "Dropdown", + "description": "Style of the Activity indicator.", + "options": [ + { + "name": "Success", + "class": "activityIndicatorSuccess" + }, + { + "name": "Warning", + "class": "activityIndicatorWarning" + }, + { + "name": "Danger", + "class": "activityIndicatorDanger" + } + ] + } + ], + "com.mendix.widget.native.animation.Animation": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterTopSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterTopMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterBottomSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterBottomMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterLeftSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterLeftMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + }, + { + "name": "Outer small", + "class": "spacingOuterRightSmaller" + }, + { + "name": "Outer medium", + "class": "spacingOuterRightMedium" + }, + { + "name": "Outer large", + "class": "spacingOuterRightLarger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Change the size of the widget relative to its sibling(s).", + "options": [ + { + "name": "Maximum space", + "class": "flexMain" + }, + { + "name": "Minimum space", + "class": "flexItem" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Align", + "type": "Dropdown", + "description": "Aligns the element. This overrides 'Align children' of the parent.", + "options": [ + { + "name": "Stretch", + "class": "alignSelfStretch" + }, + { + "name": "Start", + "class": "alignSelfStart" + }, + { + "name": "Center", + "class": "alignSelfCenter" + }, + { + "name": "End", + "class": "alignSelfEnd" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + } + ] + }, + { + "name": "Justify children", + "type": "Dropdown", + "description": "Justify children in the active direction.", + "options": [ + { + "name": "Center", + "class": "justifyChildrenCenter" + }, + { + "name": "End", + "class": "justifyChildrenEnd" + }, + { + "name": "Space between", + "class": "justifyChildrenSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyChildrenSpaceAround" + } + ] + } + ], + "com.mendix.widget.native.badge.Badge": [ + { + "name": "Badge style", + "type": "Dropdown", + "description": "Style of the Badge.", + "options": [ + { + "name": "Primary", + "class": "badgePrimary" + }, + { + "name": "Success", + "class": "badgeSuccess" + }, + { + "name": "Warning", + "class": "badgeWarning" + }, + { + "name": "Danger", + "class": "badgeDanger" + } + ] + } + ], + "com.mendix.widget.native.floatingactionbutton.FloatingActionButton": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Style of the Floating Action Button.", + "options": [ + { + "name": "Secondary", + "class": "floatingActionButtonSecondary" + }, + { + "name": "Success", + "class": "floatingActionButtonSuccess" + }, + { + "name": "Warning", + "class": "floatingActionButtonWarning" + }, + { + "name": "Danger", + "class": "floatingActionButtonDanger" + } + ] + } + ], + "com.mendix.widget.native.linechart.LineChart": [ + { + "name": "Chart size", + "type": "Dropdown", + "description": "Size of the chart.", + "options": [ + { + "name": "Square", + "class": "lineChartSquare" + }, + { + "name": "Maximum space", + "class": "lineChartMaxSpace" + } + ] + } + ], + "com.mendix.widget.native.listviewswipe.ListViewSwipe": [ + { + "name": "Panel size", + "type": "Dropdown", + "description": "Size of the left and right panel.", + "options": [ + { + "name": "Small", + "class": "listViewSwipeSmallPanels" + }, + { + "name": "Large", + "class": "listViewSwipeLargePanels" + } + ] + } + ], + "com.mendix.widget.native.maps.Maps": [ + { + "name": "Maps size", + "type": "Dropdown", + "description": "Size of the maps.", + "options": [ + { + "name": "Square", + "class": "mapsSquare" + }, + { + "name": "Maximum space", + "class": "mapsMaxSpace" + } + ] + }, + { + "name": "Maps marker style", + "type": "Dropdown", + "description": "Style of the marker.", + "options": [ + { + "name": "Success", + "class": "mapsSuccess" + }, + { + "name": "Warning", + "class": "mapsWarning" + }, + { + "name": "Danger", + "class": "mapsDanger" + } + ] + } + ], + "com.mendix.widget.native.barchart.BarChart": [ + { + "name": "Chart size", + "type": "Dropdown", + "description": "Size of the chart.", + "options": [ + { + "name": "Square", + "class": "barChartSquare" + }, + { + "name": "Maximum space", + "class": "barChartMaxSpace" + } + ] + } + ], + "com.mendix.widget.native.progressbar.ProgressBar": [ + { + "name": "Progress bar style", + "type": "Dropdown", + "description": "Style of the progress bar.", + "options": [ + { + "name": "Success", + "class": "progressBarSuccess" + }, + { + "name": "Warning", + "class": "progressBarWarning" + }, + { + "name": "Danger", + "class": "progressBarDanger" + } + ] + }, + { + "name": "Progress bar size", + "type": "Dropdown", + "description": "Size of the progress bar.", + "options": [ + { + "name": "Small", + "class": "progressBarSmall" + }, + { + "name": "Large", + "class": "progressBarLarge" + } + ] + } + ], + "com.mendix.widget.native.progresscircle.ProgressCircle": [ + { + "name": "Progress circle style", + "type": "Dropdown", + "description": "Style of the progress circle.", + "options": [ + { + "name": "Success", + "class": "progressCircleSuccess" + }, + { + "name": "Warning", + "class": "progressCircleWarning" + }, + { + "name": "Danger", + "class": "progressCircleDanger" + } + ] + } + ], + "com.mendix.widget.native.rangeslider.RangeSlider": [ + { + "name": "Range Slider style", + "type": "Dropdown", + "description": "Style of the range slider.", + "options": [ + { + "name": "Success", + "class": "rangeSliderSuccess" + }, + { + "name": "Warning", + "class": "rangeSliderWarning" + }, + { + "name": "Danger", + "class": "rangeSliderDanger" + } + ] + } + ], + "com.mendix.widget.native.safeareaview.SafeAreaView": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerTopSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerTopMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerTopLarger" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerBottomSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerBottomMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerBottomLarger" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerLeftSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerLeftMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerLeftLarger" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Inner small", + "class": "spacingInnerRightSmaller" + }, + { + "name": "Inner medium", + "class": "spacingInnerRightMedium" + }, + { + "name": "Inner large", + "class": "spacingInnerRightLarger" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Primary"], + "class": "backgroundPrimary" + }, + { + "name": "Background Secondary", + "oldNames": ["Gray", "Secondary"], + "class": "backgroundSecondary" + }, + { + "name": "Brand Primary", + "class": "backgroundBrandPrimary" + }, + { + "name": "Brand Success", + "class": "backgroundBrandSuccess" + }, + { + "name": "Brand Warning", + "class": "backgroundBrandWarning" + }, + { + "name": "Brand Danger", + "class": "backgroundBrandDanger" + }, + { + "name": "Brand Info", + "class": "backgroundBrandInfo" + } + ] + }, + { + "name": "Render children horizontal", + "type": "Toggle", + "description": "Determines the direction in which children are rendered.", + "class": "flexRow" + }, + { + "name": "Wrap children", + "type": "Toggle", + "description": "Determines if children can flow into multiple lines if they hit the end of the container.", + "class": "flexWrap" + }, + { + "name": "Align children", + "type": "Dropdown", + "description": "Align children in the opposite direction.", + "options": [ + { + "name": "Start", + "class": "alignChildrenStart" + }, + { + "name": "Center", + "class": "alignChildrenCenter" + }, + { + "name": "End", + "class": "alignChildrenEnd" + }, + { + "name": "Stretch", + "class": "alignChildrenStretch" + }, + { + "name": "Baseline", + "class": "alignChildrenBaseline" + } + ] + }, + { + "name": "Justify content", + "type": "Dropdown", + "description": "Justify content in the active direction.", + "options": [ + { + "name": "Start", + "class": "justifyContentStart" + }, + { + "name": "Center", + "class": "justifyContentCenter" + }, + { + "name": "End", + "class": "justifyContentEnd" + }, + { + "name": "Space between", + "class": "justifyContentSpaceBetween" + }, + { + "name": "Space around", + "class": "justifyContentSpaceAround" + }, + { + "name": "Space evenly", + "class": "justifyContentSpaceEvenly" + } + ] + } + ], + "com.mendix.widget.native.slider.Slider": [ + { + "name": "Slider style", + "type": "Dropdown", + "description": "Style of the slider.", + "options": [ + { + "name": "Success", + "class": "sliderSuccess" + }, + { + "name": "Warning", + "class": "sliderWarning" + }, + { + "name": "Danger", + "class": "sliderDanger" + } + ] + } + ] +} diff --git a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/layouts/layout.js b/test/themesource/atlas_core/native/layouts/layout.js old mode 100755 new mode 100644 similarity index 51% rename from test/theme/styles/native/js/ui_resources/atlas_ui_resources/layouts/layout.js rename to test/themesource/atlas_core/native/layouts/layout.js index 1b53995..dc2b6e1 --- a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/layouts/layout.js +++ b/test/themesource/atlas_core/native/layouts/layout.js @@ -1,19 +1,29 @@ import { NativeModules } from "react-native"; -import { darkMode } from "../../../app/custom-variables.js"; -import { background, font, navigation } from "../../../core/variables"; +import { darkMode } from "../../../../theme/native/custom-variables"; +import { background, font, navigation } from "../variables"; /* -========================================================================== - TopBar / BottomBar / ProgressOverlay - Default Class For Mendix TopBar, BottomBar and ProgressOverlay +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + ========================================================================== -*/ + Sidebar / Statusbar / Header + + Default Class For Mendix Sidebar, Statusbar and Header +========================================================================== */ // backgroundColor of the native iOS statusbar can not be changed. // To fix this we change the barStyle of the statusbar if OS theme is dark and app theme is light (And the other way around). -const isOSDarkMode = NativeModules && NativeModules.RNDarkMode && NativeModules.RNDarkMode.initialMode && NativeModules.RNDarkMode.initialMode === "dark"; -const statusBarStyle = !darkMode && isOSDarkMode ? - "dark-content" : - darkMode && !isOSDarkMode ? "light-content" : navigation.statusBar.barStyle; +const isOSDarkMode = NativeModules && + NativeModules.RNDarkMode && + NativeModules.RNDarkMode.initialMode && + NativeModules.RNDarkMode.initialMode === "dark"; +const statusBarStyle = !darkMode && isOSDarkMode + ? "dark-content" + : darkMode && !isOSDarkMode + ? "light-content" + : navigation.statusBar.barStyle; // export const Layout = { sidebar: { @@ -22,35 +32,36 @@ export const Layout = { statusBar: { // Only backgroundColor and barStyle are allowed backgroundColor: navigation.statusBar.backgroundColor, - barStyle: statusBarStyle, + barStyle: statusBarStyle }, header: { container: { // All ViewStyle properties are allowed backgroundColor: navigation.topBar.backgroundColor, - borderBottomWidth: undefined, + elevation: 0, + shadowOpacity: 0, + shadowOffset: undefined, + borderBottomWidth: undefined }, title: { // All TextStyle properties are allowed color: navigation.topBar.titleColor, fontSize: navigation.topBar.titleFontSize, fontFamily: font.family, - fontWeight: font.weightBold, + fontWeight: font.weightBold }, backButtonText: { // All TextStyle properties are allowed color: navigation.topBar.backButtonColor, - fontFamily: font.family, + fontFamily: font.family }, backButtonIcon: { // All ImageStyle properties are allowed - tintColor: navigation.topBar.backButtonColor, - }, + tintColor: navigation.topBar.backButtonColor + } }, container: { // All ViewStyle properties are allowed - backgroundColor: background.primary, - }, + backgroundColor: background.primary + } }; -// -export const Page = Layout; diff --git a/test/themesource/atlas_core/native/layouts/page.js b/test/themesource/atlas_core/native/layouts/page.js new file mode 100644 index 0000000..71c6e92 --- /dev/null +++ b/test/themesource/atlas_core/native/layouts/page.js @@ -0,0 +1,53 @@ +import { background, font, navigation } from "../variables"; +/* + +DISCLAIMER: +Do not change this file because it is core styling. +Customizing core files will make updating Atlas much more difficult in the future. +To customize any core styling, copy the part you want to customize to styles/native/app/ so the core styling is overwritten. + +========================================================================== + Page + + Default Class For Mendix Page +========================================================================== */ +export const Page = { + sidebar: { + // All ViewStyle properties are allowed + }, + statusBar: { + // Only backgroundColor and barStyle are allowed + backgroundColor: navigation.statusBar.backgroundColor, + barStyle: navigation.statusBar.barStyle + }, + header: { + container: { + // All ViewStyle properties are allowed + backgroundColor: navigation.topBar.backgroundColor, + elevation: 0, + shadowOpacity: 0, + shadowOffset: undefined, + borderBottomWidth: undefined + }, + title: { + // All TextStyle properties are allowed + color: navigation.topBar.titleColor, + fontSize: navigation.topBar.titleFontSize, + fontFamily: font.family, + fontWeight: font.weightBold + }, + backButtonText: { + // All TextStyle properties are allowed + color: navigation.topBar.backButtonColor, + fontFamily: font.family + }, + backButtonIcon: { + // All ImageStyle properties are allowed + tintColor: navigation.topBar.backButtonColor + } + }, + container: { + // All ViewStyle properties are allowed + backgroundColor: background.primary + } +}; diff --git a/test/themesource/atlas_core/native/main.js b/test/themesource/atlas_core/native/main.js new file mode 100644 index 0000000..13135d2 --- /dev/null +++ b/test/themesource/atlas_core/native/main.js @@ -0,0 +1,150 @@ +import * as exclusionVariables from "../../../theme/native/exclusion-variables"; +// ================================== CORE ==================================\\ +// +// +// Base +import * as flex from "./core/base/flex"; +import * as spacing from "./core/base/spacing"; +// +// +// Components +import * as widgetsActivityIndicator from "./core/widgets/activityindicator"; +import * as helpersActivityIndicator from "./core/helpers/activityindicator"; +import * as widgetsAnimation from "./core/widgets/animation"; +import * as widgetsBackgroundImage from "./core/widgets/backgroundimage"; +import * as widgetsBadge from "./core/widgets/badge"; +import * as helpersBadge from "./core/helpers/badge"; +import * as widgetsBottomSheet from "./core/widgets/bottomsheet"; +import * as widgetsButtons from "./core/widgets/buttons"; +import * as helpersButtons from "./core/helpers/buttons"; +import * as widgetsCarousel from "./core/widgets/carousel"; +import * as widgetsCheckBox from "./core/widgets/checkbox"; +import * as widgetsColorPicker from "./core/widgets/colorpicker"; +import * as widgetsContainer from "./core/widgets/container"; +import * as widgetsDatePicker from "./core/widgets/datepicker"; +import * as widgetsDropDown from "./core/widgets/dropdown"; +import * as widgetsFeedback from "./core/widgets/feedback"; +import * as widgetsFloatingActionButton from "./core/widgets/floatingactionbutton"; +import * as helpersFloatingActionButton from "./core/helpers/floatingactionbutton"; +import * as widgetsImage from "./core/widgets/image"; +import * as helpersImage from "./core/helpers/image"; +import * as widgetsIntroScreen from "./core/widgets/introscreen"; +import * as helpersIntroScreen from "./core/helpers/introscreen"; +import * as widgetsLayoutGrid from "./core/widgets/layoutgrid"; +import * as widgetsLineChart from "./core/widgets/linechart"; +import * as helpersLineChart from "./core/helpers/linechart"; +import * as widgetsBarChart from "./core/widgets/barchart"; +import * as helpersBarChart from "./core/helpers/barchart"; +import * as widgetsListView from "./core/widgets/listview"; +import * as helpersListView from "./core/helpers/listview"; +import * as widgetsListViewSwipe from "./core/widgets/listviewswipe"; +import * as helpersListViewSwipe from "./core/helpers/listviewswipe"; +import * as widgetsMaps from "./core/widgets/maps"; +import * as helpersMaps from "./core/helpers/maps"; +import * as widgetsNavigation from "./core/widgets/navigation"; +import * as widgetsPageTitle from "./core/widgets/pagetitle"; +import * as widgetsProgressBar from "./core/widgets/progressbar"; +import * as helpersProgressBar from "./core/helpers/progressbar"; +import * as widgetsProgressCircle from "./core/widgets/progresscircle"; +import * as helpersProgressCircle from "./core/helpers/progresscircle"; +import * as widgetsPopUpMenu from "./core/widgets/popupmenu"; +import * as widgetsQRCode from "./core/widgets/qrcode"; +import * as widgetsRangeSlider from "./core/widgets/rangeslider"; +import * as helpersRangeSlider from "./core/helpers/rangeslider"; +import * as widgetsRating from "./core/widgets/rating"; +import * as widgetsReferenceSelector from "./core/widgets/referenceselector"; +import * as widgetsSafeAreaView from "./core/widgets/safeareaview"; +import * as widgetsSlider from "./core/widgets/slider"; +import * as helpersSlider from "./core/helpers/slider"; +import * as widgetsTabContainer from "./core/widgets/tabcontainer"; +import * as helpersTabContainer from "./core/helpers/tabcontainer"; +import * as widgetsTextArea from "./core/widgets/textarea"; +import * as widgetsTextBox from "./core/widgets/textbox"; +import * as helpersTextBox from "./core/helpers/textbox"; +import * as widgetsToggleButtons from "./core/widgets/togglebuttons"; +import * as widgetsTypography from "./core/widgets/typography"; +import * as helpersTypography from "./core/helpers/typography"; +import * as widgetsVideoPlayer from "./core/widgets/videoplayer"; +import * as widgetsWebView from "./core/widgets/webview"; +import * as helperClasses from "./core/helpers/helperclasses"; +// +// +// ================================= CUSTOM =================================\\ +// +// +// Layouts +import * as layout from "./layouts/layout"; +import * as page from "./layouts/page"; +module.exports = [ + flex, + spacing, + !exclusionVariables.excludeActivityIndicator ? widgetsActivityIndicator : {}, + !exclusionVariables.excludeActivityIndicator && !exclusionVariables.excludeActivityIndicatorHelpers + ? helpersActivityIndicator + : {}, + !exclusionVariables.excludeAnimation ? widgetsAnimation : {}, + !exclusionVariables.excludeBackgroundImage ? widgetsBackgroundImage : {}, + !exclusionVariables.excludeBadge ? widgetsBadge : {}, + !exclusionVariables.excludeBadge && !exclusionVariables.excludeBadgeHelpers ? helpersBadge : {}, + !exclusionVariables.excludeBottomSheet ? widgetsBottomSheet : {}, + !exclusionVariables.excludeButtons ? widgetsButtons : {}, + !exclusionVariables.excludeButtons && !exclusionVariables.excludeButtonsHelpers ? helpersButtons : {}, + !exclusionVariables.excludeCarousel ? widgetsCarousel : {}, + !exclusionVariables.excludeCheckBox ? widgetsCheckBox : {}, + !exclusionVariables.excludeColorPicker ? widgetsColorPicker : {}, + !exclusionVariables.excludeContainer ? widgetsContainer : {}, + !exclusionVariables.excludeDatePicker ? widgetsDatePicker : {}, + !exclusionVariables.excludeDropDown ? widgetsDropDown : {}, + !exclusionVariables.excludeFeedback ? widgetsFeedback : {}, + !exclusionVariables.excludeFAB ? widgetsFloatingActionButton : {}, + !exclusionVariables.excludeFAB && !exclusionVariables.excludeFABHelpers ? helpersFloatingActionButton : {}, + !exclusionVariables.excludeImage ? widgetsImage : {}, + !exclusionVariables.excludeImage && !exclusionVariables.excludeImageHelpers ? helpersImage : {}, + !exclusionVariables.excludeIntroScreen ? widgetsIntroScreen : {}, + !exclusionVariables.excludeIntroScreen && !exclusionVariables.excludeIntroScreenHelpers ? helpersIntroScreen : {}, + !exclusionVariables.excludeLayoutGrid ? widgetsLayoutGrid : {}, + !exclusionVariables.excludeLineChart ? widgetsLineChart : {}, + !exclusionVariables.excludeLineChart && !exclusionVariables.excludeLineChartHelpers ? helpersLineChart : {}, + !exclusionVariables.excludeBarChart ? widgetsBarChart : {}, + !exclusionVariables.excludeBarChart && !exclusionVariables.excludeBarChartHelpers ? helpersBarChart : {}, + !exclusionVariables.excludeListView ? widgetsListView : {}, + !exclusionVariables.excludeListView && !exclusionVariables.excludeListViewHelpers ? helpersListView : {}, + !exclusionVariables.excludeListViewSwipe ? widgetsListViewSwipe : {}, + !exclusionVariables.excludeListViewSwipe && !exclusionVariables.excludeListViewSwipeHelpers + ? helpersListViewSwipe + : {}, + !exclusionVariables.excludeMaps ? widgetsMaps : {}, + !exclusionVariables.excludeMaps && !exclusionVariables.excludeMapsHelpers ? helpersMaps : {}, + widgetsNavigation, + !exclusionVariables.excludePageTitle ? widgetsPageTitle : {}, + !exclusionVariables.excludeProgressBar ? widgetsProgressBar : {}, + !exclusionVariables.excludeProgressBar && !exclusionVariables.excludeProgressBarHelpers ? helpersProgressBar : {}, + !exclusionVariables.excludeProgressCircle ? widgetsProgressCircle : {}, + !exclusionVariables.excludeProgressCircle && !exclusionVariables.excludeProgressCircleHelpers + ? helpersProgressCircle + : {}, + !exclusionVariables.excludePopUpMenu ? widgetsPopUpMenu : {}, + !exclusionVariables.excludeQRCode ? widgetsQRCode : {}, + !exclusionVariables.excludeRangeSlider ? widgetsRangeSlider : {}, + !exclusionVariables.excludeRangeSlider && !exclusionVariables.excludeRangeSliderHelpers ? helpersRangeSlider : {}, + !exclusionVariables.excludeRating ? widgetsRating : {}, + !exclusionVariables.excludeReferenceSelector ? widgetsReferenceSelector : {}, + !exclusionVariables.excludeSafeAreaView ? widgetsSafeAreaView : {}, + !exclusionVariables.excludeSlider ? widgetsSlider : {}, + !exclusionVariables.excludeSlider && !exclusionVariables.excludeSliderHelpers ? helpersSlider : {}, + !exclusionVariables.excludeTabContainer ? widgetsTabContainer : {}, + !exclusionVariables.excludeTabContainer && !exclusionVariables.excludeTabContainerHelpers + ? helpersTabContainer + : {}, + !exclusionVariables.excludeTextArea ? widgetsTextArea : {}, + !exclusionVariables.excludeTextBox ? widgetsTextBox : {}, + !exclusionVariables.excludeTextBox && !exclusionVariables.excludeTextBoxHelpers ? helpersTextBox : {}, + !exclusionVariables.excludeToggleButtons ? widgetsToggleButtons : {}, + !exclusionVariables.excludeTypography ? widgetsTypography : {}, + !exclusionVariables.excludeTypography && !exclusionVariables.excludeTypographyHelpers ? helpersTypography : {}, + !exclusionVariables.excludeVideoPlayer ? widgetsVideoPlayer : {}, + !exclusionVariables.excludeWebView ? widgetsWebView : {}, + !exclusionVariables.excludeHelpers ? helperClasses : {}, + layout, + page +].reduce((merged, object) => ({ ...merged, ...object }), {}); diff --git a/test/themesource/atlas_core/native/variables.js b/test/themesource/atlas_core/native/variables.js new file mode 100644 index 0000000..a4d2387 --- /dev/null +++ b/test/themesource/atlas_core/native/variables.js @@ -0,0 +1,583 @@ +import { Platform } from "react-native"; +import * as custom from "../../../theme/native/custom-variables"; +import adjustFont, { height, width } from "./core/helpers/_functions/adjustfont"; +import { anyColorToRgbString, setContrastScale } from "./core/helpers/_functions/convertcolors"; +import merge from "./core/helpers/_functions/mergeobjects"; +// +// +// == Global variables +// ## Variables to be used during styling +// -------------------------------------------------------------------------------------------------------------------// +// System defined read-only values +export const deviceHeight = height; +export const deviceWidth = width; +// +// Brand Style +let brand = { + primary: "#264AE5", + success: "#3CB33D", + warning: "#ECA51C", + danger: "#E33F4E", + info: "#0086D9", + primaryLight: "#F3F5FF", + successLight: "#F1FCF1", + warningLight: "#FFF9E6", + dangerLight: "#FFEEF0", + infoLight: "#ECF9FF" +}; +brand = merge(brand, custom.brand || {}); +// +// Background colors +const backgroundDefaults = { + primaryLight: "#FFF", + primaryDark: "#0A1325", + secondaryLight: "#F8F8F8", + secondaryDark: "#161F30" +}; +let background = { + primary: custom.darkMode ? backgroundDefaults.primaryDark : backgroundDefaults.primaryLight, + secondary: custom.darkMode ? backgroundDefaults.secondaryDark : backgroundDefaults.secondaryLight, + brandPrimary: brand.primary, + brandSuccess: brand.success, + brandWarning: brand.warning, + brandDanger: brand.danger, + brandInfo: brand.info +}; +background = merge(background, custom.background || {}); +// +// Contrast (Gray) colors based on background.primary +let contrast = { + highest: setContrastScale(0.95, background.primary), + higher: setContrastScale(0.8, background.primary), + high: setContrastScale(0.65, background.primary), + regular: setContrastScale(0.5, background.primary), + low: setContrastScale(0.35, background.primary), + lower: setContrastScale(0.2, background.primary), + lowest: setContrastScale(0.05, background.primary) +}; +contrast = merge(contrast, custom.contrast || {}); +// +// Border Style +let border = { + color: custom.darkMode ? "#3B4251" : "#CED0D3", + width: 1, + radiusSmall: 4, + radiusLarge: 8, + radiusLargest: 9999 +}; +border = merge(border, custom.border || {}); +// +// Font Styles +const fontDefaults = { + colorTitleDark: "#0A1326", + colorTitleLight: "#FDFDFD", + colorParagraphDark: "#6C717E", + colorParagraphLight: "#E7E7E9", + colorDisabledDark: "#9DA1A8", + colorDisabledLight: "#9DA1A8" +}; +let font = { + size: adjustFont(14), + sizeSmallest: adjustFont(10), + sizeSmall: adjustFont(12), + sizeLarge: adjustFont(16), + sizeLargest: adjustFont(18), + sizeH1: adjustFont(40), + sizeH2: adjustFont(34), + sizeH3: adjustFont(28), + sizeH4: adjustFont(24), + sizeH5: adjustFont(20), + sizeH6: adjustFont(16), + lineHeight: adjustFont(14) * 1.5, + lineHeightSmallest: adjustFont(10) * 1.5, + lineHeightSmall: adjustFont(12) * 1.5, + lineHeightLarge: adjustFont(16) * 1.5, + lineHeightLargest: adjustFont(18) * 1.5, + lineHeightH1: adjustFont(40) * 1.5, + lineHeightH2: adjustFont(34) * 1.5, + lineHeightH3: adjustFont(28) * 1.5, + lineHeightH4: adjustFont(24) * 1.5, + lineHeightH5: adjustFont(20) * 1.5, + lineHeightH6: adjustFont(16) * 1.5, + colorTitle: custom.darkMode ? fontDefaults.colorTitleLight : fontDefaults.colorTitleDark, + colorParagraph: custom.darkMode ? fontDefaults.colorParagraphLight : fontDefaults.colorParagraphDark, + colorDisabled: custom.darkMode ? fontDefaults.colorDisabledLight : fontDefaults.colorDisabledDark, + weightLight: "100", + weightNormal: "normal", + weightSemiBold: "600", + weightBold: "bold", + family: Platform.select({ ios: "System", android: "normal" }) +}; +font = merge(font, custom.font || {}); +// +// Spacing +let spacing = { + smallest: 2, + smaller: 4, + small: 8, + regular: 16, + large: 24, + larger: 32, + largest: 40 +}; +spacing = merge(spacing, custom.spacing || {}); +// +// Button Styles +let button = { + // Start default styles + container: { + rippleColor: contrast.lowest, + borderRadius: border.radiusLarge, + minWidth: 48, + minHeight: 48, + paddingVertical: spacing.small, + paddingHorizontal: spacing.small + }, + containerDisabled: { + borderColor: border.color, + backgroundColor: border.color + }, + icon: { + size: font.sizeSmall + }, + iconDisabled: { + color: font.colorDisabled + }, + caption: { + fontSize: font.sizeSmall, + fontWeight: font.weightBold + }, + captionDisabled: { + color: font.colorDisabled + }, + // End default styles + header: { + color: contrast.highest, + borderColor: "transparent", + backgroundColor: "transparent", + fontSize: font.sizeSmall, + fontSizeIcon: font.sizeSmall, + paddingLeft: 0, + paddingRight: 10 + }, + primary: { + color: "#FFF", + borderColor: brand.primary, + backgroundColor: brand.primary + }, + secondary: { + color: brand.primary, + borderColor: brand.primary, + backgroundColor: "transparent", + inversedColor: "#FFF" + }, + success: { + color: "#FFF", + borderColor: brand.success, + backgroundColor: brand.success + }, + warning: { + color: "#FFF", + borderColor: brand.warning, + backgroundColor: brand.warning + }, + danger: { + color: "#FFF", + borderColor: brand.danger, + backgroundColor: brand.danger + } +}; +button = merge(button, custom.button || {}); +// +// Input Styles +let input = { + label: { + numberOfLines: 1, + color: font.colorTitle, + fontSize: font.sizeSmall, + textAlign: "left" + }, + labelDisabled: { + color: font.colorTitle + }, + input: { + color: font.colorTitle, + borderColor: contrast.lower, + backgroundColor: background.primary, + selectionColor: contrast.lower, + placeholderTextColor: contrast.low, + fontSize: font.size, + lineHeight: font.lineHeight, + borderWidth: border.width, + borderRadius: border.radiusLarge, + minWidth: 48, + minHeight: 48, + paddingVertical: spacing.small, + paddingHorizontal: spacing.small + }, + inputContainer: { + underlayColor: `rgba(${anyColorToRgbString(contrast.low)},0.4)` + }, + inputDisabled: { + color: font.colorDisabled, + borderColor: border.color, + backgroundColor: background.secondary + }, + inputError: { + color: brand.danger, + borderColor: brand.danger, + placeholderTextColor: brand.danger, + backgroundColor: brand.dangerLight + }, + validationMessage: { + color: brand.danger, + fontSize: font.size + }, + // Only used for the DropDown & ReferenceSelector + valueContainer: { + rippleColor: contrast.lowest + }, + itemContainer: { + maxWidth: 500, + paddingVertical: 12, + paddingHorizontal: spacing.regular, + backgroundColor: background.primary + }, + item: { + color: font.colorTitle, + fontSize: font.size + }, + selectedItemContainer: { + borderWidth: border.width, + borderRadius: border.radiusLarge, + borderColor: brand.primary, + backgroundColor: "transparent" + }, + selectedItem: { + color: font.colorTitle, + fontSize: font.size + } +}; +input = merge(input, custom.input || {}); +// +// Image Styles +let image = { + image: { + small: 24, + medium: 40, + large: 56, + larger: 72 + }, + imageDisabled: { + opacity: 0.6 + }, + icon: 16 +}; +image = merge(image, custom.image || {}); +// +// Navigation Styles +let navigation = { + statusBar: { + backgroundColor: background.primary, + barStyle: custom.darkMode ? "light-content" : "dark-content" + }, + topBar: { + backgroundColor: brand.primary, + backButtonColor: "#FFF", + titleColor: "#FFF", + titleFontSize: font.sizeH6 + }, + bottomBar: { + color: contrast.high, + selectedTextColor: brand.primary, + selectedIconColor: brand.primary, + backgroundColor: background.primary, + fontSize: font.sizeSmall, + iconSize: font.sizeSmall + }, + progressOverlay: { + color: font.colorTitle, + activityIndicatorColor: font.colorTitle, + backgroundColor: "rgba(0, 0, 0, 0.5)", + containerBackgroundColor: background.secondary, + fontSize: font.size, + borderRadius: border.radiusSmall, + elevation: 1.5, + shadowColor: "#000", + shadowOpacity: 0.1, + shadowRadius: 10 // Only for iOS + } +}; +navigation = merge(navigation, custom.navigation || {}); +// +// Container Styles +let container = { + containerDisabled: { + opacity: 0.6 + } +}; +container = merge(container, custom.container || {}); +// +// Badge Styles +let badge = { + fontWeight: font.weightNormal, + borderRadius: border.radiusLarge, + paddingVertical: spacing.smaller, + paddingHorizontal: spacing.small, + default: { + color: contrast.higher, + backgroundColor: contrast.lowest + }, + primary: { + color: brand.primary, + backgroundColor: brand.primaryLight + }, + success: { + color: brand.success, + backgroundColor: brand.successLight + }, + warning: { + color: brand.warning, + backgroundColor: brand.warningLight + }, + danger: { + color: brand.danger, + backgroundColor: brand.dangerLight + } +}; +badge = merge(badge, custom.badge || {}); +// +// Tabcontainer Styles +let tabContainer = { + tabBar: { + pressColor: contrast.lower, + backgroundColor: brand.primary + }, + tab: { + paddingVertical: 12 + }, + indicator: { + backgroundColor: fontDefaults.colorTitleLight, + height: Platform.select({ ios: 2, android: 2 }) + }, + label: { + color: fontDefaults.colorTitleLight, + fontSize: font.size, + fontWeight: font.weightSemiBold, + textTransform: "capitalize" + }, + activeLabel: { + color: fontDefaults.colorTitleLight, + fontSize: font.size, + fontWeight: font.weightSemiBold, + textTransform: "capitalize" + }, + badgeContainer: { + borderRadius: border.radiusLargest, + backgroundColor: badge.default.backgroundColor, + paddingVertical: spacing.smallest, + paddingHorizontal: spacing.small, + marginLeft: 8 + }, + badgeCaption: { + fontSize: font.size, + color: badge.default.color, + fontWeight: badge.fontWeight + } +}; +tabContainer = merge(tabContainer, custom.tabContainer || {}); +// +// Listview Styles +let listView = { + listItemDisabled: { + opacity: 0.6 + }, + border: { + color: border.color, + width: border.width + } +}; +listView = merge(listView, custom.listView || {}); +// +// Layoutgrid Styles +let layoutGrid = { + gutterSize: 16 +}; +layoutGrid = merge(layoutGrid, custom.layoutGrid || {}); +// +// +// Floating Action Button Styles +let floatingActionButton = { + container: { + margin: 30 + }, + button: { + size: 50, + rippleColor: contrast.lowest, + borderColor: brand.primary, + backgroundColor: brand.primary + }, + buttonIcon: { + size: font.sizeLarge, + color: contrast.lowest + }, + secondaryButton: { + size: 30, + backgroundColor: background.secondary + }, + secondaryButtonIcon: { + size: font.sizeSmall, + color: contrast.high + }, + secondaryButtonCaption: { + color: contrast.high, + fontSize: font.sizeSmall + }, + secondaryButtonCaptionContainer: { + backgroundColor: background.primary + } +}; +floatingActionButton = merge(floatingActionButton, custom.floatingActionButton || {}); +// +// Intro Screen Styles +let introScreen = { + fullscreenContainer: { + backgroundColor: background.primary + }, + popupContainer: { + paddingVertical: 150, + paddingHorizontal: 50, + backgroundColor: "rgba(0, 0, 0, 0.5)" + }, + pagination: { + text: { + color: font.colorTitle, + fontSize: font.size + }, + dotStyle: { + size: spacing.small, + backgroundColor: contrast.lower + }, + activeDotStyle: { + size: spacing.small, + backgroundColor: font.colorTitle + } + }, + button: { + icon: { + color: font.colorTitle, + size: button.icon.size + }, + caption: { + color: font.colorTitle, + fontSize: button.caption.fontSize, + fontWeight: font.weightBold, + textTransform: "uppercase", + paddingHorizontal: spacing.smallest + } + }, + buttonPaginationAbove: { + container: { + paddingVertical: spacing.regular, + backgroundColor: button.primary.backgroundColor + } + } +}; +introScreen = merge(introScreen, custom.introScreen || {}); +// +// List View Swipe Styles +let listViewSwipe = { + leftAction: { + panelSize: 160, + panelSizeSmall: 80, + panelSizeLarge: 240, + backgroundColor: background.primary + }, + rightAction: { + panelSize: 160, + panelSizeSmall: 80, + panelSizeLarge: 240, + backgroundColor: background.primary + } +}; +listViewSwipe = merge(listViewSwipe, custom.listViewSwipe || {}); +// +// Progress Bar Styles +let progressBar = { + bar: { + height: 8, + heightSmall: 4, + heightLarge: 12, + backgroundColor: contrast.lowest + }, + fill: { + backgroundColor: brand.primary + } +}; +progressBar = merge(progressBar, custom.progressBar || {}); +// +// Progress Circle Styles +let progressCircle = { + circle: { + size: 64 + }, + fill: { + width: 4, + lineCapRounded: true, + backgroundColor: brand.primary + }, + text: { + color: contrast.regular, + fontSize: font.size, + fontWeight: font.weightSemiBold + } +}; +progressCircle = merge(progressCircle, custom.progressCircle || {}); +// +// Rating Styles +let rating = { + containerDisabled: { + opacity: 0.5 + }, + icon: { + size: 24, + color: contrast.lower, + selectedColor: brand.warning + } +}; +rating = merge(rating, custom.rating || {}); +// +// (Range)Slider Styles +let slider = { + track: { + height: 4, + backgroundColor: contrast.lowest + }, + trackDisabled: { + backgroundColor: contrast.lower, + opacity: 0.4 + }, + highlight: { + backgroundColor: brand.primary + }, + highlightDisabled: { + backgroundColor: brand.primary + }, + marker: { + size: 24, + borderColor: contrast.lowest, + backgroundColor: background.secondary + }, + markerActive: { + size: 32 + }, + markerDisabled: { + size: 24, + borderColor: contrast.lowest, + backgroundColor: background.secondary + } +}; +slider = merge(slider, custom.slider || {}); +// +export * from "../../../theme/native/custom-variables"; +export { brand, backgroundDefaults, background, border, button, contrast, fontDefaults, font, input, image, layoutGrid, listView, navigation, spacing, container, tabContainer, badge, floatingActionButton, introScreen, listViewSwipe, progressBar, progressCircle, slider, rating }; diff --git a/test/themesource/atlas_core/web/_exclusion-variables.scss b/test/themesource/atlas_core/web/_exclusion-variables.scss new file mode 100644 index 0000000..3cec8bb --- /dev/null +++ b/test/themesource/atlas_core/web/_exclusion-variables.scss @@ -0,0 +1,63 @@ +// +// DISCLAIMER: +// Do not change this file, because it is core styling. +// + +//== Widget style exclusion +$exclude-background-helpers: false; +$exclude-badge: false; +$exclude-badge-button: false; +$exclude-badge-button-helpers: false; +$exclude-button: false; +$exclude-button-helpers: false; +$exclude-check-box: false; +$exclude-custom-dijit-widget: false; +$exclude-custom-switch: false; +$exclude-data-grid: false; +$exclude-data-grid-helpers: false; +$exclude-data-view: false; +$exclude-data-picker: false; +$exclude-glyphicon: false; +$exclude-grid: false; +$exclude-group-box: false; +$exclude-group-box-helpers: false; +$exclude-header: false; +$exclude-helper-classes: false; +$exclude-input: false; +$exclude-image-helpers: false; +$exclude-label: false; +$exclude-label-helpers: false; +$exclude-layout-grid: false; +$exclude-list-view: false; +$exclude-list-view-helpers: false; +$exclude-modal: false; +$exclude-navigation-bar: false; +$exclude-navigation-bar-helpers: false; +$exclude-navigation-list: false; +$exclude-navigation-tree: false; +$exclude-navigation-tree-helpers: false; +$exclude-pagination: false; +$exclude-pop-up-menu: false; +$exclude-progress: false; +$exclude-progress-bar: false; +$exclude-progress-bar-helpers: false; +$exclude-progress-circle: false; +$exclude-progress-circle-helpers: false; +$exclude-radio-button: false; +$exclude-range-slider: false; +$exclude-range-slider-helpers: false; +$exclude-rating: false; +$exclude-rating-helpers: false; +$exclude-simple-menu-bar: false; +$exclude-simple-menu-bar-helpers: false; +$exclude-slider: false; +$exclude-slider-helpers: false; +$exclude-table: false; +$exclude-table-helpers: false; +$exclude-tab-container: false; +$exclude-tab-container-helpers: false; +$exclude-template-grid: false; +$exclude-template-grid-helpers: false; +$exclude-timeline: false; +$exclude-typography: false; +$exclude-typography-helpers: false; diff --git a/test/themesource/atlas_core/web/_variables.scss b/test/themesource/atlas_core/web/_variables.scss new file mode 100644 index 0000000..f4c66ad --- /dev/null +++ b/test/themesource/atlas_core/web/_variables.scss @@ -0,0 +1,713 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +// +// ██████╗ █████╗ ███████╗██╗ ██████╗ +// ██╔══██╗██╔══██╗██╔════╝██║██╔════╝ +// ██████╔╝███████║███████╗██║██║ +// ██╔══██╗██╔══██║╚════██║██║██║ +// ██████╔╝██║ ██║███████║██║╚██████╗ +// ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝ +// + +//== Gray Shades +//## Different gray shades to be used for our variables and components +$gray-darker: #3b4251 !default; +$gray-dark: #606671 !default; +$gray: #787d87 !default; +$gray-light: #6c7180 !default; +$gray-primary: #ced0d3 !default; +$gray-lighter: #f8f8f8 !default; + +//== Step 1: Brand Colors +$brand-default: $gray-primary !default; +$brand-primary: #264ae5 !default; +$brand-success: #3cb33d !default; +$brand-warning: #eca51c !default; +$brand-danger: #e33f4e !default; + +$brand-logo: false !default; +$brand-logo-height: 26px !default; +$brand-logo-width: 26px !default; // Only used for CSS brand logo + +//== Step 2: UI Customization + +// Default Font Size & Color +$font-size-default: 14px !default; +$font-color-default: #6c717e !default; + +// Global Border Color +$border-color-default: #ced0d3 !default; +$border-radius-default: 5px !default; + +// Topbar +$topbar-bg: #fff !default; +$topbar-minimalheight: 60px !default; +$topbar-border-color: $border-color-default !default; + +// Topbar mobile +$m-header-height: 45px !default; +$m-header-bg: $brand-primary !default; +$m-header-color: #fff !default; +$m-header-title-size: 16px !default; + +// Navbar Brand Name / For your company, product, or project name (used in layouts/base/) +$navbar-brand-name: $font-color-default !default; + +// Background Colors +// Backgrounds +$bg-color: #f8f8f8 !default; +$bg-color-secondary: #fff !default; + +// Default Link Color +$link-color: $brand-primary !default; +$link-hover-color: darken($link-color, 15%) !default; + +// +// █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ██╗ ██████╗███████╗██████╗ +// ██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ██║██╔════╝██╔════╝██╔══██╗ +// ███████║██║ ██║██║ ██║███████║██╔██╗ ██║██║ █████╗ ██║ ██║ +// ██╔══██║██║ ██║╚██╗ ██╔╝██╔══██║██║╚██╗██║██║ ██╔══╝ ██║ ██║ +// ██║ ██║██████╔╝ ╚████╔╝ ██║ ██║██║ ╚████║╚██████╗███████╗██████╔╝ +// ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝╚══════╝╚═════╝ +// + +//== Typography +//## Change your font family, weight, line-height, headings and more (used in components/typography) + +// Font Family Import (Used for google font plugin in theme creater) +$font-family-import: "https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" !default; + +// Font Family / False = fallback from Bootstrap (Helvetica Neue) +$font-family-base: "SFProDisplay", "Open Sans", sans-serif !default; + +// Font Sizes +$font-size-large: 18px !default; +$font-size-small: 12px !default; + +// Font Weights +$font-weight-light: 100 !default; +$font-weight-normal: normal !default; +$font-weight-semibold: 600 !default; +$font-weight-bold: bold !default; + +// Font Size Headers +$font-size-h1: 31px !default; +$font-size-h2: 26px !default; +$font-size-h3: 24px !default; +$font-size-h4: 18px !default; +$font-size-h5: $font-size-default !default; +$font-size-h6: 12px !default; + +// Font Weight Headers +$font-weight-header: $font-weight-semibold !default; + +// Line Height +$line-height-base: 1.428571429 !default; + +// Spacing +$font-header-margin: 0 0 8px 0 !default; + +// Text Colors +$font-color-detail: #6c717e !default; +$font-color-header: #0a1326 !default; + +//== Navigation +//## Used in components/navigation + +// Default Navigation styling +$navigation-item-height: unset !default; +$navigation-item-padding: 16px !default; + +$navigation-font-size: $font-size-default !default; +$navigation-sub-font-size: $font-size-small !default; +$navigation-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler + +$navigation-color: #fff !default; +$navigation-color-hover: #fff !default; +$navigation-color-active: #fff !default; + +$navigation-sub-color: #aaa !default; +$navigation-sub-color-hover: $brand-primary !default; +$navigation-sub-color-active: $brand-primary !default; + +// Navigation Sidebar +$navsidebar-font-size: $font-size-default !default; +$navsidebar-sub-font-size: $font-size-small !default; +$navsidebar-glyph-size: 20px !default; // For glyphicons that you can select in the Mendix Modeler + +$navsidebar-color: #fff !default; +$navsidebar-color-hover: #fff !default; +$navsidebar-color-active: #fff !default; + +$navsidebar-sub-color: #aaa !default; +$navsidebar-sub-color-hover: $brand-primary !default; +$navsidebar-sub-color-active: $brand-primary !default; + +// Navigation topbar +$navtopbar-font-size: $font-size-default !default; +$navtopbar-sub-font-size: $font-size-small !default; +$navtopbar-glyph-size: 1.2em !default; // For glyphicons that you can select in the Mendix Modeler + +$navtopbar-bg: $topbar-bg !default; +$navtopbar-bg-hover: darken($navtopbar-bg, 4) !default; +$navtopbar-bg-active: darken($navtopbar-bg, 8) !default; +$navtopbar-color: $font-color-default !default; +$navtopbar-color-hover: $navtopbar-color !default; +$navtopbar-color-active: $navtopbar-color !default; + +$navtopbar-sub-bg: lighten($navtopbar-bg, 4) !default; +$navtopbar-sub-bg-hover: $navtopbar-sub-bg !default; +$navtopbar-sub-bg-active: $navtopbar-sub-bg !default; +$navtopbar-sub-color: #aaa !default; +$navtopbar-sub-color-hover: $brand-primary !default; +$navtopbar-sub-color-active: $brand-primary !default; + +//## Used in layouts/base +$navtopbar-border-color: $topbar-border-color !default; + +//== Form +//## Used in components/inputs + +// Values that can be used default | lined +$form-input-style: default !default; + +// Form Label +$form-label-size: $font-size-default !default; +$form-label-weight: $font-weight-semibold !default; +$form-label-gutter: 8px !default; + +// Form Input dimensions +$form-input-height: auto !default; +$form-input-padding-y: 8px !default; +$form-input-padding-x: 8px !default; +$form-input-static-padding-y: 8px !default; +$form-input-static-padding-x: 0 !default; +$form-input-font-size: $form-label-size !default; +$form-input-line-height: $line-height-base !default; +$form-input-border-radius: $border-radius-default !default; + +// Form Input styling +$form-input-bg: #fff !default; +$form-input-bg-focus: #fff !default; +$form-input-bg-hover: $gray-primary !default; +$form-input-bg-disabled: $bg-color !default; +$form-input-color: $font-color-default !default; +$form-input-focus-color: $form-input-color !default; +$form-input-disabled-color: #9da1a8 !default; +$form-input-placeholder-color: #6c717c !default; +$form-input-border-color: $gray-primary !default; +$form-input-border-focus-color: $brand-primary !default; + +// Form Input Static styling +$form-input-static-border-color: $gray-primary !default; + +// Form Group +$form-group-margin-bottom: 16px !default; +$form-group-gutter: 16px !default; + +//== Buttons +//## Define background-color, border-color and text. Used in components/buttons + +// Default button style +$btn-font-size: 14px !default; +$btn-bordered: false !default; // Default value false, set to true if you want this effect +$btn-border-radius: $border-radius-default !default; + +// Button Background Color +$btn-default-bg: #fff !default; +$btn-primary-bg: $brand-primary !default; +$btn-success-bg: $brand-success !default; +$btn-warning-bg: $brand-warning !default; +$btn-danger-bg: $brand-danger !default; + +// Button Border Color +$btn-default-border-color: $gray-primary !default; +$btn-primary-border-color: $brand-primary !default; +$btn-success-border-color: $brand-success !default; +$btn-warning-border-color: $brand-warning !default; +$btn-danger-border-color: $brand-danger !default; + +// Button Text Color +$btn-default-color: $brand-primary !default; +$btn-primary-color: #fff !default; +$btn-success-color: #fff !default; +$btn-warning-color: #fff !default; +$btn-danger-color: #fff !default; + +// Button Icon Color +$btn-default-icon-color: $gray !default; + +// Button Background Color +$btn-default-bg-hover: $btn-default-border-color !default; +$btn-primary-bg-hover: mix($btn-primary-bg, black, 80%) !default; +$btn-success-bg-hover: mix($btn-success-bg, black, 80%) !default; +$btn-warning-bg-hover: mix($btn-warning-bg, black, 80%) !default; +$btn-danger-bg-hover: mix($btn-danger-bg, black, 80%) !default; +$btn-link-bg-hover: $gray-lighter !default; + +//== Header blocks +//## Define look and feel over multible building blocks that serve as header + +$header-min-height: 240px !default; +$header-bg-color: $brand-primary !default; +$header-bgimage-filter: brightness(60%) !default; +$header-text-color: #fff !default; +$header-text-color-detail: rgba(0, 0, 0, 0.2) !default; + +// +// ███████╗██╗ ██╗██████╗ ███████╗██████╗ ████████╗ +// ██╔════╝╚██╗██╔╝██╔══██╗██╔════╝██╔══██╗╚══██╔══╝ +// █████╗ ╚███╔╝ ██████╔╝█████╗ ██████╔╝ ██║ +// ██╔══╝ ██╔██╗ ██╔═══╝ ██╔══╝ ██╔══██╗ ██║ +// ███████╗██╔╝ ██╗██║ ███████╗██║ ██║ ██║ +// ╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ +// + +//== Color variations +//## These variations are used to support several other variables and components + +// Color variations +$color-default-darker: mix($brand-default, black, 60%) !default; +$color-default-dark: mix($brand-default, black, 70%) !default; +$color-default-light: mix($brand-default, white, 20%) !default; +$color-default-lighter: mix($brand-default, white, 10%) !default; + +$color-primary-darker: mix($brand-primary, black, 60%) !default; +$color-primary-dark: mix($brand-primary, black, 70%) !default; +$color-primary-light: mix($brand-primary, white, 20%) !default; +$color-primary-lighter: mix($brand-primary, white, 10%) !default; + +$color-success-darker: mix($brand-success, black, 60%) !default; +$color-success-dark: mix($brand-success, black, 70%) !default; +$color-success-light: mix($brand-success, white, 20%) !default; +$color-success-lighter: mix($brand-success, white, 10%) !default; + +$color-warning-darker: mix($brand-warning, black, 60%) !default; +$color-warning-dark: mix($brand-warning, black, 70%) !default; +$color-warning-light: mix($brand-warning, white, 20%) !default; +$color-warning-lighter: mix($brand-warning, white, 10%) !default; + +$color-danger-darker: mix($brand-danger, black, 60%) !default; +$color-danger-dark: mix($brand-danger, black, 70%) !default; +$color-danger-light: mix($brand-danger, white, 20%) !default; +$color-danger-lighter: mix($brand-danger, white, 10%) !default; + +$brand-gradient: linear-gradient(to right top, #264ae5, #2239c5, #1b29a6, #111988, #03096c) !default; + +//== Grids +//## Used for Datagrid, Templategrid, Listview & Tables (see components folder) + +// Default Border Colors +$grid-border-color: $border-color-default !default; + +// Spacing +// Default +$grid-padding-top: 16px !default; +$grid-padding-right: 16px !default; +$grid-padding-bottom: 16px !default; +$grid-padding-left: 16px !default; + +// Listview +$listview-padding-top: 16px !default; +$listview-padding-right: 16px !default; +$listview-padding-bottom: 16px !default; +$listview-padding-left: 16px !default; + +// Background Colors +$grid-bg: transparent !default; +$grid-bg-header: transparent !default; // Grid Headers +$grid-bg-hover: mix($grid-border-color, #fff, 20%) !default; +$grid-bg-selected: mix($grid-border-color, #fff, 30%) !default; +$grid-bg-selected-hover: mix($grid-border-color, #fff, 50%) !default; + +// Striped Background Color +$grid-bg-striped: mix($grid-border-color, #fff, 10%) !default; + +// Background Footer Color +$grid-footer-bg: $gray-primary !default; + +// Text Color +$grid-selected-color: $font-color-default !default; + +// Paging Colors +$grid-paging-bg: transparent !default; +$grid-paging-bg-hover: transparent !default; +$grid-paging-border-color: transparent !default; +$grid-paging-border-color-hover: transparent !default; +$grid-paging-color: $gray-light !default; +$grid-paging-color-hover: $brand-primary !default; + +//== Tabs +//## Default variables for Tab Container Widget (used in components/tabcontainer) + +// Text Color +$tabs-color: $font-color-detail !default; +$tabs-color-active: $font-color-default !default; +$tabs-lined-color-active: $font-color-default !default; + +$tabs-lined-border-width: 3px !default; + +// Border Color +$tabs-border-color: $border-color-default !default; +$tabs-lined-border-color: $brand-primary !default; + +// Background Color +$tabs-bg: transparent !default; +$tabs-bg-pills: #e7e7e9 !default; +$tabs-bg-hover: lighten($tabs-border-color, 5) !default; +$tabs-bg-active: $brand-primary !default; + +//== Modals +//## Default Mendix Modal, Blocking Modal and Login Modal (used in components/modals) + +// Background Color +$modal-header-bg: transparent !default; + +// Border Color +$modal-header-border-color: $border-color-default !default; + +// Text Color +$modal-header-color: $font-color-default !default; + +//== Dataview +//## Default variables for Dataview Widget (used in components/dataview) + +// Controls +$dataview-controls-bg: transparent !default; +$dataview-controls-border-color: $border-color-default !default; + +// Empty Message +$dataview-emptymessage-bg: $bg-color !default; +$dataview-emptymessage-color: $font-color-default !default; + +//== Alerts +//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) + +// Background Color +$alert-primary-bg: $color-primary-lighter !default; +$alert-secondary-bg: $color-primary-lighter !default; +$alert-success-bg: $color-success-lighter !default; +$alert-warning-bg: $color-warning-lighter !default; +$alert-danger-bg: $color-danger-lighter !default; + +// Text Color +$alert-primary-color: $color-primary-darker !default; +$alert-secondary-color: $color-primary-darker !default; +$alert-success-color: $color-success-darker !default; +$alert-warning-color: $color-warning-darker !default; +$alert-danger-color: $color-danger-darker !default; + +// Border Color +$alert-primary-border-color: $color-primary-dark !default; +$alert-secondary-border-color: $color-primary-dark !default; +$alert-success-border-color: $color-success-dark !default; +$alert-warning-border-color: $color-warning-dark !default; +$alert-danger-border-color: $color-danger-dark !default; + +//== Wizard + +$wizard-step-height: 48px !default; +$wizard-step-number-size: 64px !default; +$wizard-step-number-font-size: $font-size-h3 !default; + +//Wizard states +$wizard-default: #fff !default; +$wizard-active: $brand-primary !default; +$wizard-visited: $brand-success !default; + +//Wizard step states +$wizard-default-bg: $wizard-default !default; +$wizard-default-color: $wizard-default !default; +$wizard-default-step-color: $font-color-default !default; +$wizard-default-border-color: $border-color-default !default; + +$wizard-active-bg: $wizard-active !default; +$wizard-active-color: $wizard-default !default; +$wizard-active-step-color: $wizard-active !default; +$wizard-active-border-color: $wizard-active !default; + +$wizard-visited-bg: $wizard-visited !default; +$wizard-visited-color: $wizard-default !default; +$wizard-visited-step-color: $wizard-visited !default; +$wizard-visited-border-color: $wizard-visited !default; + +//== Labels +//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) + +// Background Color +$label-default-bg: $brand-default !default; +$label-primary-bg: $brand-primary !default; +$label-success-bg: $brand-success !default; +$label-warning-bg: $brand-warning !default; +$label-danger-bg: $brand-danger !default; + +// Border Color +$label-default-border-color: $brand-default !default; +$label-primary-border-color: $brand-primary !default; +$label-success-border-color: $brand-success !default; +$label-warning-border-color: $brand-warning !default; +$label-danger-border-color: $brand-danger !default; + +// Text Color +$label-default-color: $font-color-default !default; +$label-primary-color: #fff !default; +$label-success-color: #fff !default; +$label-warning-color: #fff !default; +$label-danger-color: #fff !default; + +//== Groupbox +//## Default variables for Groupbox Widget (used in components/groupbox) + +// Background Color +$groupbox-default-bg: $gray-primary !default; +$groupbox-primary-bg: $brand-primary !default; +$groupbox-success-bg: $brand-success !default; +$groupbox-warning-bg: $brand-warning !default; +$groupbox-danger-bg: $brand-danger !default; +$groupbox-white-bg: #fff !default; + +// Text Color +$groupbox-default-color: $font-color-default !default; +$groupbox-primary-color: #fff !default; +$groupbox-success-color: #fff !default; +$groupbox-warning-color: #fff !default; +$groupbox-danger-color: #fff !default; +$groupbox-white-color: $font-color-default !default; + +//== Callout (groupbox) Colors +//## Extended variables for Groupbox Widget (used in components/groupbox) + +// Text and Border Color +$callout-default-color: $font-color-default !default; +$callout-primary-color: $brand-primary !default; +$callout-success-color: $brand-success !default; +$callout-warning-color: $brand-warning !default; +$callout-danger-color: $brand-danger !default; + +// Background Color +$callout-default-bg: $color-default-lighter !default; +$callout-primary-bg: $color-primary-lighter !default; +$callout-success-bg: $color-success-lighter !default; +$callout-warning-bg: $color-warning-lighter !default; +$callout-danger-bg: $color-danger-lighter !default; + +//== Timeline +//## Extended variables for Timeline Widget +// Colors +$timeline-icon-color: $brand-primary !default; +$timeline-border-color: $border-color-default !default; +$timeline-event-time-color: $brand-primary !default; + +// Sizes +$timeline-icon-size: 18px !default; +$timeline-image-size: 36px !default; + +//Timeline grouping +$timeline-grouping-size: 120px !default; +$timeline-grouping-border-radius: 30px !default; +$timeline-grouping-border-color: $timeline-border-color !default; + +//== Spacing +//## Advanced layout options (used in base/mixins/default-spacing) + +// Smallest spacing +$spacing-smallest: 2px !default; + +// Smaller spacing +$spacing-smaller: 4px !default; + +// Small spacing +$spacing-small: 8px !default; + +// Medium spacing +$spacing-medium: 16px !default; +$t-spacing-medium: 16px !default; +$m-spacing-medium: 16px !default; + +// Large spacing +$spacing-large: 24px !default; +$t-spacing-large: 24px !default; +$m-spacing-large: 16px !default; + +// Larger spacing +$spacing-larger: 32px !default; + +// Largest spacing +$spacing-largest: 48px !default; + +// Layout spacing +$layout-spacing-top: 24px !default; +$layout-spacing-right: 24px !default; +$layout-spacing-bottom: 24px !default; +$layout-spacing-left: 24px !default; + +$t-layout-spacing-top: 24px !default; +$t-layout-spacing-right: 24px !default; +$t-layout-spacing-bottom: 24px !default; +$t-layout-spacing-left: 24px !default; + +$m-layout-spacing-top: 16px !default; +$m-layout-spacing-right: 16px !default; +$m-layout-spacing-bottom: 16px !default; +$m-layout-spacing-left: 16px !default; + +// Combined layout spacing +$layout-spacing: $layout-spacing-top $layout-spacing-right $layout-spacing-bottom $layout-spacing-left !default; +$m-layout-spacing: $m-layout-spacing-top $m-layout-spacing-right $m-layout-spacing-bottom $m-layout-spacing-left !default; +$t-layout-spacing: $t-layout-spacing-top $t-layout-spacing-right $t-layout-spacing-bottom $t-layout-spacing-left !default; + +// Gutter size +$gutter-size: 8px !default; + +//== Tables +//## Table spacing options (used in components/tables) + +$padding-table-cell-top: 8px !default; +$padding-table-cell-bottom: 8px !default; +$padding-table-cell-left: 8px !default; +$padding-table-cell-right: 8px !default; + +//== Media queries breakpoints +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +$screen-xs: 480px !default; +$screen-sm: 576px !default; +$screen-md: 768px !default; +$screen-lg: 992px !default; +$screen-xl: 1200px !default; + +// So media queries don't overlap when required, provide a maximum (used for max-width) +$screen-xs-max: ($screen-sm - 1) !default; +$screen-sm-max: ($screen-md - 1) !default; +$screen-md-max: ($screen-lg - 1) !default; +$screen-lg-max: ($screen-xl - 1) !default; + +//== Settings +//## Enable or disable your desired framework features +// Use of !important +$important-flex: true !default; // ./base/flex.scss +$important-spacing: true !default; // ./base/spacing.scss +$important-helpers: true !default; // ./helpers/helperclasses.scss + +//===== Legacy variables ===== + +//== Step 1: Brand Colors +$brand-inverse: #24276c !default; +$brand-info: #0086d9 !default; + +//== Step 2: UI Customization +// Sidebar +$sidebar-bg: $brand-inverse !default; + +//== Navigation +//## Used in components/navigation + +// Default Navigation styling +$navigation-bg: $brand-inverse !default; +$navigation-bg-hover: lighten($navigation-bg, 4) !default; +$navigation-bg-active: lighten($navigation-bg, 8) !default; + +$navigation-sub-bg: darken($navigation-bg, 4) !default; +$navigation-sub-bg-hover: $navigation-sub-bg !default; +$navigation-sub-bg-active: $navigation-sub-bg !default; + +$navigation-border-color: $navigation-bg-hover !default; + +// Navigation Sidebar +$navsidebar-bg: $sidebar-bg !default; +$navsidebar-bg-hover: darken($navsidebar-bg, 4) !default; +$navsidebar-bg-active: darken($navsidebar-bg, 8) !default; + +$navsidebar-sub-bg: darken($navsidebar-bg, 4) !default; +$navsidebar-sub-bg-hover: $navsidebar-sub-bg !default; +$navsidebar-sub-bg-active: $navsidebar-sub-bg !default; + +$navsidebar-border-color: $navsidebar-bg-hover !default; + +//== Form +//## Used in components/inputs + +// Form Label +$form-label-color: $brand-inverse !default; + +//== Buttons +//## Define background-color, border-color and text. Used in components/buttons + +// Button Background Color +$btn-inverse-bg: $brand-inverse !default; +$btn-info-bg: $brand-info !default; + +// Button Border Color +$btn-inverse-border-color: $brand-inverse !default; +$btn-info-border-color: $brand-info !default; + +// Button Text Color +$btn-inverse-color: #fff !default; +$btn-info-color: #fff !default; + +// Button Background Color +$btn-inverse-bg-hover: mix($btn-inverse-bg, white, 80%) !default; +$btn-info-bg-hover: mix($btn-info-bg, black, 80%) !default; + +//== Color variations +//## These variations are used to support several other variables and components + +// Color variations +$color-inverse-darker: mix($brand-inverse, black, 60%) !default; +$color-inverse-dark: mix($brand-inverse, black, 70%) !default; +$color-inverse-light: mix($brand-inverse, white, 40%) !default; +$color-inverse-lighter: mix($brand-inverse, white, 20%) !default; + +$color-info-darker: mix($brand-info, black, 60%) !default; +$color-info-dark: mix($brand-info, black, 70%) !default; +$color-info-light: mix($brand-info, white, 60%) !default; +$color-info-lighter: mix($brand-info, white, 20%) !default; + +//== Alerts +//## Default Bootstrap alerts, not a widget in the Modeler (used in components/alerts) + +// Background Color +$alert-info-bg: $color-primary-lighter !default; + +// Text Color +$alert-info-color: $color-primary-darker !default; + +// Border Color +$alert-info-border-color: $color-primary-dark !default; +//== Labels +//## Default Bootstrap Labels, not a widget in the Modeler (used in components/labels) + +// Background Color +$label-info-bg: $brand-info !default; +$label-inverse-bg: $brand-inverse !default; + +// Border Color +$label-info-border-color: $brand-info !default; +$label-inverse-border-color: $brand-inverse !default; + +// Text Color +$label-info-color: #fff !default; +$label-inverse-color: #fff !default; + +//== Groupbox +//## Default variables for Groupbox Widget (used in components/groupbox) + +// Background Color +$groupbox-inverse-bg: $brand-inverse !default; +$groupbox-info-bg: $brand-info !default; + +// Text Color +$groupbox-inverse-color: #fff !default; +$groupbox-info-color: #fff !default; +//== Callout (groupbox) Colors +//## Extended variables for Groupbox Widget (used in components/groupbox) + +// Text and Border Color +$callout-info-color: $brand-info !default; + +// Background Color +$callout-info-bg: $color-info-lighter !default; diff --git a/test/theme/styles/web/sass/core/_legacy/_mxui.scss b/test/themesource/atlas_core/web/core/_legacy/_mxui.scss old mode 100755 new mode 100644 similarity index 84% rename from test/theme/styles/web/sass/core/_legacy/_mxui.scss rename to test/themesource/atlas_core/web/core/_legacy/_mxui.scss index a7ad1dd..94b74ac --- a/test/theme/styles/web/sass/core/_legacy/_mxui.scss +++ b/test/themesource/atlas_core/web/core/_legacy/_mxui.scss @@ -3,118 +3,116 @@ See mxclientsystem/licenses.txt for third party licenses that apply. */ - /* Essential styles that themes can inherit. In other words, works but doesn't look great. */ - - /**** GENERIC PIECES ****/ - .dijitReset { - /* Use this style to null out padding, margin, border in your template elements +.dijitReset { + /* Use this style to null out padding, margin, border in your template elements so that page specific styles don't break them. - Use in all TABLE, TR and TD tags. */ - margin:0; - border:0; - padding:0; - font: inherit; - line-height:normal; - color: inherit; + margin: 0; + border: 0; + padding: 0; + font: inherit; + line-height: normal; + color: inherit; } .dj_a11y .dijitReset { - -moz-appearance: none; /* remove predefined high-contrast styling in Firefox */ + -moz-appearance: none; /* remove predefined high-contrast styling in Firefox */ } .dijitInline { - /* To inline block elements. + /* To inline block elements. Similar to InlineBox below, but this has fewer side-effects in Moz. Also, apparently works on a DIV as well as a FIELDSET. */ - display:inline-block; /* webkit and FF3 */ - border:0; - padding:0; - vertical-align:middle; + display: inline-block; /* webkit and FF3 */ + border: 0; + padding: 0; + vertical-align: middle; } table.dijitInline { - /* To inline tables with a given width set */ - display:inline-table; - box-sizing: content-box; -moz-box-sizing: content-box; + /* To inline tables with a given width set */ + display: inline-table; + box-sizing: content-box; } .dijitHidden { - /* To hide unselected panes in StackContainer etc. */ - position: absolute; /* remove from normal document flow to simulate display: none */ - visibility: hidden; /* hide element from view, but don't break scrolling, see #18612 */ + /* To hide unselected panes in StackContainer etc. */ + position: absolute; /* remove from normal document flow to simulate display: none */ + visibility: hidden; /* hide element from view, but don't break scrolling, see #18612 */ } .dijitHidden * { - visibility: hidden !important; /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */ + visibility: hidden !important; /* hide visibility:visible descendants of class=dijitHidden nodes, see #18799 */ } .dijitVisible { - /* To show selected pane in StackContainer etc. */ - display: block !important; /* override user's display:none setting via style setting or indirectly via class */ - position: relative; /* to support setting width/height, see #2033 */ - visibility: visible; + /* To show selected pane in StackContainer etc. */ + display: block !important; /* override user's display:none setting via style setting or indirectly via class */ + position: relative; /* to support setting width/height, see #2033 */ + visibility: visible; } .dj_ie6 .dijitComboBox .dijitInputContainer, .dijitInputContainer { - /* for positioning of placeHolder */ - overflow: hidden; - float: none !important; /* needed to squeeze the INPUT in */ - position: relative; + /* for positioning of placeHolder */ + overflow: hidden; + float: none !important; /* needed to squeeze the INPUT in */ + position: relative; } .dj_ie7 .dijitInputContainer { - float: left !important; /* needed by IE to squeeze the INPUT in */ - clear: left; - display: inline-block !important; /* to fix wrong text alignment in textdir=rtl text box */ + float: left !important; /* needed by IE to squeeze the INPUT in */ + clear: left; + display: inline-block !important; /* to fix wrong text alignment in textdir=rtl text box */ } .dj_ie .dijitSelect input, .dj_ie input.dijitTextBox, .dj_ie .dijitTextBox input { - font-size: 100%; + font-size: 100%; } .dijitSelect .dijitButtonText { - float: left; - vertical-align: top; + float: left; + vertical-align: top; } -TABLE.dijitSelect { - padding: 0 !important; /* messes up border alignment */ - border-collapse: separate; /* so jsfiddle works with Normalized CSS checked */ +table.dijitSelect { + padding: 0 !important; /* messes up border alignment */ + border-collapse: separate; /* so jsfiddle works with Normalized CSS checked */ } .dijitTextBox .dijitSpinnerButtonContainer, .dijitTextBox .dijitArrowButtonContainer, .dijitValidationTextBox .dijitValidationContainer { - float: right; - text-align: center; + float: right; + text-align: center; } .dijitSelect input.dijitInputField, .dijitTextBox input.dijitInputField { - /* override unreasonable user styling of buttons and icons */ - padding-left: 0 !important; - padding-right: 0 !important; + /* override unreasonable user styling of buttons and icons */ + padding-left: 0 !important; + padding-right: 0 !important; } .dijitValidationTextBox .dijitValidationContainer { - display: none; + display: none; } .dijitTeeny { - font-size:1px; - line-height:1px; + font-size: 1px; + line-height: 1px; } -.dijitOffScreen { /* these class attributes should supersede any inline positioning style */ - position: absolute !important; - left: -10000px !important; - top: -10000px !important; +.dijitOffScreen { + /* these class attributes should supersede any inline positioning style */ + position: absolute !important; + left: -10000px !important; + top: -10000px !important; } /* @@ -122,53 +120,53 @@ TABLE.dijitSelect { * with the real popup inside, and maybe an iframe too */ .dijitPopup { - position: absolute; - background-color: transparent; - margin: 0; - border: 0; - padding: 0; - -webkit-overflow-scrolling: touch; + position: absolute; + background-color: transparent; + margin: 0; + border: 0; + padding: 0; + -webkit-overflow-scrolling: touch; } .dijitPositionOnly { - /* Null out all position-related properties */ - padding: 0 !important; - border: 0 !important; - background-color: transparent !important; - background-image: none !important; - height: auto !important; - width: auto !important; + /* Null out all position-related properties */ + padding: 0 !important; + border: 0 !important; + background-color: transparent !important; + background-image: none !important; + height: auto !important; + width: auto !important; } .dijitNonPositionOnly { - /* Null position-related properties */ - float: none !important; - position: static !important; - margin: 0 0 0 0 !important; - vertical-align: middle !important; + /* Null position-related properties */ + float: none !important; + position: static !important; + margin: 0 0 0 0 !important; + vertical-align: middle !important; } .dijitBackgroundIframe { - /* iframe used to prevent problems with PDF or other applets overlaying menus etc */ - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: -1; - border: 0; - padding: 0; - margin: 0; + /* iframe used to prevent problems with PDF or other applets overlaying menus etc */ + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: -1; + border: 0; + padding: 0; + margin: 0; } .dijitDisplayNone { - /* hide something. Use this as a class rather than element.style so another class can override */ - display:none !important; + /* hide something. Use this as a class rather than element.style so another class can override */ + display: none !important; } .dijitContainer { - /* for all layout containers */ - overflow: hidden; /* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */ + /* for all layout containers */ + overflow: hidden; /* need on IE so something can be reduced in size, and so scrollbars aren't temporarily displayed when resizing */ } /**** @@ -180,17 +178,17 @@ TABLE.dijitSelect { .dj_a11y img.dijitArrowButtonInner, .dj_a11y .dijitCalendarIncrementControl, .dj_a11y .dijitTreeExpando { - /* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents + /* hide icon nodes in high contrast mode; when necessary they will be replaced by character equivalents * exception for input.dijitArrowButtonInner, because the icon and character are controlled by the same node */ - display: none; + display: none; } .dijitSpinner div.dijitArrowButtonInner { - display: block; /* override previous rule */ + display: block; /* override previous rule */ } .dj_a11y .dijitA11ySideArrow { - display: inline !important; /* display text instead */ - cursor: pointer; + display: inline !important; /* display text instead */ + cursor: pointer; } /* @@ -200,53 +198,53 @@ TABLE.dijitSelect { * border w/padding on other nodes. */ .dj_a11y .dijitCalendarDateLabel { - padding: 1px; - border: 0px !important; + padding: 1px; + border: 0px !important; } .dj_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel { - border-style: solid !important; - border-width: 1px !important; - padding: 0; + border-style: solid !important; + border-width: 1px !important; + padding: 0; } .dj_a11y .dijitCalendarDateTemplate { - padding-bottom: 0.1em !important; /* otherwise bottom border doesn't appear on IE */ - border: 0px !important; + padding-bottom: 0.1em !important; /* otherwise bottom border doesn't appear on IE */ + border: 0px !important; } .dj_a11y .dijitButtonNode { - border: black outset medium !important; + border: black outset medium !important; - /* In claro, hovering a toolbar button reduces padding and adds a border. + /* In claro, hovering a toolbar button reduces padding and adds a border. * Not needed in a11y mode since Toolbar buttons always have a border. */ - padding: 0 !important; + padding: 0 !important; } .dj_a11y .dijitArrowButton { - padding: 0 !important; + padding: 0 !important; } .dj_a11y .dijitButtonContents { - margin: 0.15em; /* Margin needed to make focus outline visible */ + margin: 0.15em; /* Margin needed to make focus outline visible */ } .dj_a11y .dijitTextBoxReadOnly .dijitInputField, .dj_a11y .dijitTextBoxReadOnly .dijitButtonNode { - border-style: outset!important; - border-width: medium!important; - border-color: #999 !important; - color:#999 !important; + border-style: outset !important; + border-width: medium !important; + border-color: #999 !important; + color: #999 !important; } /* button inner contents - labels, icons etc. */ .dijitButtonNode * { - vertical-align: middle; + vertical-align: middle; } .dijitSelect .dijitArrowButtonInner, .dijitButtonNode .dijitArrowButtonInner { - /* the arrow icon node */ - background: no-repeat center; - width: 12px; - height: 12px; - direction: ltr; /* needed by IE/RTL */ + /* the arrow icon node */ + background: no-repeat center; + width: 12px; + height: 12px; + direction: ltr; /* needed by IE/RTL */ } /**** @@ -255,119 +253,118 @@ TABLE.dijitSelect { ****/ .dijitLeft { - /* Left part of a 3-element border */ - background-position:left top; - background-repeat:no-repeat; + /* Left part of a 3-element border */ + background-position: left top; + background-repeat: no-repeat; } .dijitStretch { - /* Middle (stretchy) part of a 3-element border */ - white-space:nowrap; /* MOW: move somewhere else */ - background-repeat:repeat-x; + /* Middle (stretchy) part of a 3-element border */ + white-space: nowrap; /* MOW: move somewhere else */ + background-repeat: repeat-x; } .dijitRight { - /* Right part of a 3-element border */ - background-position:right top; - background-repeat:no-repeat; + /* Right part of a 3-element border */ + background-position: right top; + background-repeat: no-repeat; } /* Buttons */ .dj_gecko .dj_a11y .dijitButtonDisabled .dijitButtonNode { - opacity: 0.5; + opacity: 0.5; } .dijitToggleButton, .dijitButton, .dijitDropDownButton, .dijitComboButton { - /* outside of button */ - margin: 0.2em; - vertical-align: middle; + /* outside of button */ + margin: 0.2em; + vertical-align: middle; } .dijitButtonContents { - display: block; /* to make focus border rectangular */ + display: block; /* to make focus border rectangular */ } td.dijitButtonContents { - display: table-cell; /* but don't affect Select, ComboButton */ + display: table-cell; /* but don't affect Select, ComboButton */ } .dijitButtonNode img { - /* make text and images line up cleanly */ - vertical-align:middle; - /*margin-bottom:.2em;*/ + /* make text and images line up cleanly */ + vertical-align: middle; + /*margin-bottom:.2em;*/ } .dijitToolbar .dijitComboButton { - /* because Toolbar only draws a border around the hovered thing */ - border-collapse: separate; + /* because Toolbar only draws a border around the hovered thing */ + border-collapse: separate; } .dijitToolbar .dijitToggleButton, .dijitToolbar .dijitButton, .dijitToolbar .dijitDropDownButton, .dijitToolbar .dijitComboButton { - margin: 0; + margin: 0; } .dijitToolbar .dijitButtonContents { - /* just because it used to be this way */ - padding: 1px 2px; + /* just because it used to be this way */ + padding: 1px 2px; } - .dj_webkit .dijitToolbar .dijitDropDownButton { - padding-left: 0.3em; + padding-left: 0.3em; } .dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner { - padding:0; + padding: 0; } .dijitSelect { - border:1px solid gray; + border: 1px solid gray; } .dijitButtonNode { - /* Node that is acting as a button -- may or may not be a BUTTON element */ - border:1px solid gray; - margin:0; - line-height:normal; - vertical-align: middle; - text-align:center; - white-space: nowrap; + /* Node that is acting as a button -- may or may not be a BUTTON element */ + border: 1px solid gray; + margin: 0; + line-height: normal; + vertical-align: middle; + text-align: center; + white-space: nowrap; } .dj_webkit .dijitSpinner .dijitSpinnerButtonContainer { - /* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode) + /* apparent WebKit bug where messing with the font coupled with line-height:normal X 2 (dijitReset & dijitButtonNode) can be different than just a single line-height:normal, visible in InlineEditBox/Spinner */ - line-height:inherit; + line-height: inherit; } .dijitTextBox .dijitButtonNode { - border-width: 0; + border-width: 0; } .dijitSelect, .dijitSelect *, .dijitButtonNode, .dijitButtonNode * { - cursor: pointer; - -webkit-tap-highlight-color: transparent; + cursor: pointer; + -webkit-tap-highlight-color: transparent; } .dj_ie .dijitButtonNode { - /* ensure hasLayout */ - zoom: 1; + /* ensure hasLayout */ + zoom: 1; } .dj_ie .dijitButtonNode button { - /* + /* disgusting hack to get rid of spurious padding around button elements on IE. MSIE is truly the web's boat anchor. */ - overflow: visible; + overflow: visible; } div.dijitArrowButton { - float: right; + float: right; } /****** @@ -376,93 +373,93 @@ div.dijitArrowButton { *******/ .dijitTextBox { - border: solid black 1px; - width: 15em; /* need to set default size on outer node since inner nodes say and
    . user can override */ - vertical-align: middle; + border: solid black 1px; + width: 15em; /* need to set default size on outer node since inner nodes say and . user can override */ + vertical-align: middle; } .dijitTextBoxReadOnly, .dijitTextBoxDisabled { - color: gray; + color: gray; } .dj_safari .dijitTextBoxDisabled input { - color: #B0B0B0; /* because Safari lightens disabled input/textarea no matter what color you specify */ + color: #b0b0b0; /* because Safari lightens disabled input/textarea no matter what color you specify */ } .dj_safari textarea.dijitTextAreaDisabled { - color: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */ + color: #333; /* because Safari lightens disabled input/textarea no matter what color you specify */ } .dj_gecko .dijitTextBoxReadOnly input.dijitInputField, /* disable arrow and validation presentation inputs but allow real input for text selection */ .dj_gecko .dijitTextBoxDisabled input { - -moz-user-input: none; /* prevent focus of disabled textbox buttons */ + -moz-user-input: none; /* prevent focus of disabled textbox buttons */ } .dijitPlaceHolder { - /* hint text that appears in a textbox until user starts typing */ - color: #AAAAAA; - font-style: italic; - position: absolute; - top: 0; - left: 0; - white-space: nowrap; - pointer-events: none; /* so cut/paste context menu shows up when right clicking */ + /* hint text that appears in a textbox until user starts typing */ + color: #aaaaaa; + font-style: italic; + position: absolute; + top: 0; + left: 0; + white-space: nowrap; + pointer-events: none; /* so cut/paste context menu shows up when right clicking */ } .dijitTimeTextBox { - width: 8em; + width: 8em; } /* rules for webkit to deal with fuzzy blue focus border */ .dijitTextBox input:focus { - outline: none; /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */ + outline: none; /* blue fuzzy line looks wrong on combobox or something w/validation icon showing */ } .dijitTextBoxFocused { - outline: 5px -webkit-focus-ring-color; + outline: 5px -webkit-focus-ring-color; } .dijitSelect input, .dijitTextBox input { - float: left; /* needed by IE to remove secret margin */ + float: left; /* needed by IE to remove secret margin */ } .dj_ie6 input.dijitTextBox, .dj_ie6 .dijitTextBox input { - float: none; + float: none; } .dijitInputInner { - /* for when an is embedded inside an inline-block
    with a size and border */ - border:0 !important; - background-color:transparent !important; - width:100% !important; - /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */ - padding-left: 0 !important; - padding-right: 0 !important; - margin-left: 0 !important; - margin-right: 0 !important; + /* for when an is embedded inside an inline-block
    with a size and border */ + border: 0 !important; + background-color: transparent !important; + width: 100% !important; + /* IE dislikes horizontal tweaking combined with width:100% so punish everyone for consistency */ + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; } .dj_a11y .dijitTextBox input { - margin: 0 !important; + margin: 0 !important; } .dijitValidationTextBoxError input.dijitValidationInner, .dijitSelect input, .dijitTextBox input.dijitArrowButtonInner { - /* used to display arrow icon/validation icon, or in arrow character in high contrast mode. + /* used to display arrow icon/validation icon, or in arrow character in high contrast mode. * The css below is a trick to hide the character in non-high-contrast mode */ - text-indent: -2em !important; - direction: ltr !important; - text-align: left !important; - height: auto !important; + text-indent: -2em !important; + direction: ltr !important; + text-align: left !important; + height: auto !important; } .dj_ie .dijitSelect input, .dj_ie .dijitTextBox input, .dj_ie input.dijitTextBox { - overflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */ - line-height: normal; /* strict mode */ + overflow-y: visible; /* inputs need help expanding when padding is added or line-height is adjusted */ + line-height: normal; /* strict mode */ } .dijitSelect .dijitSelectLabel span { - line-height: 100%; + line-height: 100%; } .dj_ie .dijitSelect .dijitSelectLabel { - line-height: normal; + line-height: normal; } .dj_ie6 .dijitSelect .dijitSelectLabel, .dj_ie7 .dijitSelect .dijitSelectLabel, @@ -479,170 +476,164 @@ div.dijitArrowButton { .dj_iequirks .dijitTextBox input.dijitSpinnerButtonInner, .dj_iequirks .dijitTextBox input.dijitInputInner, .dj_iequirks input.dijitTextBox { - line-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */ + line-height: 100%; /* IE7 problem where the icon is vertically way too low w/o this */ } .dj_a11y input.dijitValidationInner, .dj_a11y input.dijitArrowButtonInner { - /* (in high contrast mode) revert rules from above so character displays */ - text-indent: 0 !important; - width: 1em !important; - color: black !important; + /* (in high contrast mode) revert rules from above so character displays */ + text-indent: 0 !important; + width: 1em !important; + color: black !important; } .dijitValidationTextBoxError .dijitValidationContainer { - display: inline; - cursor: default; + display: inline; + cursor: default; } /* ComboBox & Spinner */ .dijitSpinner .dijitSpinnerButtonContainer, .dijitComboBox .dijitArrowButtonContainer { - /* dividing line between input area and up/down button(s) for ComboBox and Spinner */ - border-width: 0 0 0 1px !important; /* !important needed due to wayward ".theme .dijitButtonNode" rules */ + /* dividing line between input area and up/down button(s) for ComboBox and Spinner */ + border-width: 0 0 0 1px !important; /* !important needed due to wayward ".theme .dijitButtonNode" rules */ } .dj_a11y .dijitSelect .dijitArrowButtonContainer, .dijitToolbar .dijitComboBox .dijitArrowButtonContainer { - /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */ - border-width: 0 !important; + /* overrides above rule plus mirror-image rule in dijit_rtl.css to have no divider when ComboBox in Toolbar */ + border-width: 0 !important; } .dijitComboBoxMenu { - /* Drop down menu is implemented as
    • ... but we don't want circles before each item */ - list-style-type: none; + /* Drop down menu is implemented as
      • ... but we don't want circles before each item */ + list-style-type: none; } .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { - /* dividing line between input area and up/down button(s) for ComboBox and Spinner */ - border-width: 0; + /* dividing line between input area and up/down button(s) for ComboBox and Spinner */ + border-width: 0; } .dj_ie .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { - clear: both; /* IE workaround */ + clear: both; /* IE workaround */ } .dj_ie .dijitToolbar .dijitComboBox { - /* make combobox buttons align properly with other buttons in a toolbar */ - vertical-align: middle; + /* make combobox buttons align properly with other buttons in a toolbar */ + vertical-align: middle; } /* Spinner */ .dijitTextBox .dijitSpinnerButtonContainer { - width: 1em; - position: relative !important; - overflow: hidden; + width: 1em; + position: relative !important; + overflow: hidden; } .dijitSpinner .dijitSpinnerButtonInner { - width:1em; - visibility:hidden !important; /* just a sizing element */ - overflow-x:hidden; + width: 1em; + visibility: hidden !important; /* just a sizing element */ + overflow-x: hidden; } .dijitComboBox .dijitButtonNode, .dijitSpinnerButtonContainer .dijitButtonNode { - border-width: 0; + border-width: 0; } .dj_a11y .dijitSpinnerButtonContainer .dijitButtonNode { - border-width: 0px !important; - border-style: solid !important; + border-width: 0px !important; + border-style: solid !important; } .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer, .dj_a11y .dijitSpinner .dijitArrowButtonInner, .dj_a11y .dijitSpinnerButtonContainer input { - width: 1em !important; + width: 1em !important; } .dj_a11y .dijitSpinner .dijitArrowButtonInner { - margin: 0 auto !important; /* should auto-center */ + margin: 0 auto !important; /* should auto-center */ } .dj_ie .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - padding-left: 0.3em !important; - padding-right: 0.3em !important; - margin-left: 0.3em !important; - margin-right: 0.3em !important; - width: 1.4em !important; + padding-left: 0.3em !important; + padding-right: 0.3em !important; + margin-left: 0.3em !important; + margin-right: 0.3em !important; + width: 1.4em !important; } .dj_ie7 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - padding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */ - padding-right: 0 !important; - width: 1em !important; + padding-left: 0 !important; /* manually center INPUT: character is .5em and total width = 1em */ + padding-right: 0 !important; + width: 1em !important; } .dj_ie6 .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - margin-left: 0.1em !important; - margin-right: 0.1em !important; - width: 1em !important; + margin-left: 0.1em !important; + margin-right: 0.1em !important; + width: 1em !important; } .dj_iequirks .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - margin-left: 0 !important; - margin-right: 0 !important; - width: 2em !important; + margin-left: 0 !important; + margin-right: 0 !important; + width: 2em !important; } .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings + /* note: .dijitInputLayoutContainer makes this rule override .dijitArrowButton settings * for dijit.form.Button */ - padding: 0; - position: absolute !important; - right: 0; - float: none; - height: 50%; - width: 100%; - bottom: auto; - left: 0; - right: auto; + padding: 0; + position: absolute !important; + right: 0; + float: none; + height: 50%; + width: 100%; + bottom: auto; + left: 0; + right: auto; } .dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - width: auto; + width: auto; } .dj_a11y .dijitSpinnerButtonContainer .dijitArrowButton { - overflow: visible !important; + overflow: visible !important; } .dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton { - top: 50%; - border-top-width: 1px !important; + top: 50%; + border-top-width: 1px !important; } .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { - top: 0; + top: 0; } .dijitSpinner .dijitArrowButtonInner { - margin: auto; - overflow-x: hidden; - height: 100% !important; + margin: auto; + overflow-x: hidden; + height: 100% !important; } .dj_iequirks .dijitSpinner .dijitArrowButtonInner { - height: auto !important; + height: auto !important; } .dijitSpinner .dijitArrowButtonInner .dijitInputField { - -moz-transform: scale(0.5); - -moz-transform-origin: center top; - -webkit-transform: scale(0.5); - -webkit-transform-origin: center top; - -o-transform: scale(0.5); - -o-transform-origin: center top; - transform: scale(0.5); - transform-origin: left top; - padding-top: 0; - padding-bottom: 0; - padding-left: 0 !important; - padding-right: 0 !important; - width: 100%; - visibility: hidden; + transform: scale(0.5); + transform-origin: left top; + padding-top: 0; + padding-bottom: 0; + padding-left: 0 !important; + padding-right: 0 !important; + width: 100%; + visibility: hidden; } .dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField { - zoom: 50%; /* emulate transform: scale(0.5) */ + zoom: 50%; /* emulate transform: scale(0.5) */ } .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner { - overflow: hidden; + overflow: hidden; } .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - width: 100%; + width: 100%; } .dj_iequirks .dj_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { - width: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */ + width: 1em; /* matches .dj_a11y .dijitTextBox .dijitSpinnerButtonContainer rule - 100% is the whole screen width in quirks */ } .dj_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { - vertical-align:top; - visibility: visible; + vertical-align: top; + visibility: visible; } .dj_a11y .dijitSpinnerButtonContainer { - width: 1em; + width: 1em; } /**** @@ -654,48 +645,48 @@ div.dijitArrowButton { .dijitCheckBox, .dijitRadio, .dijitCheckBoxInput { - padding: 0; - border: 0; - width: 16px; - height: 16px; - background-position:center center; - background-repeat:no-repeat; - overflow: hidden; + padding: 0; + border: 0; + width: 16px; + height: 16px; + background-position: center center; + background-repeat: no-repeat; + overflow: hidden; } .dijitCheckBox input, .dijitRadio input { - margin: 0; - padding: 0; - display: block; + margin: 0; + padding: 0; + display: block; } .dijitCheckBoxInput { - /* place the actual input on top, but invisible */ - opacity: 0; + /* place the actual input on top, but invisible */ + opacity: 0; } .dj_ie .dijitCheckBoxInput { - filter: alpha(opacity=0); + filter: alpha(opacity=0); } .dj_a11y .dijitCheckBox, .dj_a11y .dijitRadio { - /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */ - width: auto !important; - height: auto !important; + /* in a11y mode we display the native checkbox (not the icon), so don't restrict the size */ + width: auto !important; + height: auto !important; } .dj_a11y .dijitCheckBoxInput { - opacity: 1; - filter: none; - width: auto; - height: auto; + opacity: 1; + filter: none; + width: auto; + height: auto; } .dj_a11y .dijitFocusedLabel { - /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/ - border: 1px dotted; - outline: 0px !important; + /* for checkboxes or radio buttons in high contrast mode, use border rather than outline to indicate focus (outline does not work in FF)*/ + border: 1px dotted; + outline: 0px !important; } /**** @@ -706,79 +697,80 @@ div.dijitArrowButton { z-index: 0; /* so z-index settings below have no effect outside of the ProgressBar */ } .dijitProgressBarEmpty { - /* outer container and background of the bar that's not finished yet*/ - position:relative;overflow:hidden; - border:1px solid black; /* a11y: border necessary for high-contrast mode */ - z-index:0; /* establish a stacking context for this progress bar */ + /* outer container and background of the bar that's not finished yet*/ + position: relative; + overflow: hidden; + border: 1px solid black; /* a11y: border necessary for high-contrast mode */ + z-index: 0; /* establish a stacking context for this progress bar */ } .dijitProgressBarFull { - /* outer container for background of bar that is finished */ - position:absolute; - overflow:hidden; - z-index:-1; - top:0; - width:100%; + /* outer container for background of bar that is finished */ + position: absolute; + overflow: hidden; + z-index: -1; + top: 0; + width: 100%; } .dj_ie6 .dijitProgressBarFull { - height:1.6em; + height: 1.6em; } .dijitProgressBarTile { - /* inner container for finished portion */ - position:absolute; - overflow:hidden; - top:0; - left:0; - bottom:0; - right:0; - margin:0; - padding:0; - width: 100%; /* needed for IE/quirks */ - height:auto; - background-color:#aaa; - background-attachment: fixed; + /* inner container for finished portion */ + position: absolute; + overflow: hidden; + top: 0; + left: 0; + bottom: 0; + right: 0; + margin: 0; + padding: 0; + width: 100%; /* needed for IE/quirks */ + height: auto; + background-color: #aaa; + background-attachment: fixed; } .dj_a11y .dijitProgressBarTile { - /* a11y: The border provides visibility in high-contrast mode */ - border-width:2px; - border-style:solid; - background-color:transparent !important; + /* a11y: The border provides visibility in high-contrast mode */ + border-width: 2px; + border-style: solid; + background-color: transparent !important; } .dj_ie6 .dijitProgressBarTile { - /* width:auto works in IE6 with position:static but not position:absolute */ - position:static; - /* height:auto or 100% does not work in IE6 */ - height:1.6em; + /* width:auto works in IE6 with position:static but not position:absolute */ + position: static; + /* height:auto or 100% does not work in IE6 */ + height: 1.6em; } .dijitProgressBarIndeterminate .dijitProgressBarTile { - /* animated gif for 'indeterminate' mode */ + /* animated gif for 'indeterminate' mode */ } .dijitProgressBarIndeterminateHighContrastImage { - display:none; + display: none; } .dj_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage { - display:block; - position:absolute; - top:0; - bottom:0; - margin:0; - padding:0; - width:100%; - height:auto; + display: block; + position: absolute; + top: 0; + bottom: 0; + margin: 0; + padding: 0; + width: 100%; + height: auto; } .dijitProgressBarLabel { - display:block; - position:static; - width:100%; - text-align:center; - background-color:transparent !important; + display: block; + position: static; + width: 100%; + text-align: center; + background-color: transparent !important; } /**** @@ -786,55 +778,57 @@ div.dijitArrowButton { ****/ .dijitTooltip { - position: absolute; - z-index: 2000; - display: block; - /* make visible but off screen */ - left: 0; - top: -10000px; - overflow: visible; + position: absolute; + z-index: 2000; + display: block; + /* make visible but off screen */ + left: 0; + top: -10000px; + overflow: visible; } .dijitTooltipContainer { - border: solid black 2px; - background: #b8b5b5; - color: black; - font-size: small; + border: solid black 2px; + background: #b8b5b5; + color: black; + font-size: small; } .dijitTooltipFocusNode { - padding: 2px 2px 2px 2px; + padding: 2px 2px 2px 2px; } .dijitTooltipConnector { - position: absolute; + position: absolute; } .dj_a11y .dijitTooltipConnector { - display: none; /* won't show b/c it's background-image; hide to avoid border gap */ + display: none; /* won't show b/c it's background-image; hide to avoid border gap */ } .dijitTooltipData { - display:none; + display: none; } /* Layout widgets. This is essential CSS to make layout work (it isn't "styling" CSS) make sure that the position:absolute in dijitAlign* overrides other classes */ .dijitLayoutContainer { - position: relative; - display: block; - overflow: hidden; + position: relative; + display: block; + overflow: hidden; } .dijitAlignTop, .dijitAlignBottom, .dijitAlignLeft, .dijitAlignRight { - position: absolute; - overflow: hidden; + position: absolute; + overflow: hidden; } -body .dijitAlignClient { position: absolute; } +body .dijitAlignClient { + position: absolute; +} /* * BorderContainer @@ -842,28 +836,29 @@ body .dijitAlignClient { position: absolute; } * .dijitBorderContainer is a stylized layout where panes have border and margin. * .dijitBorderContainerNoGutter is a raw layout. */ -.dijitBorderContainer, .dijitBorderContainerNoGutter { - position:relative; - overflow: hidden; +.dijitBorderContainer, +.dijitBorderContainerNoGutter { + position: relative; + overflow: hidden; z-index: 0; /* so z-index settings below have no effect outside of the BorderContainer */ } .dijitBorderContainerPane, .dijitBorderContainerNoGutterPane { - position: absolute !important; /* !important to override position:relative in dijitTabContainer etc. */ - z-index: 2; /* above the splitters so that off-by-one browser errors don't cover up border of pane */ + position: absolute !important; /* !important to override position:relative in dijitTabContainer etc. */ + z-index: 2; /* above the splitters so that off-by-one browser errors don't cover up border of pane */ } .dijitBorderContainer > .dijitTextArea { - /* On Safari, for SimpleTextArea inside a BorderContainer, + /* On Safari, for SimpleTextArea inside a BorderContainer, don't want to display the grip to resize */ - resize: none; + resize: none; } .dijitGutter { - /* gutter is just a place holder for empty space between panes in BorderContainer */ - position: absolute; - font-size: 1px; /* needed by IE6 even though div is empty, otherwise goes to 15px */ + /* gutter is just a place holder for empty space between panes in BorderContainer */ + position: absolute; + font-size: 1px; /* needed by IE6 even though div is empty, otherwise goes to 15px */ } /* SplitContainer @@ -873,186 +868,198 @@ body .dijitAlignClient { position: absolute; } */ .dijitSplitter { - position: absolute; - overflow: hidden; - z-index: 10; /* above the panes so that splitter focus is visible on FF, see #7583*/ - background-color: #fff; - border-color: gray; - border-style: solid; - border-width: 0; + position: absolute; + overflow: hidden; + z-index: 10; /* above the panes so that splitter focus is visible on FF, see #7583*/ + background-color: #fff; + border-color: gray; + border-style: solid; + border-width: 0; } .dj_ie .dijitSplitter { - z-index: 1; /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */ + z-index: 1; /* behind the panes so that pane borders aren't obscured see test_Gui.html/[14392] */ } .dijitSplitterActive { - z-index: 11 !important; + z-index: 11 !important; } .dijitSplitterCover { - position:absolute; - z-index:-1; - top:0; - left:0; - width:100%; - height:100%; + position: absolute; + z-index: -1; + top: 0; + left: 0; + width: 100%; + height: 100%; } .dijitSplitterCoverActive { - z-index:3 !important; + z-index: 3 !important; } /* #6945: stop mouse events */ .dj_ie .dijitSplitterCover { - background: white; - opacity: 0; + background: white; + opacity: 0; } .dj_ie6 .dijitSplitterCover, .dj_ie7 .dijitSplitterCover, .dj_ie8 .dijitSplitterCover { - filter: alpha(opacity=0); + filter: alpha(opacity=0); } .dijitSplitterH { - height: 7px; - border-top:1px; - border-bottom:1px; - cursor: row-resize; - -webkit-tap-highlight-color: transparent; + height: 7px; + border-top: 1px; + border-bottom: 1px; + cursor: row-resize; + -webkit-tap-highlight-color: transparent; } .dijitSplitterV { - width: 7px; - border-left:1px; - border-right:1px; - cursor: col-resize; - -webkit-tap-highlight-color: transparent; + width: 7px; + border-left: 1px; + border-right: 1px; + cursor: col-resize; + -webkit-tap-highlight-color: transparent; } .dijitSplitContainer { - position: relative; - overflow: hidden; - display: block; + position: relative; + overflow: hidden; + display: block; } .dijitSplitPane { - position: absolute; + position: absolute; } .dijitSplitContainerSizerH, .dijitSplitContainerSizerV { - position:absolute; - font-size: 1px; - background-color: ThreeDFace; - border: 1px solid; - border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; - margin: 0; + position: absolute; + font-size: 1px; + background-color: ThreeDFace; + border: 1px solid; + border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; + margin: 0; } -.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb { - overflow:hidden; - position:absolute; - top:49%; +.dijitSplitContainerSizerH .thumb, +.dijitSplitterV .dijitSplitterThumb { + overflow: hidden; + position: absolute; + top: 49%; } -.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb { - position:absolute; - left:49%; +.dijitSplitContainerSizerV .thumb, +.dijitSplitterH .dijitSplitterThumb { + position: absolute; + left: 49%; } .dijitSplitterShadow, .dijitSplitContainerVirtualSizerH, .dijitSplitContainerVirtualSizerV { - font-size: 1px; - background-color: ThreeDShadow; - -moz-opacity: 0.5; - opacity: 0.5; - filter: Alpha(Opacity=50); - margin: 0; + font-size: 1px; + background-color: ThreeDShadow; + opacity: 0.5; + margin: 0; } -.dijitSplitContainerSizerH, .dijitSplitContainerVirtualSizerH { - cursor: col-resize; +.dijitSplitContainerSizerH, +.dijitSplitContainerVirtualSizerH { + cursor: col-resize; } -.dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV { - cursor: row-resize; +.dijitSplitContainerSizerV, +.dijitSplitContainerVirtualSizerV { + cursor: row-resize; } .dj_a11y .dijitSplitterH { - border-top:1px solid #d3d3d3 !important; - border-bottom:1px solid #d3d3d3 !important; + border-top: 1px solid #d3d3d3 !important; + border-bottom: 1px solid #d3d3d3 !important; } .dj_a11y .dijitSplitterV { - border-left:1px solid #d3d3d3 !important; - border-right:1px solid #d3d3d3 !important; + border-left: 1px solid #d3d3d3 !important; + border-right: 1px solid #d3d3d3 !important; } /* ContentPane */ .dijitContentPane { - display: block; - overflow: auto; /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */ - -webkit-overflow-scrolling: touch; + display: block; + overflow: auto; /* if we don't have this (or overflow:hidden), then Widget.resizeTo() doesn't make sense for ContentPane */ + -webkit-overflow-scrolling: touch; } .dijitContentPaneSingleChild { - /* + /* * if the ContentPane holds a single layout widget child which is being sized to match the content pane, * then the ContentPane should never get a scrollbar (but it does due to browser bugs, see #9449 */ - overflow: hidden; + overflow: hidden; } .dijitContentPaneLoading .dijitIconLoading, .dijitContentPaneError .dijitIconError { - margin-right: 9px; + margin-right: 9px; } /* TitlePane and Fieldset */ .dijitTitlePane { - display: block; - overflow: hidden; + display: block; + overflow: hidden; } .dijitFieldset { - border: 1px solid gray; + border: 1px solid gray; } -.dijitTitlePaneTitle, .dijitFieldsetTitle { - cursor: pointer; - -webkit-tap-highlight-color: transparent; +.dijitTitlePaneTitle, +.dijitFieldsetTitle { + cursor: pointer; + -webkit-tap-highlight-color: transparent; } -.dijitTitlePaneTitleFixedOpen, .dijitTitlePaneTitleFixedClosed, -.dijitFieldsetTitleFixedOpen, .dijitFieldsetTitleFixedClosed { - /* TitlePane or Fieldset that cannot be toggled */ - cursor: default; +.dijitTitlePaneTitleFixedOpen, +.dijitTitlePaneTitleFixedClosed, +.dijitFieldsetTitleFixedOpen, +.dijitFieldsetTitleFixedClosed { + /* TitlePane or Fieldset that cannot be toggled */ + cursor: default; } .dijitTitlePaneTitle * { - vertical-align: middle; + vertical-align: middle; } -.dijitTitlePane .dijitArrowNodeInner, .dijitFieldset .dijitArrowNodeInner { - /* normally, hide arrow text in favor of icon */ - display: none; +.dijitTitlePane .dijitArrowNodeInner, +.dijitFieldset .dijitArrowNodeInner { + /* normally, hide arrow text in favor of icon */ + display: none; } -.dj_a11y .dijitTitlePane .dijitArrowNodeInner, .dj_a11y .dijitFieldset .dijitArrowNodeInner { - /* ... except in a11y mode, then show text arrow */ - display: inline; - font-family: monospace; /* because - and + are different widths */ +.dj_a11y .dijitTitlePane .dijitArrowNodeInner, +.dj_a11y .dijitFieldset .dijitArrowNodeInner { + /* ... except in a11y mode, then show text arrow */ + display: inline; + font-family: monospace; /* because - and + are different widths */ } -.dj_a11y .dijitTitlePane .dijitArrowNode, .dj_a11y .dijitFieldset .dijitArrowNode { - /* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */ - display: none; +.dj_a11y .dijitTitlePane .dijitArrowNode, +.dj_a11y .dijitFieldset .dijitArrowNode { + /* ... and hide icon (TODO: just point dijitIcon class on the icon, and it hides automatically) */ + display: none; } -.dijitTitlePaneTitleFixedOpen .dijitArrowNode, .dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner, -.dijitTitlePaneTitleFixedClosed .dijitArrowNode, .dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner, -.dijitFieldsetTitleFixedOpen .dijitArrowNode, .dijitFieldsetTitleFixedOpen .dijitArrowNodeInner, -.dijitFieldsetTitleFixedClosed .dijitArrowNode, .dijitFieldsetTitleFixedClosed .dijitArrowNodeInner { - /* don't show the open close icon or text arrow; it makes the user think the pane is closable */ - display: none !important; /* !important to override above a11y rules to show text arrow */ +.dijitTitlePaneTitleFixedOpen .dijitArrowNode, +.dijitTitlePaneTitleFixedOpen .dijitArrowNodeInner, +.dijitTitlePaneTitleFixedClosed .dijitArrowNode, +.dijitTitlePaneTitleFixedClosed .dijitArrowNodeInner, +.dijitFieldsetTitleFixedOpen .dijitArrowNode, +.dijitFieldsetTitleFixedOpen .dijitArrowNodeInner, +.dijitFieldsetTitleFixedClosed .dijitArrowNode, +.dijitFieldsetTitleFixedClosed .dijitArrowNodeInner { + /* don't show the open close icon or text arrow; it makes the user think the pane is closable */ + display: none !important; /* !important to override above a11y rules to show text arrow */ } .dj_ie6 .dijitTitlePaneContentOuter, .dj_ie6 .dijitTitlePane .dijitTitlePaneTitle { - /* force hasLayout to ensure borders etc, show up */ - zoom: 1; + /* force hasLayout to ensure borders etc, show up */ + zoom: 1; } /* Color Palette @@ -1061,146 +1068,146 @@ body .dijitAlignClient { position: absolute; } */ .dijitColorPalette { - border: 1px solid #999; - background: #fff; - position: relative; + border: 1px solid #999; + background: #fff; + position: relative; } .dijitColorPalette .dijitPaletteTable { - /* Table that holds the palette cells, and overlays image file with color swatches. + /* Table that holds the palette cells, and overlays image file with color swatches. * padding/margin to align table with image. */ - padding: 2px 3px 3px 3px; - position: relative; - overflow: hidden; - outline: 0; - border-collapse: separate; + padding: 2px 3px 3px 3px; + position: relative; + overflow: hidden; + outline: 0; + border-collapse: separate; } .dj_ie6 .dijitColorPalette .dijitPaletteTable, .dj_ie7 .dijitColorPalette .dijitPaletteTable, .dj_iequirks .dijitColorPalette .dijitPaletteTable { - /* using padding above so that focus border isn't cutoff on moz/webkit, + /* using padding above so that focus border isn't cutoff on moz/webkit, * but using margin on IE because padding doesn't seem to work */ - padding: 0; - margin: 2px 3px 3px 3px; + padding: 0; + margin: 2px 3px 3px 3px; } .dijitColorPalette .dijitPaletteCell { - /*
    in the */ - font-size: 1px; - vertical-align: middle; - text-align: center; - background: none; + /*
    in the */ + font-size: 1px; + vertical-align: middle; + text-align: center; + background: none; } .dijitColorPalette .dijitPaletteImg { - /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */ - padding: 1px; /* white area between gray border and color swatch */ - border: 1px solid #999; - margin: 2px 1px; - cursor: default; - font-size: 1px; /* prevent from getting bigger just to hold a character */ + /* Called dijitPaletteImg for back-compat, this actually wraps the color swatch with a border and padding */ + padding: 1px; /* white area between gray border and color swatch */ + border: 1px solid #999; + margin: 2px 1px; + cursor: default; + font-size: 1px; /* prevent from getting bigger just to hold a character */ } .dj_gecko .dijitColorPalette .dijitPaletteImg { - padding-bottom: 0; /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */ + padding-bottom: 0; /* workaround rendering glitch on FF, it adds an extra pixel at the bottom */ } .dijitColorPalette .dijitColorPaletteSwatch { - /* the actual part where the color is */ - width: 14px; - height: 12px; + /* the actual part where the color is */ + width: 14px; + height: 12px; } .dijitPaletteTable td { - padding: 0; + padding: 0; } .dijitColorPalette .dijitPaletteCell:hover .dijitPaletteImg { - /* hovered color swatch */ - border: 1px solid #000; + /* hovered color swatch */ + border: 1px solid #000; } .dijitColorPalette .dijitPaletteCell:active .dijitPaletteImg, .dijitColorPalette .dijitPaletteTable .dijitPaletteCellSelected .dijitPaletteImg { - border: 2px solid #000; - margin: 1px 0; /* reduce margin to compensate for increased border */ + border: 2px solid #000; + margin: 1px 0; /* reduce margin to compensate for increased border */ } - .dj_a11y .dijitColorPalette .dijitPaletteTable, .dj_a11y .dijitColorPalette .dijitPaletteTable * { - /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */ - background-color: transparent !important; + /* table cells are to catch events, but the swatches are in the PaletteImg behind the table */ + background-color: transparent !important; } /* AccordionContainer */ .dijitAccordionContainer { - border:1px solid #b7b7b7; - border-top:0 !important; + border: 1px solid #b7b7b7; + border-top: 0 !important; } .dijitAccordionTitle { - cursor: pointer; - -webkit-tap-highlight-color: transparent; + cursor: pointer; + -webkit-tap-highlight-color: transparent; } .dijitAccordionTitleSelected { - cursor: default; + cursor: default; } /* images off, high-contrast mode styles */ .dijitAccordionTitle .arrowTextUp, .dijitAccordionTitle .arrowTextDown { - display: none; - font-size: 0.65em; - font-weight: normal !important; + display: none; + font-size: 0.65em; + font-weight: normal !important; } .dj_a11y .dijitAccordionTitle .arrowTextUp, .dj_a11y .dijitAccordionTitleSelected .arrowTextDown { - display: inline; + display: inline; } .dj_a11y .dijitAccordionTitleSelected .arrowTextUp { - display: none; + display: none; } .dijitAccordionChildWrapper { - /* this is the node whose height is adjusted */ - overflow: hidden; + /* this is the node whose height is adjusted */ + overflow: hidden; } /* Calendar */ .dijitCalendarContainer table { - width: auto; /* in case user has specified a width for the TABLE nodes, see #10553 */ - clear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */ + width: auto; /* in case user has specified a width for the TABLE nodes, see #10553 */ + clear: both; /* clear margin created for left/right month arrows; needed on IE10 for CalendarLite */ } -.dijitCalendarContainer th, .dijitCalendarContainer td { - padding: 0; - vertical-align: middle; +.dijitCalendarContainer th, +.dijitCalendarContainer td { + padding: 0; + vertical-align: middle; } .dijitCalendarMonthContainer { - text-align: center; + text-align: center; } .dijitCalendarDecrementArrow { - float: left; + float: left; } .dijitCalendarIncrementArrow { - float: right; + float: right; } .dijitCalendarYearLabel { - white-space: nowrap; /* make sure previous, current, and next year appear on same row */ + white-space: nowrap; /* make sure previous, current, and next year appear on same row */ } .dijitCalendarNextYear { - margin:0 0 0 0.55em; + margin: 0 0 0 0.55em; } .dijitCalendarPreviousYear { - margin:0 0.55em 0 0; + margin: 0 0.55em 0 0; } .dijitCalendarIncrementControl { - vertical-align: middle; + vertical-align: middle; } .dijitCalendarIncrementControl, @@ -1208,53 +1215,53 @@ body .dijitAlignClient { position: absolute; } .dijitCalendarMonthLabel, .dijitCalendarPreviousYear, .dijitCalendarNextYear { - cursor: pointer; - -webkit-tap-highlight-color: transparent; + cursor: pointer; + -webkit-tap-highlight-color: transparent; } .dijitCalendarDisabledDate { - color: gray; - text-decoration: line-through; - cursor: default; + color: gray; + text-decoration: line-through; + cursor: default; } .dijitSpacer { - /* don't display it, but make it affect the width */ - position: relative; - height: 1px; - overflow: hidden; - visibility: hidden; + /* don't display it, but make it affect the width */ + position: relative; + height: 1px; + overflow: hidden; + visibility: hidden; } /* Styling for month drop down list */ .dijitCalendarMonthMenu .dijitCalendarMonthLabel { - text-align:center; + text-align: center; } /* Menu */ .dijitMenu { - border:1px solid black; - background-color:white; + border: 1px solid black; + background-color: white; } .dijitMenuTable { - border-collapse:collapse; - border-width:0; - background-color:white; + border-collapse: collapse; + border-width: 0; + background-color: white; } /* workaround for webkit bug #8427, remove this when it is fixed upstream */ -.dj_webkit .dijitMenuTable td[colspan="2"]{ - border-right:hidden; +.dj_webkit .dijitMenuTable td[colspan="2"] { + border-right: hidden; } .dijitMenuItem { - text-align: left; - white-space: nowrap; - padding:.1em .2em; - cursor:pointer; - -webkit-tap-highlight-color: transparent; + text-align: left; + white-space: nowrap; + padding: 0.1em 0.2em; + cursor: pointer; + -webkit-tap-highlight-color: transparent; } /* @@ -1263,102 +1270,103 @@ rule below that handles the high contrast case when there's no shading. Hiding the focus border also works around webkit bug https://code.google.com/p/chromium/issues/detail?id=125779. */ .dijitMenuItem:focus { - outline: none + outline: none; } .dijitMenuPassive .dijitMenuItemHover, .dijitMenuItemSelected { - /* + /* * dijitMenuItemHover refers to actual mouse over * dijitMenuItemSelected is used after a menu has been "activated" by * clicking it, tabbing into it, or being opened from a parent menu, * and denotes that the menu item has focus or that focus is on a child * menu */ - background-color:black; - color:white; + background-color: black; + color: white; } -.dijitMenuItemIcon, .dijitMenuExpand { - background-repeat: no-repeat; +.dijitMenuItemIcon, +.dijitMenuExpand { + background-repeat: no-repeat; } .dijitMenuItemDisabled * { - /* for a disabled menu item, just set it to mostly transparent */ - opacity:0.5; - cursor:default; + /* for a disabled menu item, just set it to mostly transparent */ + opacity: 0.5; + cursor: default; } .dj_ie .dj_a11y .dijitMenuItemDisabled, .dj_ie .dj_a11y .dijitMenuItemDisabled *, .dj_ie .dijitMenuItemDisabled * { - color: gray; - filter: alpha(opacity=35); + color: gray; + filter: alpha(opacity=35); } .dijitMenuItemLabel { - vertical-align: middle; + vertical-align: middle; } .dj_a11y .dijitMenuItemSelected { - border: 1px dotted black !important; /* for 2.0 use outline instead, to prevent jitter */ + border: 1px dotted black !important; /* for 2.0 use outline instead, to prevent jitter */ } .dj_a11y .dijitMenuItemSelected .dijitMenuItemLabel { - border-width: 1px; - border-style: solid; + border-width: 1px; + border-style: solid; } .dj_ie8 .dj_a11y .dijitMenuItemLabel { - position:static; + position: static; } .dijitMenuExpandA11y { - display: none; + display: none; } .dj_a11y .dijitMenuExpandA11y { - display: inline; + display: inline; } .dijitMenuSeparator td { - border: 0; - padding: 0; + border: 0; + padding: 0; } /* separator can be two pixels -- set border of either one to 0 to have only one */ .dijitMenuSeparatorTop { - height: 50%; - margin: 0; - margin-top:3px; - font-size: 1px; + height: 50%; + margin: 0; + margin-top: 3px; + font-size: 1px; } .dijitMenuSeparatorBottom { - height: 50%; - margin: 0; - margin-bottom:3px; - font-size: 1px; + height: 50%; + margin: 0; + margin-bottom: 3px; + font-size: 1px; } /* CheckedMenuItem and RadioMenuItem */ .dijitMenuItemIconChar { - display: none; /* don't display except in high contrast mode */ - visibility: hidden; /* for high contrast mode when menuitem is unchecked: leave space for when it is checked */ + display: none; /* don't display except in high contrast mode */ + visibility: hidden; /* for high contrast mode when menuitem is unchecked: leave space for when it is checked */ } .dj_a11y .dijitMenuItemIconChar { - display: inline; /* display character in high contrast mode, since icon doesn't show */ + display: inline; /* display character in high contrast mode, since icon doesn't show */ } .dijitCheckedMenuItemChecked .dijitMenuItemIconChar, .dijitRadioMenuItemChecked .dijitMenuItemIconChar { - visibility: visible; /* menuitem is checked */ + visibility: visible; /* menuitem is checked */ } .dj_ie .dj_a11y .dijitMenuBar .dijitMenuItem { - /* so bottom border of MenuBar appears on IE7 in high-contrast mode */ - margin: 0; + /* so bottom border of MenuBar appears on IE7 in high-contrast mode */ + margin: 0; } /* StackContainer */ .dijitStackController .dijitToggleButtonChecked * { - cursor: default; /* because pressing it has no effect */ + cursor: default; /* because pressing it has no effect */ } /*** @@ -1379,11 +1387,10 @@ Main class hierarchy: } .dj_ie6 .dijitTabContainer { /* workaround IE6 problem when tall content overflows TabContainer, see editor/test_FullScreen.html */ - overflow: hidden; - + overflow: hidden; } .dijitTabContainerNoLayout { - width: 100%; /* otherwise ScrollingTabController goes to 50K pixels wide */ + width: 100%; /* otherwise ScrollingTabController goes to 50K pixels wide */ } .dijitTabContainerBottom-tabs, @@ -1391,7 +1398,7 @@ Main class hierarchy: .dijitTabContainerLeft-tabs, .dijitTabContainerRight-tabs { z-index: 1; - overflow: visible !important; /* so tabs can cover up border adjacent to container */ + overflow: visible !important; /* so tabs can cover up border adjacent to container */ } .dijitTabController { @@ -1401,147 +1408,146 @@ Main class hierarchy: .dijitTabContainerTop-container, .dijitTabContainerLeft-container, .dijitTabContainerRight-container { - z-index:0; - overflow: hidden; - border: 1px solid black; + z-index: 0; + overflow: hidden; + border: 1px solid black; } .nowrapTabStrip { - width: 50000px; - display: block; - position: relative; - text-align: left; /* just in case ancestor has non-standard setting */ + width: 50000px; + display: block; + position: relative; + text-align: left; /* just in case ancestor has non-standard setting */ z-index: 1; } .dijitTabListWrapper { - overflow: hidden; + overflow: hidden; z-index: 1; } .dj_a11y .tabStripButton img { - /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */ - display: none; + /* hide the icons (or rather the empty space where they normally appear) because text will appear instead */ + display: none; } .dijitTabContainerTop-tabs { - border-bottom: 1px solid black; + border-bottom: 1px solid black; } .dijitTabContainerTop-container { - border-top: 0; + border-top: 0; } .dijitTabContainerLeft-tabs { - border-right: 1px solid black; - float: left; /* needed for IE7 RTL mode */ + border-right: 1px solid black; + float: left; /* needed for IE7 RTL mode */ } .dijitTabContainerLeft-container { - border-left: 0; + border-left: 0; } .dijitTabContainerBottom-tabs { - border-top: 1px solid black; + border-top: 1px solid black; } .dijitTabContainerBottom-container { - border-bottom: 0; + border-bottom: 0; } .dijitTabContainerRight-tabs { - border-left: 1px solid black; - float: left; /* needed for IE7 RTL mode */ + border-left: 1px solid black; + float: left; /* needed for IE7 RTL mode */ } .dijitTabContainerRight-container { - border-right: 0; + border-right: 0; } -div.dijitTabDisabled, .dj_ie div.dijitTabDisabled { - cursor: auto; +div.dijitTabDisabled, +.dj_ie div.dijitTabDisabled { + cursor: auto; } .dijitTab { - position:relative; - cursor:pointer; - -webkit-tap-highlight-color: transparent; - white-space:nowrap; - z-index:3; + position: relative; + cursor: pointer; + -webkit-tap-highlight-color: transparent; + white-space: nowrap; + z-index: 3; } .dijitTab * { - /* make tab icons and close icon line up w/text */ - vertical-align: middle; + /* make tab icons and close icon line up w/text */ + vertical-align: middle; } .dijitTabChecked { - cursor: default; /* because clicking will have no effect */ + cursor: default; /* because clicking will have no effect */ } .dijitTabContainerTop-tabs .dijitTab { - top: 1px; /* to overlap border on .dijitTabContainerTop-tabs */ + top: 1px; /* to overlap border on .dijitTabContainerTop-tabs */ } .dijitTabContainerBottom-tabs .dijitTab { - top: -1px; /* to overlap border on .dijitTabContainerBottom-tabs */ + top: -1px; /* to overlap border on .dijitTabContainerBottom-tabs */ } .dijitTabContainerLeft-tabs .dijitTab { - left: 1px; /* to overlap border on .dijitTabContainerLeft-tabs */ + left: 1px; /* to overlap border on .dijitTabContainerLeft-tabs */ } .dijitTabContainerRight-tabs .dijitTab { - left: -1px; /* to overlap border on .dijitTabContainerRight-tabs */ + left: -1px; /* to overlap border on .dijitTabContainerRight-tabs */ } - .dijitTabContainerTop-tabs .dijitTab, .dijitTabContainerBottom-tabs .dijitTab { - /* Inline-block */ - display:inline-block; /* webkit and FF3 */ + /* Inline-block */ + display: inline-block; /* webkit and FF3 */ } .tabStripButton { - z-index: 12; + z-index: 12; } .dijitTabButtonDisabled .tabStripButton { - display: none; + display: none; } - .dijitTabCloseButton { - margin-left: 1em; + margin-left: 1em; } .dijitTabCloseText { - display:none; + display: none; } .dijitTab .tabLabel { - /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font. + /* make sure tabs w/close button and w/out close button are same height, even w/small (<15px) font. * assumes <=15px height for close button icon. */ - min-height: 15px; - display: inline-block; + min-height: 15px; + display: inline-block; } .dijitNoIcon { - /* applied to / node when there is no icon specified */ - display: none; + /* applied to / node when there is no icon specified */ + display: none; } .dj_ie6 .dijitTab .dijitNoIcon { - /* because min-height (on .tabLabel, above) doesn't work on IE6 */ - display: inline; - height: 15px; - width: 1px; + /* because min-height (on .tabLabel, above) doesn't work on IE6 */ + display: inline; + height: 15px; + width: 1px; } /* images off, high-contrast mode styles */ .dj_a11y .dijitTabCloseButton { - background-image: none !important; - width: auto !important; - height: auto !important; + background-image: none !important; + width: auto !important; + height: auto !important; } .dj_a11y .dijitTabCloseText { - display: inline; + display: inline; } .dijitTabPane, .dijitStackContainer-child, .dijitAccordionContainer-child { - /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders + /* children of TabContainer, StackContainer, and AccordionContainer shouldn't have borders * b/c a border is already there from the TabContainer/StackContainer/AccordionContainer itself. */ border: none !important; @@ -1549,55 +1555,56 @@ div.dijitTabDisabled, .dj_ie div.dijitTabDisabled { /* InlineEditBox */ .dijitInlineEditBoxDisplayMode { - border: 1px solid transparent; /* so keyline (border) on hover can appear without screen jump */ - cursor: text; + border: 1px solid transparent; /* so keyline (border) on hover can appear without screen jump */ + cursor: text; } .dj_a11y .dijitInlineEditBoxDisplayMode, .dj_ie6 .dijitInlineEditBoxDisplayMode { - /* except that IE6 doesn't support transparent borders, nor does high contrast mode */ - border: none; + /* except that IE6 doesn't support transparent borders, nor does high contrast mode */ + border: none; } .dijitInlineEditBoxDisplayModeHover, .dj_a11y .dijitInlineEditBoxDisplayModeHover, .dj_ie6 .dijitInlineEditBoxDisplayModeHover { - /* An InlineEditBox in view mode (click this to edit the text) */ - background-color: #e2ebf2; - border: solid 1px black; + /* An InlineEditBox in view mode (click this to edit the text) */ + background-color: #e2ebf2; + border: solid 1px black; } .dijitInlineEditBoxDisplayModeDisabled { - cursor: default; + cursor: default; } /* Tree */ .dijitTree { - overflow: auto; /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */ - -webkit-tap-highlight-color: transparent; + overflow: auto; /* for scrollbars when Tree has a height setting, and to prevent wrapping around float elements, see #11491 */ + -webkit-tap-highlight-color: transparent; } .dijitTreeContainer { - float: left; /* for correct highlighting during horizontal scroll, see #16132 */ + float: left; /* for correct highlighting during horizontal scroll, see #16132 */ } .dijitTreeIndent { - /* amount to indent each tree node (relative to parent node) */ - width: 19px; + /* amount to indent each tree node (relative to parent node) */ + width: 19px; } -.dijitTreeRow, .dijitTreeContent { - white-space: nowrap; +.dijitTreeRow, +.dijitTreeContent { + white-space: nowrap; } .dj_ie .dijitTreeLabel:focus { - /* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */ - outline: 1px dotted black; + /* workaround IE9 behavior where down arrowing through TreeNodes doesn't show focus outline */ + outline: 1px dotted black; } .dijitTreeRow img { - /* make the expando and folder icons line up with the label */ - vertical-align: middle; + /* make the expando and folder icons line up with the label */ + vertical-align: middle; } .dijitTreeContent { @@ -1605,582 +1612,583 @@ div.dijitTabDisabled, .dj_ie div.dijitTabDisabled { } .dijitExpandoText { - display: none; + display: none; } .dj_a11y .dijitExpandoText { - display: inline; - padding-left: 10px; - padding-right: 10px; - font-family: monospace; - border-style: solid; - border-width: thin; - cursor: pointer; + display: inline; + padding-left: 10px; + padding-right: 10px; + font-family: monospace; + border-style: solid; + border-width: thin; + cursor: pointer; } .dijitTreeLabel { - margin: 0 4px; + margin: 0 4px; } /* Dialog */ .dijitDialog { - position: absolute; - z-index: 999; - overflow: hidden; /* override overflow: auto; from ContentPane to make dragging smoother */ + position: absolute; + z-index: 999; + overflow: hidden; /* override overflow: auto; from ContentPane to make dragging smoother */ } .dijitDialogTitleBar { - cursor: move; + cursor: move; } .dijitDialogFixed .dijitDialogTitleBar { - cursor:default; + cursor: default; } .dijitDialogCloseIcon { - cursor: pointer; - -webkit-tap-highlight-color: transparent; + cursor: pointer; + -webkit-tap-highlight-color: transparent; } .dijitDialogPaneContent { - -webkit-overflow-scrolling: touch; + -webkit-overflow-scrolling: touch; } .dijitDialogUnderlayWrapper { - position: absolute; - left: 0; - top: 0; - z-index: 998; - display: none; - background: transparent !important; + position: absolute; + left: 0; + top: 0; + z-index: 998; + display: none; + background: transparent !important; } .dijitDialogUnderlay { - background: #eee; - opacity: 0.5; + background: #eee; + opacity: 0.5; } .dj_ie .dijitDialogUnderlay { - filter: alpha(opacity=50); + filter: alpha(opacity=50); } /* images off, high-contrast mode styles */ .dj_a11y .dijitSpinnerButtonContainer, .dj_a11y .dijitDialog { - opacity: 1 !important; - background-color: white !important; + opacity: 1 !important; + background-color: white !important; } .dijitDialog .closeText { - display:none; - /* for the onhover border in high contrast on IE: */ - position:absolute; + display: none; + /* for the onhover border in high contrast on IE: */ + position: absolute; } .dj_a11y .dijitDialog .closeText { - display:inline; + display: inline; } /* Slider */ .dijitSliderMoveable { - z-index:99; - position:absolute !important; - display:block; - vertical-align:middle; + z-index: 99; + position: absolute !important; + display: block; + vertical-align: middle; } .dijitSliderMoveableH { - right:0; + right: 0; } .dijitSliderMoveableV { - right:50%; + right: 50%; } .dj_a11y div.dijitSliderImageHandle, .dijitSliderImageHandle { - margin:0; - padding:0; - position:relative !important; - border:8px solid gray; - width:0; - height:0; - cursor: pointer; - -webkit-tap-highlight-color: transparent; + margin: 0; + padding: 0; + position: relative !important; + border: 8px solid gray; + width: 0; + height: 0; + cursor: pointer; + -webkit-tap-highlight-color: transparent; } .dj_iequirks .dj_a11y .dijitSliderImageHandle { - font-size: 0; + font-size: 0; } .dj_ie7 .dijitSliderImageHandle { - overflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */ + overflow: hidden; /* IE7 workaround to make slider handle VISIBLE in non-a11y mode */ } .dj_ie7 .dj_a11y .dijitSliderImageHandle { - overflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */ + overflow: visible; /* IE7 workaround to make slider handle VISIBLE in a11y mode */ } .dj_a11y .dijitSliderFocused .dijitSliderImageHandle { - border:4px solid #000; - height:8px; - width:8px; + border: 4px solid #000; + height: 8px; + width: 8px; } .dijitSliderImageHandleV { - top:-8px; - right: -50%; + top: -8px; + right: -50%; } .dijitSliderImageHandleH { - left:50%; - top:-5px; - vertical-align:top; + left: 50%; + top: -5px; + vertical-align: top; } .dijitSliderBar { - border-style:solid; - border-color:black; - cursor: pointer; - -webkit-tap-highlight-color: transparent; + border-style: solid; + border-color: black; + cursor: pointer; + -webkit-tap-highlight-color: transparent; } .dijitSliderBarContainerV { - position:relative; - height:100%; - z-index:1; + position: relative; + height: 100%; + z-index: 1; } .dijitSliderBarContainerH { - position:relative; - z-index:1; + position: relative; + z-index: 1; } .dijitSliderBarH { - height:4px; - border-width:1px 0; + height: 4px; + border-width: 1px 0; } .dijitSliderBarV { - width:4px; - border-width:0 1px; + width: 4px; + border-width: 0 1px; } .dijitSliderProgressBar { - background-color:red; - z-index:1; + background-color: red; + z-index: 1; } .dijitSliderProgressBarV { - position:static !important; - height:0; - vertical-align:top; - text-align:left; + position: static !important; + height: 0; + vertical-align: top; + text-align: left; } .dijitSliderProgressBarH { - position:absolute !important; - width:0; - vertical-align:middle; - overflow:visible; + position: absolute !important; + width: 0; + vertical-align: middle; + overflow: visible; } .dijitSliderRemainingBar { - overflow:hidden; - background-color:transparent; - z-index:1; + overflow: hidden; + background-color: transparent; + z-index: 1; } .dijitSliderRemainingBarV { - height:100%; - text-align:left; + height: 100%; + text-align: left; } .dijitSliderRemainingBarH { - width:100% !important; + width: 100% !important; } /* the slider bumper is the space consumed by the slider handle when it hangs over an edge */ .dijitSliderBumper { - overflow:hidden; - z-index:1; + overflow: hidden; + z-index: 1; } .dijitSliderBumperV { - width:4px; - height:8px; - border-width:0 1px; + width: 4px; + height: 8px; + border-width: 0 1px; } .dijitSliderBumperH { - width:8px; - height:4px; - border-width:1px 0; + width: 8px; + height: 4px; + border-width: 1px 0; } .dijitSliderBottomBumper, .dijitSliderLeftBumper { - background-color:red; + background-color: red; } .dijitSliderTopBumper, .dijitSliderRightBumper { - background-color:transparent; + background-color: transparent; } .dijitSliderDecoration { - text-align:center; + text-align: center; } .dijitSliderDecorationC, .dijitSliderDecorationV { - position: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */ + position: relative; /* needed for IE+quirks+RTL+vertical (rendering bug) but add everywhere for custom styling consistency but this messes up IE horizontal sliders */ } .dijitSliderDecorationH { - width: 100%; + width: 100%; } .dijitSliderDecorationV { - height: 100%; - white-space: nowrap; + height: 100%; + white-space: nowrap; } .dijitSliderButton { - font-family:monospace; - margin:0; - padding:0; - display:block; + font-family: monospace; + margin: 0; + padding: 0; + display: block; } .dj_a11y .dijitSliderButtonInner { - visibility:visible !important; + visibility: visible !important; } .dijitSliderButtonContainer { - text-align:center; - height:0; /* ??? */ + text-align: center; + height: 0; /* ??? */ } .dijitSliderButtonContainer * { - cursor: pointer; - -webkit-tap-highlight-color: transparent; + cursor: pointer; + -webkit-tap-highlight-color: transparent; } .dijitSlider .dijitButtonNode { - padding:0; - display:block; + padding: 0; + display: block; } .dijitRuleContainer { - position:relative; - overflow:visible; + position: relative; + overflow: visible; } .dijitRuleContainerV { - height:100%; - line-height:0; - float:left; - text-align:left; + height: 100%; + line-height: 0; + float: left; + text-align: left; } .dj_opera .dijitRuleContainerV { - line-height:2%; + line-height: 2%; } .dj_ie .dijitRuleContainerV { - line-height:normal; + line-height: normal; } .dj_gecko .dijitRuleContainerV { - margin:0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */ + margin: 0 0 1px 0; /* mozilla bug workaround for float:left,height:100% block elements */ } .dijitRuleMark { - position:absolute; - border:1px solid black; - line-height:0; - height:100%; + position: absolute; + border: 1px solid black; + line-height: 0; + height: 100%; } .dijitRuleMarkH { - width:0; - border-top-width:0 !important; - border-bottom-width:0 !important; - border-left-width:0 !important; + width: 0; + border-top-width: 0 !important; + border-bottom-width: 0 !important; + border-left-width: 0 !important; } .dijitRuleLabelContainer { - position:absolute; + position: absolute; } .dijitRuleLabelContainerH { - text-align:center; - display:inline-block; + text-align: center; + display: inline-block; } .dijitRuleLabelH { - position:relative; - left:-50%; + position: relative; + left: -50%; } .dijitRuleLabelV { - /* so that long labels don't overflow to multiple rows, or overwrite slider itself */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; + /* so that long labels don't overflow to multiple rows, or overwrite slider itself */ + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; } .dijitRuleMarkV { - height:0; - border-right-width:0 !important; - border-bottom-width:0 !important; - border-left-width:0 !important; - width:100%; - left:0; + height: 0; + border-right-width: 0 !important; + border-bottom-width: 0 !important; + border-left-width: 0 !important; + width: 100%; + left: 0; } .dj_ie .dijitRuleLabelContainerV { - margin-top:-.55em; + margin-top: -0.55em; } .dj_a11y .dijitSliderReadOnly, .dj_a11y .dijitSliderDisabled { - opacity:0.6; + opacity: 0.6; } .dj_ie .dj_a11y .dijitSliderReadOnly .dijitSliderBar, .dj_ie .dj_a11y .dijitSliderDisabled .dijitSliderBar { - filter: alpha(opacity=40); + filter: alpha(opacity=40); } /* + and - Slider buttons: override theme settings to display icons */ .dj_a11y .dijitSlider .dijitSliderButtonContainer div { - font-family: monospace; /* otherwise hyphen is larger and more vertically centered */ - font-size: 1em; - line-height: 1em; - height: auto; - width: auto; - margin: 0 4px; + font-family: monospace; /* otherwise hyphen is larger and more vertically centered */ + font-size: 1em; + line-height: 1em; + height: auto; + width: auto; + margin: 0 4px; } /* Icon-only buttons (often in toolbars) still display the text in high-contrast mode */ .dj_a11y .dijitButtonContents .dijitButtonText, .dj_a11y .dijitTab .tabLabel { - display: inline !important; + display: inline !important; } .dj_a11y .dijitSelect .dijitButtonText { - display: inline-block !important; + display: inline-block !important; } /* TextArea, SimpleTextArea */ .dijitTextArea { - width:100%; - overflow-y: auto; /* w/out this IE's SimpleTextArea goes to overflow: scroll */ + width: 100%; + overflow-y: auto; /* w/out this IE's SimpleTextArea goes to overflow: scroll */ } .dijitTextArea[cols] { - width:auto; /* SimpleTextArea cols */ + width: auto; /* SimpleTextArea cols */ } .dj_ie .dijitTextAreaCols { - width:auto; + width: auto; } .dijitExpandingTextArea { - /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */ - resize: none; + /* for auto exanding textarea (called Textarea currently, rename for 2.0) don't want to display the grip to resize */ + resize: none; } - /* Toolbar * Note that other toolbar rules (for objects in toolbars) are scattered throughout this file. */ .dijitToolbarSeparator { - height: 18px; - width: 5px; - padding: 0 1px; - margin: 0; + height: 18px; + width: 5px; + padding: 0 1px; + margin: 0; } /* Editor */ .dijitIEFixedToolbar { - position:absolute; - /* top:0; */ - top: expression(eval((document.documentElement||document.body).scrollTop)); + position: absolute; + /* top:0; */ + top: expression(eval((document.documentElement||document.body) .scrollTop)); } .dijitEditor { - display: block; /* prevents glitch on FF with InlineEditBox, see #8404 */ + display: block; /* prevents glitch on FF with InlineEditBox, see #8404 */ } .dijitEditorDisabled, .dijitEditorReadOnly { - color: gray; + color: gray; } /* TimePicker */ .dijitTimePicker { - background-color: white; + background-color: white; } .dijitTimePickerItem { - cursor:pointer; - -webkit-tap-highlight-color: transparent; + cursor: pointer; + -webkit-tap-highlight-color: transparent; } .dijitTimePickerItemHover { - background-color:gray; - color:white; + background-color: gray; + color: white; } .dijitTimePickerItemSelected { - font-weight:bold; - color:#333; - background-color:#b7cdee; + font-weight: bold; + color: #333; + background-color: #b7cdee; } .dijitTimePickerItemDisabled { - color:gray; - text-decoration:line-through; + color: gray; + text-decoration: line-through; } .dijitTimePickerItemInner { - text-align:center; - border:0; - padding:2px 8px 2px 8px; + text-align: center; + border: 0; + padding: 2px 8px 2px 8px; } .dijitTimePickerTick, .dijitTimePickerMarker { - border-bottom:1px solid gray; + border-bottom: 1px solid gray; } .dijitTimePicker .dijitDownArrowButton { - border-top: none !important; + border-top: none !important; } .dijitTimePickerTick { - color:#CCC; + color: #ccc; } .dijitTimePickerMarker { - color:black; - background-color:#CCC; + color: black; + background-color: #ccc; } .dj_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner { - border: solid 4px black; + border: solid 4px black; } .dj_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner { - border: dashed 4px black; + border: dashed 4px black; } - .dijitToggleButtonIconChar { - /* character (instead of icon) to show that ToggleButton is checked */ - display:none !important; + /* character (instead of icon) to show that ToggleButton is checked */ + display: none !important; } .dj_a11y .dijitToggleButton .dijitToggleButtonIconChar { - display:inline !important; - visibility:hidden; + display: inline !important; + visibility: hidden; } -.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText { - font-family: "Arial Unicode MS"; /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */ +.dj_ie6 .dijitToggleButtonIconChar, +.dj_ie6 .tabStripButton .dijitButtonText { + font-family: "Arial Unicode MS"; /* otherwise the a11y character (checkmark, arrow, etc.) appears as a box */ } .dj_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar { - display: inline !important; /* In high contrast mode, display the check symbol */ - visibility:visible !important; + display: inline !important; /* In high contrast mode, display the check symbol */ + visibility: visible !important; } .dijitArrowButtonChar { - display:none !important; + display: none !important; } .dj_a11y .dijitArrowButtonChar { - display:inline !important; + display: inline !important; } .dj_a11y .dijitDropDownButton .dijitArrowButtonInner, .dj_a11y .dijitComboButton .dijitArrowButtonInner { - display:none !important; + display: none !important; } /* Select */ .dj_a11y .dijitSelect { - border-collapse: separate !important; - border-width: 1px; - border-style: solid; + border-collapse: separate !important; + border-width: 1px; + border-style: solid; } .dj_ie .dijitSelect { - vertical-align: middle; /* Set this back for what we hack in dijit inline */ + vertical-align: middle; /* Set this back for what we hack in dijit inline */ } .dj_ie6 .dijitSelect .dijitValidationContainer, .dj_ie8 .dijitSelect .dijitButtonText { - vertical-align: top; + vertical-align: top; } .dj_ie6 .dijitTextBox .dijitInputContainer, .dj_iequirks .dijitTextBox .dijitInputContainer, .dj_ie6 .dijitTextBox .dijitArrowButtonInner, .dj_ie6 .dijitSpinner .dijitSpinnerButtonInner, .dijitSelect .dijitSelectLabel { - vertical-align: baseline; + vertical-align: baseline; } .dijitNumberTextBox { - text-align: left; - direction: ltr; + text-align: left; + direction: ltr; } .dijitNumberTextBox .dijitInputInner { - text-align: inherit; /* input */ + text-align: inherit; /* input */ } .dijitNumberTextBox input.dijitInputInner, .dijitCurrencyTextBox input.dijitInputInner, .dijitSpinner input.dijitInputInner { - text-align: right; + text-align: right; } -.dj_ie8 .dijitNumberTextBox input.dijitInputInner, .dj_ie9 .dijitNumberTextBox input.dijitInputInner, -.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner, .dj_ie9 .dijitCurrencyTextBox input.dijitInputInner, -.dj_ie8 .dijitSpinner input.dijitInputInner, .dj_ie9 .dijitSpinner input.dijitInputInner { - /* workaround bug where caret invisible in empty textboxes */ - padding-right: 1px !important; +.dj_ie8 .dijitNumberTextBox input.dijitInputInner, +.dj_ie9 .dijitNumberTextBox input.dijitInputInner, +.dj_ie8 .dijitCurrencyTextBox input.dijitInputInner, +.dj_ie9 .dijitCurrencyTextBox input.dijitInputInner, +.dj_ie8 .dijitSpinner input.dijitInputInner, +.dj_ie9 .dijitSpinner input.dijitInputInner { + /* workaround bug where caret invisible in empty textboxes */ + padding-right: 1px !important; } .dijitToolbar .dijitSelect { - margin: 0; + margin: 0; } .dj_webkit .dijitToolbar .dijitSelect { - padding-left: 0.3em; + padding-left: 0.3em; } .dijitSelect .dijitButtonContents { - padding: 0; - white-space: nowrap; - text-align: left; - border-style: none solid none none; - border-width: 1px; + padding: 0; + white-space: nowrap; + text-align: left; + border-style: none solid none none; + border-width: 1px; } .dijitSelectFixedWidth .dijitButtonContents { - width: 100%; + width: 100%; } .dijitSelectMenu .dijitMenuItemIcon { - /* avoid blank area in left side of menu (since we have no icons) */ - display:none; + /* avoid blank area in left side of menu (since we have no icons) */ + display: none; } .dj_ie6 .dijitSelectMenu .dijitMenuItemLabel, .dj_ie7 .dijitSelectMenu .dijitMenuItemLabel { - /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */ - position: static; + /* Set back to static due to bug in ie6/ie7 - See Bug #9651 */ + position: static; } /* Fix the baseline of our label (for multi-size font elements) */ -.dijitSelectLabel * -{ - vertical-align: baseline; +.dijitSelectLabel * { + vertical-align: baseline; } /* Styling for the currently-selected option (rich text can mess this up) */ .dijitSelectSelectedOption * { - font-weight: bold; + font-weight: bold; } /* Fix the styling of the dropdown menu to be more combobox-like */ .dijitSelectMenu { - border-width: 1px; + border-width: 1px; } /* Used in cases, such as FullScreen plugin, when we need to force stuff to static positioning. */ .dijitForceStatic { - position: static !important; + position: static !important; } /**** Disabled cursor *****/ @@ -2188,17 +2196,17 @@ div.dijitTabDisabled, .dj_ie div.dijitTabDisabled { .dijitDisabled *, .dijitReadOnly, .dijitDisabled { - /* a region the user would be able to click on, but it's disabled */ - cursor: default; + /* a region the user would be able to click on, but it's disabled */ + cursor: default; } /* Drag and Drop */ .dojoDndItem { - padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */ + padding: 2px; /* will be replaced by border during drag over (dojoDndItemBefore, dojoDndItemAfter) */ - /* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */ - -webkit-touch-callout: none; - -webkit-user-select: none; /* Disable selection/Copy of UIWebView */ + /* Prevent magnifying-glass text selection icon to appear on mobile webkit as it causes a touchout event */ + -webkit-touch-callout: none; + -webkit-user-select: none; /* Disable selection/Copy of UIWebView */ } .dojoDndHorizontal .dojoDndItem { /* make contents of horizontal container be side by side, rather than vertical */ @@ -2207,7 +2215,7 @@ div.dijitTabDisabled, .dj_ie div.dijitTabDisabled { .dojoDndItemBefore, .dojoDndItemAfter { - border: 0px solid #369; + border: 0px solid #369; } .dojoDndItemBefore { border-width: 2px 0 0 0; @@ -2227,14 +2235,14 @@ div.dijitTabDisabled, .dj_ie div.dijitTabDisabled { } .dojoDndItemOver { - cursor:pointer; + cursor: pointer; } -.dj_gecko .dijitArrowButtonInner INPUT, -.dj_gecko INPUT.dijitArrowButtonInner { - -moz-user-focus:ignore; +.dj_gecko .dijitArrowButtonInner input, +.dj_gecko input.dijitArrowButtonInner { + -moz-user-focus: ignore; } .dijitFocused .dijitMenuItemShortcutKey { - text-decoration: underline; + text-decoration: underline; } /* Dijit custom styling */ @@ -2256,10 +2264,15 @@ div.dijitTabDisabled, .dj_ie div.dijitTabDisabled { /* Global Bootstrap changes */ /* Client defaults and helpers */ -.mx-dataview-content, .mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested), .mx-tabcontainer-content, .mx-grid-content { +.mx-dataview-content, +.mx-scrollcontainer-wrapper:not(.mx-scrollcontainer-nested), +.mx-tabcontainer-content, +.mx-grid-content { -webkit-overflow-scrolling: touch; } -html, body, #content { +html, +body, +#content { height: 100%; } #content > .mx-page { @@ -2287,7 +2300,7 @@ html, body, #content { } .mx-table th.nopadding, .mx-table td.nopadding { - padding: 0; + padding: 0; } .mx-offscreen { @@ -2317,7 +2330,6 @@ html, body, #content { background: url(data:image/gif;base64,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); } - /* Bacause we use checkboxes without labels, align them with other widgets. */ input[type="checkbox"] { margin: 9px 0; @@ -2365,18 +2377,18 @@ input[type="checkbox"] { white-space: pre-line; } -.mx-compound-control { - display: flex; -} - -.mx-compound-control button { - margin-left: 5px; -} +//.mx-compound-control { +// display: flex; +//} -[dir="rtl"] .mx-compound-control button { - margin-left: 0; - margin-right: 5px; -} +//.mx-compound-control button { +// margin-left: 5px; +//} +// +//[dir="rtl"] .mx-compound-control button { +// margin-left: 0; +// margin-right: 5px; +//} .mx-tooltip { margin: 10px; @@ -2388,7 +2400,9 @@ input[type="checkbox"] { .mx-tooltip-prepare { height: 24px; padding: 8px; - background: transparent url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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) no-repeat scroll center center; + background: transparent + url(data:image/gif;base64,R0lGODlhGAAYAMQdAKXZ8nfF64TL7QuX3Fe45zaq4hOb3fL6/fr9/rri9dXt+ZrU8Cym4Umy5cHl9uPz+2K86Oj1/Nzw+rDd9M3q+JDQ72rA6iOi3+34/ECu48jo9x2f3gWV2////wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUJFNkU4NEZCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUJFNkU4NTBCNEVDMTFFODk3MDBBNUU1RUM4Qjg3QTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFQkU2RTg0REI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFQkU2RTg0RUI0RUMxMUU4OTcwMEE1RTVFQzhCODdBNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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) + no-repeat scroll center center; } .mx-tooltip-content .table th, .mx-tooltip-content .table td { @@ -2400,7 +2414,8 @@ input[type="checkbox"] { } .mx-tabcontainer-content.loading { min-height: 48px; - background: url(data:image/gif;base64,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) no-repeat center center; + background: url(data:image/gif;base64,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) + no-repeat center center; background-size: 32px 32px; } .mx-tabcontainer-tabs { @@ -2431,7 +2446,8 @@ input[type="checkbox"] { padding: 8px; overflow: hidden; /* to prevent any margin from escaping grid and foobaring our size calculations */ } -.mx-grid-controlbar, .mx-grid-searchbar { +.mx-grid-controlbar, +.mx-grid-searchbar { display: flex; justify-content: space-between; flex-wrap: wrap; @@ -2460,7 +2476,8 @@ input[type="checkbox"] { margin-left: auto; } -.mx-grid-toolbar, .mx-grid-search-inputs { +.mx-grid-toolbar, +.mx-grid-search-inputs { margin-right: 5px; flex: 1; } @@ -2521,7 +2538,8 @@ input[type="checkbox"] { position: absolute; } -.mx-calendar, .mx-calendar-month-dropdown { +.mx-calendar, +.mx-calendar-month-dropdown { user-select: none; } @@ -2536,7 +2554,8 @@ input[type="checkbox"] { visibility: hidden; } -.mx-calendar, .mx-calendar-month-dropdown-options { +.mx-calendar, +.mx-calendar-month-dropdown-options { border: 1px solid lightgrey; background-color: white; } @@ -2556,7 +2575,8 @@ input[type="checkbox"] { margin-bottom: 0; } -.mx-datagrid th, .mx-datagrid td { +.mx-datagrid th, +.mx-datagrid td { padding: 8px; line-height: 1.42857143; vertical-align: bottom; @@ -2630,14 +2650,18 @@ input[type="checkbox"] { width: 90%; animation: placeholderGradient 1s linear infinite; border-radius: 4px; - background: #F5F5F5; - background: repeating-linear-gradient(to right, #F5F5F5 0%, #F5F5F5 5%, #F9F9F9 50%, #F5F5F5 95%, #F5F5F5 100%); + background: #f5f5f5; + background: repeating-linear-gradient(to right, #f5f5f5 0%, #f5f5f5 5%, #f9f9f9 50%, #f5f5f5 95%, #f5f5f5 100%); background-size: 200px 100px; animation-fill-mode: both; } @keyframes placeholderGradient { - 0% { background-position: 100px 0; } - 100% { background-position: -100px 0; } + 0% { + background-position: 100px 0; + } + 100% { + background-position: -100px 0; + } } .mx-datagrid-table-resizing th, @@ -2732,7 +2756,6 @@ input[type="checkbox"] { height: 16px; } - .mx-navigationtree .navbar-inner { padding-left: 0; padding-right: 0; @@ -2740,12 +2763,12 @@ input[type="checkbox"] { .mx-navigationtree ul { list-style: none; } -.mx-navigationtree ul li { - border-bottom: 1px solid #dfe6ea; -} -.mx-navigationtree li:last-child { - border-style: none; -} +//.mx-navigationtree ul li { +// border-bottom: 1px solid #dfe6ea; +//} +//.mx-navigationtree li:last-child { +// border-style: none; +//} .mx-navigationtree a { display: block; padding: 5px 10px; @@ -2754,9 +2777,9 @@ input[type="checkbox"] { text-decoration: none; } .mx-navigationtree a.active { - color: #FFF; + color: #fff; text-shadow: none; - background: #3498DB; + background: #3498db; border-radius: 3px; } .mx-navigationtree .mx-navigationtree-collapsed ul { @@ -2766,9 +2789,9 @@ input[type="checkbox"] { margin: 0; padding: 0; } -.mx-navigationtree ul li { - padding: 5px 0; -} +//.mx-navigationtree ul li { +// padding: 5px 0; +//} .mx-navigationtree ul li ul { padding: 0; margin-left: 10px; @@ -2961,7 +2984,7 @@ input[type="checkbox"] { border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; } -.mx-dropdown-list-striped > li:nth-child(2n+1) { +.mx-dropdown-list-striped > li:nth-child(2n + 1) { background: #f9f9f9; } .mx-dropdown-list > li:hover { @@ -3027,7 +3050,7 @@ body[dir="rtl"] .mx-header-left { // background: #f5f5f5; //} .mx-listview > ul > li.selected { -// background: #eee; + // background: #eee; } .mx-listview-clickable > ul > li { cursor: pointer; @@ -3090,7 +3113,8 @@ body[dir="rtl"] .mx-header-left { display: inline-block; width: 16px; height: 16px; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=) no-repeat center center; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKNJREFUeNpi/P//P8NgAUwMgwiMOmbUMaOOGXXMqGNGHTPYHMOCTfDs2bMeQKoOiI1BXCBuMjY23kFrdYzoTQigRm8gtQWLG0OBBqyhlTpc0dSOIxTraKwOq2PUcWhWp7E6rI65iUPzTRqrw+qYGhyam2isDtMxwES1CUgFAfFxqBCIDkJPbNRWhzU3jRZ6o44ZdcyoY0YdM+qYUccMUscABBgAUXpEjE/Bs/IAAAAASUVORK5CYII=) + no-repeat center center; background-size: 16px 16px; vertical-align: middle; } @@ -3101,8 +3125,8 @@ body[dir="rtl"] .mx-header-left { .mx-navigationlist li:hover, .mx-navigationlist li:focus, .mx-navigationlist li.active { - color: #FFF; - background-color: #3498DB; + color: #fff; + background-color: #3498db; } .mx-navigationlist * { cursor: pointer; @@ -3312,7 +3336,7 @@ body[dir="rtl"] .mx-header-left { width: 360px; height: 100%; z-index: 20000; - box-shadow: -1px 0 5px rgba(28,59,86,.2); + box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2); } .mx-demouserswitcher-content { padding: 80px 40px 20px; @@ -3320,7 +3344,8 @@ body[dir="rtl"] .mx-header-left { color: #387ea2; font-size: 14px; overflow: auto; - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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) top right no-repeat #1b3149; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAABgCAYAAAAXSj7NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzkwOTREMDQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzkwOTREMTQ2NEYxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZGNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMjAwNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+g1tRlwAAEFFJREFUeNrsnYl3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) + top right no-repeat #1b3149; /* background-attachement local is not supported on IE8 * when this is part of background the complete background is ignored */ background-attachment: local; @@ -3367,8 +3392,9 @@ body[dir="rtl"] .mx-header-left { cursor: pointer; border-top-left-radius: 3px; border-bottom-left-radius: 3px; - box-shadow: -1px 0 5px rgba(28,59,86,.2); - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC) center center no-repeat #1b3149; + box-shadow: -1px 0 5px rgba(28, 59, 86, 0.2); + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NERDMjFGRDQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NERDMjFGRTQ2NEMxMUU0QTQ4MUI5NTNGMUQ3QzE5NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0REMyMUZCNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjc0REMyMUZDNDY0QzExRTRBNDgxQjk1M0YxRDdDMTk3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1ZovNAAAAWdJREFUeNqM1M0rRFEYx/E7Y5qIQpOUbIiymQWysBgvJVJK2VgryZQtKSULZelPsB0LZaNZjJUNK1FskJqUvCS3NAsZc3zP9NziOOfeeepTc8/c8+vc8xZTSnmOakEGKdzgDBXXy54OMsSwjpL6W9cYsrxfZWvcUu7y0VdLUCc+VXgd2oLixpfOIOmF17TtHTOozYuupCxAaNB9DUEfeDUbE8bzEXxZerP00l8hh3LUiHTIMr6N9j2ksYoihv/1deyLSVzKKm1jEW+WfZV2Lf8gskjIcwcWpOM++pHCFPLosgWtoCyd7jCPOjzhGHHLyDPY1achaJhDxRj6rBwJXUuoN0IG8IIv7OiGBjxadvAITuT3rex6c0SbKASflnUcBT3JTThAjyWkGUVsBEEFR5CerzXpNIacrFIrJnCBB3muBvkhB1TP27hM/Lvx3zl6gxHqu6c74kiU8IxGjKJdLrrT3xfdjwADAJaMxP2bvD2BAAAAAElFTkSuQmCC) + center center no-repeat #1b3149; } /* master details screen for mobile */ @@ -3439,8 +3465,6 @@ body[dir="rtl"] .mx-master-detail-content-hidden { .reportingReport { padding: 5px; border: 1px solid #ddd; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; border-radius: 3px; } @@ -3468,7 +3492,8 @@ body[dir="rtl"] .mx-master-detail-content-hidden { margin-bottom: 0; } -.mx-reportmatrix th, .mx-reportmatrix td { +.mx-reportmatrix th, +.mx-reportmatrix td { padding: 8px; line-height: 1.42857143; vertical-align: bottom; @@ -3479,7 +3504,7 @@ body[dir="rtl"] .mx-master-detail-content-hidden { border-top: none; } -.mx-reportmatrix tbody tr:nth-child(2n+1) td { +.mx-reportmatrix tbody tr:nth-child(2n + 1) td { background-color: #f9f9f9; } @@ -3491,8 +3516,8 @@ body[dir="rtl"] .mx-master-detail-content-hidden { @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { .dijitInline { zoom: 1; /* set hasLayout:true to mimic inline-block */ - display:inline; /* don't use .dj_ie since that increases the priority */ - vertical-align: auto; /* makes TextBox,Button line up w/native counterparts on IE6 */ + display: inline; /* don't use .dj_ie since that increases the priority */ + vertical-align: auto; /* makes TextBox,Button line up w/native counterparts on IE6 */ } .dj_ie6 .dijitComboBox .dijitInputContainer, @@ -3502,7 +3527,7 @@ body[dir="rtl"] .mx-master-detail-content-hidden { .dijitRight { /* Right part of a 3-element border */ - display:inline; /* IE7 sizes to outer size w/o this */ + display: inline; /* IE7 sizes to outer size w/o this */ } .dijitButtonNode { @@ -3531,13 +3556,13 @@ body[dir="rtl"] .mx-master-detail-content-hidden { } .dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { - bottom: 50%; /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */ + bottom: 50%; /* otherwise (on some machines) top arrow icon too close to splitter border (IE6/7) */ } .dijitTabContainerTop-tabs .dijitTab, .dijitTabContainerBottom-tabs .dijitTab { zoom: 1; /* set hasLayout:true to mimic inline-block */ - display:inline; /* don't use .dj_ie since that increases the priority */ + display: inline; /* don't use .dj_ie since that increases the priority */ } .dojoDndHorizontal .dojoDndItem { @@ -3546,8 +3571,6 @@ body[dir="rtl"] .mx-master-detail-content-hidden { } } - - /* WARNING: IE9 limits nested imports to three levels deep: http://jorgealbaladejo.com/2011/05/28/internet-explorer-limits-nested-import-css-statements */ /* dijit base */ @@ -3558,5 +3581,4 @@ body[dir="rtl"] .mx-master-detail-content-hidden { /* reporting */ - /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9kb2pvL2Rpaml0L3RoZW1lcy9kaWppdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS9iYXNlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL2Zvcm1zLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Ub29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9UYWJDb250YWluZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L19HcmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9DYWxlbmRhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGF0YUdyaWQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RlbXBsYXRlR3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvU2Nyb2xsQ29udGFpbmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9OYXZiYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25UcmVlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9CdXR0b24uY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0dyb3VwQm94LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9EYXRhVmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvRGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9XaW5kb3cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0Ryb3BEb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9IZWFkZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RpdGxlLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9MaXN0Vmlldy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvTG9naW5EaWFsb2cuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01lbnVCYXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L05hdmlnYXRpb25MaXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9Qcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvUmVsb2FkTm90aWZpY2F0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9SZXNpemFibGUuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHQuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L1RleHRBcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9VbmRlcmxheS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbXh1aS91aS93aWRnZXQvSW1hZ2Vab29tLmNzcyIsIndlYnBhY2s6Ly8vLi9teHVpL3VpL3dpZGdldC9TZWxlY3RCb3guY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L0RlbW9Vc2VyU3dpdGNoZXIuY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvd2lkZ2V0L01hc3RlckRldGFpbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnQuY3NzIiwid2VicGFjazovLy8uL3JlcG9ydGluZy91aS93aWRnZXQvUmVwb3J0UGFyYW1ldGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9yZXBvcnRpbmcvdWkvd2lkZ2V0L0RhdGVSYW5nZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vcmVwb3J0aW5nL3VpL3dpZGdldC9SZXBvcnRNYXRyaXguY3NzIiwid2VicGFjazovLy8uL214dWkvdWkvbXh1aS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7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QUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsd0JBQXdCO0FBQ3hCLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHlDQUF5QztBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsYUFBYTtBQUNiLGFBQWEsd0RBQXdEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0I7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUI7O0FBRWpCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7O0FDOUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQzdCQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JGQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDhCQUE4QjtBQUN0QyxVQUFVLCtCQUErQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUN0R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyREE7QUFDQTtBQUNBO0FBQ0E7OztBQ0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTs7QUNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDO0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTs7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDekJBOztBQUVBOztBQUVBOztBQUVBOztBQUVBIiwiZmlsZSI6Im14dWkvdWkvbXh1aS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXHRFc3NlbnRpYWwgc3R5bGVzIHRoYXQgdGhlbWVzIGNhbiBpbmhlcml0LlxuXHRJbiBvdGhlciB3b3Jkcywgd29ya3MgYnV0IGRvZXNuJ3QgbG9vayBncmVhdC5cbiovXG5cblxuXG4vKioqKlxuXHRcdEdFTkVSSUMgUElFQ0VTXG4gKioqKi9cblxuLmRpaml0UmVzZXQge1xuXHQvKiBVc2UgdGhpcyBzdHlsZSB0byBudWxsIG91dCBwYWRkaW5nLCBtYXJnaW4sIGJvcmRlciBpbiB5b3VyIHRlbXBsYXRlIGVsZW1lbnRzXG5cdFx0c28gdGhhdCBwYWdlIHNwZWNpZmljIHN0eWxlcyBkb24ndCBicmVhayB0aGVtLlxuXHRcdC0gVXNlIGluIGFsbCBUQUJMRSwgVFIgYW5kIFREIHRhZ3MuXG5cdCovXG5cdG1hcmdpbjowO1xuXHRib3JkZXI6MDtcblx0cGFkZGluZzowO1xuXHRmb250OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDpub3JtYWw7XG5cdGNvbG9yOiBpbmhlcml0O1xufVxuLmRqX2ExMXkgLmRpaml0UmVzZXQge1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7IC8qIHJlbW92ZSBwcmVkZWZpbmVkIGhpZ2gtY29udHJhc3Qgc3R5bGluZyBpbiBGaXJlZm94ICovXG59XG5cbi5kaWppdElubGluZSB7XG5cdC8qICBUbyBpbmxpbmUgYmxvY2sgZWxlbWVudHMuXG5cdFx0U2ltaWxhciB0byBJbmxpbmVCb3ggYmVsb3csIGJ1dCB0aGlzIGhhcyBmZXdlciBzaWRlLWVmZmVjdHMgaW4gTW96LlxuXHRcdEFsc28sIGFwcGFyZW50bHkgd29ya3Mgb24gYSBESVYgYXMgd2VsbCBhcyBhIEZJRUxEU0VULlxuXHQqL1xuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcdFx0XHQvKiB3ZWJraXQgYW5kIEZGMyAqL1xuXHQjem9vbTogMTsgLyogc2V0IGhhc0xheW91dDp0cnVlIHRvIG1pbWljIGlubGluZS1ibG9jayAqL1xuXHQjZGlzcGxheTppbmxpbmU7IC8qIGRvbid0IHVzZSAuZGpfaWUgc2luY2UgdGhhdCBpbmNyZWFzZXMgdGhlIHByaW9yaXR5ICovXG5cdGJvcmRlcjowO1xuXHRwYWRkaW5nOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1x0LyogbWFrZXMgVGV4dEJveCxCdXR0b24gbGluZSB1cCB3L25hdGl2ZSBjb3VudGVycGFydHMgb24gSUU2ICovXG59XG5cbnRhYmxlLmRpaml0SW5saW5lIHtcblx0LyogVG8gaW5saW5lIHRhYmxlcyB3aXRoIGEgZ2l2ZW4gd2lkdGggc2V0ICovXG5cdGRpc3BsYXk6aW5saW5lLXRhYmxlO1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLmRpaml0SGlkZGVuIHtcblx0LyogVG8gaGlkZSB1bnNlbGVjdGVkIHBhbmVzIGluIFN0YWNrQ29udGFpbmVyIGV0Yy4gKi9cblx0cG9zaXRpb246IGFic29sdXRlOyAvKiByZW1vdmUgZnJvbSBub3JtYWwgZG9jdW1lbnQgZmxvdyB0byBzaW11bGF0ZSBkaXNwbGF5OiBub25lICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjsgLyogaGlkZSBlbGVtZW50IGZyb20gdmlldywgYnV0IGRvbid0IGJyZWFrIHNjcm9sbGluZywgc2VlICMxODYxMiAqL1xufVxuLmRpaml0SGlkZGVuICoge1xuXHR2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgLyogaGlkZSB2aXNpYmlsaXR5OnZpc2libGUgZGVzY2VuZGFudHMgb2YgY2xhc3M9ZGlqaXRIaWRkZW4gbm9kZXMsIHNlZSAjMTg3OTkgKi9cbn1cblxuLmRpaml0VmlzaWJsZSB7XG5cdC8qIFRvIHNob3cgc2VsZWN0ZWQgcGFuZSBpbiBTdGFja0NvbnRhaW5lciBldGMuICovXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHQvKiBvdmVycmlkZSB1c2VyJ3MgZGlzcGxheTpub25lIHNldHRpbmcgdmlhIHN0eWxlIHNldHRpbmcgb3IgaW5kaXJlY3RseSB2aWEgY2xhc3MgKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XHRcdC8qIHRvIHN1cHBvcnQgc2V0dGluZyB3aWR0aC9oZWlnaHQsIHNlZSAjMjAzMyAqL1xuXHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uZGpfaWU2IC5kaWppdENvbWJvQm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRpaml0SW5wdXRDb250YWluZXIge1xuXHQvKiBmb3IgcG9zaXRpb25pbmcgb2YgcGxhY2VIb2xkZXIgKi9cblx0I3pvb206IDE7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IC8qIG5lZWRlZCB0byBzcXVlZXplIHRoZSBJTlBVVCBpbiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGpfaWU3IC5kaWppdElucHV0Q29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgLyogbmVlZGVkIGJ5IElFIHRvIHNxdWVlemUgdGhlIElOUFVUIGluICovXG5cdGNsZWFyOiBsZWZ0O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgLyogdG8gZml4IHdyb25nIHRleHQgYWxpZ25tZW50IGluIHRleHRkaXI9cnRsIHRleHQgYm94ICovXG59XG5cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgaW5wdXQuZGlqaXRUZXh0Qm94LFxuLmRqX2llIC5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuVEFCTEUuZGlqaXRTZWxlY3Qge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8qIG1lc3NlcyB1cCBib3JkZXIgYWxpZ25tZW50ICovXG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8qIHNvIGpzZmlkZGxlIHdvcmtzIHdpdGggTm9ybWFsaXplZCBDU1MgY2hlY2tlZCAqL1xufVxuLmRpaml0VGV4dEJveCAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyLFxuLmRpaml0VGV4dEJveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lcixcbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdFNlbGVjdCBpbnB1dC5kaWppdElucHV0RmllbGQsXG4uZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRGaWVsZCB7XG5cdC8qIG92ZXJyaWRlIHVucmVhc29uYWJsZSB1c2VyIHN0eWxpbmcgb2YgYnV0dG9ucyBhbmQgaWNvbnMgKi9cblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5kaWppdFZhbGlkYXRpb25UZXh0Qm94IC5kaWppdFZhbGlkYXRpb25Db250YWluZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUZWVueSB7XG5cdGZvbnQtc2l6ZToxcHg7XG5cdGxpbmUtaGVpZ2h0OjFweDtcbn1cblxuLmRpaml0T2ZmU2NyZWVuIHsgLyogdGhlc2UgY2xhc3MgYXR0cmlidXRlcyBzaG91bGQgc3VwZXJzZWRlIGFueSBpbmxpbmUgcG9zaXRpb25pbmcgc3R5bGUgKi9cblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdGxlZnQ6IC0xMDAwMHB4ICFpbXBvcnRhbnQ7XG5cdHRvcDogLTEwMDAwcHggIWltcG9ydGFudDtcbn1cblxuLypcbiAqIFBvcHVwIGl0ZW1zIGhhdmUgYSB3cmFwcGVyIGRpdiAoZGlqaXRQb3B1cClcbiAqIHdpdGggdGhlIHJlYWwgcG9wdXAgaW5zaWRlLCBhbmQgbWF5YmUgYW4gaWZyYW1lIHRvb1xuICovXG4uZGlqaXRQb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi5kaWppdFBvc2l0aW9uT25seSB7XG5cdC8qIE51bGwgb3V0IGFsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRib3JkZXI6IDAgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRpaml0Tm9uUG9zaXRpb25Pbmx5IHtcblx0LyogTnVsbCBwb3NpdGlvbi1yZWxhdGVkIHByb3BlcnRpZXMgKi9cblx0ZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcblx0cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXHRtYXJnaW46IDAgMCAwIDAgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uZGlqaXRCYWNrZ3JvdW5kSWZyYW1lIHtcblx0LyogaWZyYW1lIHVzZWQgdG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIFBERiBvciBvdGhlciBhcHBsZXRzIG92ZXJsYXlpbmcgbWVudXMgZXRjICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR6LWluZGV4OiAtMTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdERpc3BsYXlOb25lIHtcblx0LyogaGlkZSBzb21ldGhpbmcuICBVc2UgdGhpcyBhcyBhIGNsYXNzIHJhdGhlciB0aGFuIGVsZW1lbnQuc3R5bGUgc28gYW5vdGhlciBjbGFzcyBjYW4gb3ZlcnJpZGUgKi9cblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbnRhaW5lciB7XG5cdC8qIGZvciBhbGwgbGF5b3V0IGNvbnRhaW5lcnMgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcdC8qIG5lZWQgb24gSUUgc28gc29tZXRoaW5nIGNhbiBiZSByZWR1Y2VkIGluIHNpemUsIGFuZCBzbyBzY3JvbGxiYXJzIGFyZW4ndCB0ZW1wb3JhcmlseSBkaXNwbGF5ZWQgd2hlbiByZXNpemluZyAqL1xufVxuXG4vKioqKlxuXHRcdEExMVlcbiAqKioqL1xuLmRqX2ExMXkgLmRpaml0SWNvbixcbi5kal9hMTF5IGRpdi5kaWppdEFycm93QnV0dG9uSW5uZXIsIC8qIGlzIHRoaXMgb25seSBmb3IgU3Bpbm5lcj8gIGlmIHNvLCBpdCBzaG91bGQgYmUgZGVsZXRlZCAqL1xuLmRqX2ExMXkgc3Bhbi5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSBpbWcuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJJbmNyZW1lbnRDb250cm9sLFxuLmRqX2ExMXkgLmRpaml0VHJlZUV4cGFuZG8ge1xuXHQvKiBoaWRlIGljb24gbm9kZXMgaW4gaGlnaCBjb250cmFzdCBtb2RlOyB3aGVuIG5lY2Vzc2FyeSB0aGV5IHdpbGwgYmUgcmVwbGFjZWQgYnkgY2hhcmFjdGVyIGVxdWl2YWxlbnRzXG5cdCAqIGV4Y2VwdGlvbiBmb3IgaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyLCBiZWNhdXNlIHRoZSBpY29uIGFuZCBjaGFyYWN0ZXIgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIHNhbWUgbm9kZSAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRpaml0U3Bpbm5lciBkaXYuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0ZGlzcGxheTogYmxvY2s7IC8qIG92ZXJyaWRlIHByZXZpb3VzIHJ1bGUgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0QTExeVNpZGVBcnJvdyB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBkaXNwbGF5IHRleHQgaW5zdGVhZCAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qXG4gKiBTaW5jZSB3ZSBjYW4ndCB1c2Ugc2hhZGluZyBpbiBhMTF5IG1vZGUsIGFuZCBzaW5jZSB0aGUgdW5kZXJsaW5lIGluZGljYXRlcyB0b2RheSdzIGRhdGUsXG4gKiB1c2UgYSBib3JkZXIgdG8gc2hvdyB0aGUgc2VsZWN0ZWQgZGF0ZS5cbiAqIEF2b2lkIHNjcmVlbiBqaXR0ZXIgd2hlbiBzd2l0Y2hpbmcgc2VsZWN0ZWQgZGF0ZSBieSBjb21wZW5zYXRpbmcgZm9yIHRoZSBzZWxlY3RlZCBub2RlJ3NcbiAqIGJvcmRlciB3L3BhZGRpbmcgb24gb3RoZXIgbm9kZXMuXG4gKi9cbi5kal9hMTF5IC5kaWppdENhbGVuZGFyRGF0ZUxhYmVsIHtcblx0cGFkZGluZzogMXB4O1xuXHRib3JkZXI6IDBweCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2FsZW5kYXJTZWxlY3RlZERhdGUgLmRpaml0Q2FsZW5kYXJEYXRlTGFiZWwge1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRDYWxlbmRhckRhdGVUZW1wbGF0ZSB7XG5cdHBhZGRpbmctYm90dG9tOiAwLjFlbSAhaW1wb3J0YW50O1x0Lyogb3RoZXJ3aXNlIGJvdHRvbSBib3JkZXIgZG9lc24ndCBhcHBlYXIgb24gSUUgKi9cblx0Ym9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXI6IGJsYWNrIG91dHNldCBtZWRpdW0gIWltcG9ydGFudDtcblxuXHQvKiBJbiBjbGFybywgaG92ZXJpbmcgYSB0b29sYmFyIGJ1dHRvbiByZWR1Y2VzIHBhZGRpbmcgYW5kIGFkZHMgYSBib3JkZXIuXG5cdCAqIE5vdCBuZWVkZWQgaW4gYTExeSBtb2RlIHNpbmNlIFRvb2xiYXIgYnV0dG9ucyBhbHdheXMgaGF2ZSBhIGJvcmRlci5cblx0ICovXG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbi5kal9hMTF5IC5kaWppdEFycm93QnV0dG9uIHtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRCdXR0b25Db250ZW50cyB7XG5cdG1hcmdpbjogMC4xNWVtOyAvKiBNYXJnaW4gbmVlZGVkIHRvIG1ha2UgZm9jdXMgb3V0bGluZSB2aXNpYmxlICovXG59XG5cbi5kal9hMTF5IC5kaWppdFRleHRCb3hSZWFkT25seSAuZGlqaXRJbnB1dEZpZWxkLFxuLmRqX2ExMXkgLmRpaml0VGV4dEJveFJlYWRPbmx5IC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItc3R5bGU6IG91dHNldCFpbXBvcnRhbnQ7XG5cdGJvcmRlci13aWR0aDogbWVkaXVtIWltcG9ydGFudDtcblx0Ym9yZGVyLWNvbG9yOiAjOTk5ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiM5OTkgIWltcG9ydGFudDtcbn1cblxuLyogYnV0dG9uIGlubmVyIGNvbnRlbnRzIC0gbGFiZWxzLCBpY29ucyBldGMuICovXG4uZGlqaXRCdXR0b25Ob2RlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0U2VsZWN0IC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGlqaXRCdXR0b25Ob2RlIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHQvKiB0aGUgYXJyb3cgaWNvbiBub2RlICovXG5cdGJhY2tncm91bmQ6IG5vLXJlcGVhdCBjZW50ZXI7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdGRpcmVjdGlvbjogbHRyOyAvKiBuZWVkZWQgYnkgSUUvUlRMICovXG59XG5cbi8qKioqXG5cdDMtZWxlbWVudCBib3JkZXJzOiAgKCBkaWppdExlZnQgKyBkaWppdFN0cmV0Y2ggKyBkaWppdFJpZ2h0IClcblx0VGhlc2Ugd2VyZSBhZGRlZCBmb3Igcm91bmRlZCBjb3JuZXJzIG9uIGRpaml0LmZvcm0uKkJ1dHRvbiBidXQgbmV2ZXIgYWN0dWFsbHkgdXNlZC5cbiAqKioqL1xuXG4uZGlqaXRMZWZ0IHtcblx0LyogTGVmdCBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi5kaWppdFN0cmV0Y2gge1xuXHQvKiBNaWRkbGUgKHN0cmV0Y2h5KSBwYXJ0IG9mIGEgMy1lbGVtZW50IGJvcmRlciAqL1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHRcdFx0LyogTU9XOiBtb3ZlIHNvbWV3aGVyZSBlbHNlICovXG5cdGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O1xufVxuXG4uZGlqaXRSaWdodCB7XG5cdC8qIFJpZ2h0IHBhcnQgb2YgYSAzLWVsZW1lbnQgYm9yZGVyICovXG5cdCNkaXNwbGF5OmlubGluZTtcdFx0XHRcdC8qIElFNyBzaXplcyB0byBvdXRlciBzaXplIHcvbyB0aGlzICovXG5cdGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdG9wO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG59XG5cbi8qIEJ1dHRvbnMgKi9cbi5kal9nZWNrbyAuZGpfYTExeSAuZGlqaXRCdXR0b25EaXNhYmxlZCAuZGlqaXRCdXR0b25Ob2RlIHtcblx0b3BhY2l0eTogMC41O1xufVxuXG4uZGlqaXRUb2dnbGVCdXR0b24sXG4uZGlqaXRCdXR0b24sXG4uZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdENvbWJvQnV0dG9uIHtcblx0Lyogb3V0c2lkZSBvZiBidXR0b24gKi9cblx0bWFyZ2luOiAwLjJlbTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiBibG9jaztcdFx0LyogdG8gbWFrZSBmb2N1cyBib3JkZXIgcmVjdGFuZ3VsYXIgKi9cbn1cbnRkLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1x0LyogYnV0IGRvbid0IGFmZmVjdCBTZWxlY3QsIENvbWJvQnV0dG9uICovXG59XG5cbi5kaWppdEJ1dHRvbk5vZGUgaW1nIHtcblx0LyogbWFrZSB0ZXh0IGFuZCBpbWFnZXMgbGluZSB1cCBjbGVhbmx5ICovXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0LyptYXJnaW4tYm90dG9tOi4yZW07Ki9cbn1cblxuLmRpaml0VG9vbGJhciAuZGlqaXRDb21ib0J1dHRvbiB7XG5cdC8qIGJlY2F1c2UgVG9vbGJhciBvbmx5IGRyYXdzIGEgYm9yZGVyIGFyb3VuZCB0aGUgaG92ZXJlZCB0aGluZyAqL1xuXHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xufVxuXG4uZGlqaXRUb29sYmFyIC5kaWppdFRvZ2dsZUJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uLFxuLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbixcbi5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9CdXR0b24ge1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHQvKiBqdXN0IGJlY2F1c2UgaXQgdXNlZCB0byBiZSB0aGlzIHdheSAqL1xuXHRwYWRkaW5nOiAxcHggMnB4O1xufVxuXG5cbi5kal93ZWJraXQgLmRpaml0VG9vbGJhciAuZGlqaXREcm9wRG93bkJ1dHRvbiB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGpfZ2Vja28gLmRpaml0VG9vbGJhciAuZGlqaXRCdXR0b25Ob2RlOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzowO1xufVxuXG4uZGlqaXRTZWxlY3Qge1xuXHRib3JkZXI6MXB4IHNvbGlkIGdyYXk7XG59XG4uZGlqaXRCdXR0b25Ob2RlIHtcblx0LyogTm9kZSB0aGF0IGlzIGFjdGluZyBhcyBhIGJ1dHRvbiAtLSBtYXkgb3IgbWF5IG5vdCBiZSBhIEJVVFRPTiBlbGVtZW50ICovXG5cdGJvcmRlcjoxcHggc29saWQgZ3JheTtcblx0bWFyZ2luOjA7XG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0I3ZlcnRpY2FsLWFsaWduOiBhdXRvO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kal93ZWJraXQgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0LyogYXBwYXJlbnQgV2ViS2l0IGJ1ZyB3aGVyZSBtZXNzaW5nIHdpdGggdGhlIGZvbnQgY291cGxlZCB3aXRoIGxpbmUtaGVpZ2h0Om5vcm1hbCBYIDIgKGRpaml0UmVzZXQgJiBkaWppdEJ1dHRvbk5vZGUpXG5cdGNhbiBiZSBkaWZmZXJlbnQgdGhhbiBqdXN0IGEgc2luZ2xlIGxpbmUtaGVpZ2h0Om5vcm1hbCwgdmlzaWJsZSBpbiBJbmxpbmVFZGl0Qm94L1NwaW5uZXIgKi9cblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcbn1cbi5kaWppdFRleHRCb3ggLmRpaml0QnV0dG9uTm9kZSB7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cblxuLmRpaml0U2VsZWN0LFxuLmRpaml0U2VsZWN0ICosXG4uZGlqaXRCdXR0b25Ob2RlLFxuLmRpaml0QnV0dG9uTm9kZSAqIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGpfaWUgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGVuc3VyZSBoYXNMYXlvdXQgKi9cblx0em9vbTogMTtcbn1cblxuLmRqX2llIC5kaWppdEJ1dHRvbk5vZGUgYnV0dG9uIHtcblx0Lypcblx0XHRkaXNndXN0aW5nIGhhY2sgdG8gZ2V0IHJpZCBvZiBzcHVyaW91cyBwYWRkaW5nIGFyb3VuZCBidXR0b24gZWxlbWVudHNcblx0XHRvbiBJRS4gTVNJRSBpcyB0cnVseSB0aGUgd2ViJ3MgYm9hdCBhbmNob3IuXG5cdCovXG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5kaXYuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLyoqKioqKlxuXHRUZXh0Qm94IHJlbGF0ZWQuXG5cdEV2ZXJ5dGhpbmcgdGhhdCBoYXMgYW4gPGlucHV0PlxuKioqKioqKi9cblxuLmRpaml0VGV4dEJveCB7XG5cdGJvcmRlcjogc29saWQgYmxhY2sgMXB4O1xuXHQjb3ZlcmZsb3c6IGhpZGRlbjsgLyogIzYwMjcsICM2MDY3ICovXG5cdHdpZHRoOiAxNWVtO1x0LyogbmVlZCB0byBzZXQgZGVmYXVsdCBzaXplIG9uIG91dGVyIG5vZGUgc2luY2UgaW5uZXIgbm9kZXMgc2F5IDxpbnB1dCBzdHlsZT1cIndpZHRoOjEwMCVcIj4gYW5kIDx0ZCB3aWR0aD0xMDAlPi4gIHVzZXIgY2FuIG92ZXJyaWRlICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdFRleHRCb3hSZWFkT25seSxcbi5kaWppdFRleHRCb3hEaXNhYmxlZCB7XG5cdGNvbG9yOiBncmF5O1xufVxuLmRqX3NhZmFyaSAuZGlqaXRUZXh0Qm94RGlzYWJsZWQgaW5wdXQge1xuXHRjb2xvcjogI0IwQjBCMDsgLyogYmVjYXVzZSBTYWZhcmkgbGlnaHRlbnMgZGlzYWJsZWQgaW5wdXQvdGV4dGFyZWEgbm8gbWF0dGVyIHdoYXQgY29sb3IgeW91IHNwZWNpZnkgKi9cbn1cbi5kal9zYWZhcmkgdGV4dGFyZWEuZGlqaXRUZXh0QXJlYURpc2FibGVkIHtcblx0Y29sb3I6ICMzMzM7IC8qIGJlY2F1c2UgU2FmYXJpIGxpZ2h0ZW5zIGRpc2FibGVkIGlucHV0L3RleHRhcmVhIG5vIG1hdHRlciB3aGF0IGNvbG9yIHlvdSBzcGVjaWZ5ICovXG59XG4uZGpfZ2Vja28gLmRpaml0VGV4dEJveFJlYWRPbmx5IGlucHV0LmRpaml0SW5wdXRGaWVsZCwgLyogZGlzYWJsZSBhcnJvdyBhbmQgdmFsaWRhdGlvbiBwcmVzZW50YXRpb24gaW5wdXRzIGJ1dCBhbGxvdyByZWFsIGlucHV0IGZvciB0ZXh0IHNlbGVjdGlvbiAqL1xuLmRqX2dlY2tvIC5kaWppdFRleHRCb3hEaXNhYmxlZCBpbnB1dCB7XG5cdC1tb3otdXNlci1pbnB1dDogbm9uZTsgLyogcHJldmVudCBmb2N1cyBvZiBkaXNhYmxlZCB0ZXh0Ym94IGJ1dHRvbnMgKi9cbn1cblxuLmRpaml0UGxhY2VIb2xkZXIge1xuXHQvKiBoaW50IHRleHQgdGhhdCBhcHBlYXJzIGluIGEgdGV4dGJveCB1bnRpbCB1c2VyIHN0YXJ0cyB0eXBpbmcgKi9cblx0Y29sb3I6ICNBQUFBQUE7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdCNmaWx0ZXI6IFwiXCI7IC8qIG1ha2UgdGhpcyBzaG93IHVwIGluIElFNiBhZnRlciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB3aWRnZXQgKi9cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7ICAgLyogc28gY3V0L3Bhc3RlIGNvbnRleHQgbWVudSBzaG93cyB1cCB3aGVuIHJpZ2h0IGNsaWNraW5nICovXG59XG5cbi5kaWppdFRpbWVUZXh0Qm94IHtcblx0d2lkdGg6IDhlbTtcbn1cblxuLyogcnVsZXMgZm9yIHdlYmtpdCB0byBkZWFsIHdpdGggZnV6enkgYmx1ZSBmb2N1cyBib3JkZXIgKi9cbi5kaWppdFRleHRCb3ggaW5wdXQ6Zm9jdXMge1xuXHRvdXRsaW5lOiBub25lO1x0LyogYmx1ZSBmdXp6eSBsaW5lIGxvb2tzIHdyb25nIG9uIGNvbWJvYm94IG9yIHNvbWV0aGluZyB3L3ZhbGlkYXRpb24gaWNvbiBzaG93aW5nICovXG59XG4uZGlqaXRUZXh0Qm94Rm9jdXNlZCB7XG5cdG91dGxpbmU6IDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQge1xuXHRmbG9hdDogbGVmdDsgLyogbmVlZGVkIGJ5IElFIHRvIHJlbW92ZSBzZWNyZXQgbWFyZ2luICovXG59XG4uZGpfaWU2IGlucHV0LmRpaml0VGV4dEJveCxcbi5kal9pZTYgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdGZsb2F0OiBub25lO1xufVxuLmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIGZvciB3aGVuIGFuIDxpbnB1dD4gaXMgZW1iZWRkZWQgaW5zaWRlIGFuIGlubGluZS1ibG9jayA8ZGl2PiB3aXRoIGEgc2l6ZSBhbmQgYm9yZGVyICovXG5cdGJvcmRlcjowICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xuXHQvKiBJRSBkaXNsaWtlcyBob3Jpem9udGFsIHR3ZWFraW5nIGNvbWJpbmVkIHdpdGggd2lkdGg6MTAwJSBzbyBwdW5pc2ggZXZlcnlvbmUgZm9yIGNvbnNpc3RlbmN5ICovXG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VGV4dEJveCBpbnB1dCB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kaWppdFNlbGVjdCBpbnB1dCxcbi5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0LyogPGlucHV0PiB1c2VkIHRvIGRpc3BsYXkgYXJyb3cgaWNvbi92YWxpZGF0aW9uIGljb24sIG9yIGluIGFycm93IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG5cdCAqIFRoZSBjc3MgYmVsb3cgaXMgYSB0cmljayB0byBoaWRlIHRoZSBjaGFyYWN0ZXIgaW4gbm9uLWhpZ2gtY29udHJhc3QgbW9kZVxuXHQgKi9cblx0dGV4dC1pbmRlbnQ6IC0yZW0gIWltcG9ydGFudDtcblx0ZGlyZWN0aW9uOiBsdHIgIWltcG9ydGFudDtcblx0dGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblx0I3RleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG5cdCNsZXR0ZXItc3BhY2luZzogLTVlbSAhaW1wb3J0YW50O1xuXHQjdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbn1cbi5kal9pZSAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWUgLmRpaml0VGV4dEJveCBpbnB1dCxcbi5kal9pZSBpbnB1dC5kaWppdFRleHRCb3gge1xuXHRvdmVyZmxvdy15OiB2aXNpYmxlOyAvKiBpbnB1dHMgbmVlZCBoZWxwIGV4cGFuZGluZyB3aGVuIHBhZGRpbmcgaXMgYWRkZWQgb3IgbGluZS1oZWlnaHQgaXMgYWRqdXN0ZWQgKi9cblx0bGluZS1oZWlnaHQ6IG5vcm1hbDsgLyogc3RyaWN0IG1vZGUgKi9cbn1cbi5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCBzcGFuIHtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsIHtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi5kal9pZTYgLmRpaml0U2VsZWN0IC5kaWppdFNlbGVjdExhYmVsLFxuLmRqX2llNyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGpfaWU4IC5kaWppdFNlbGVjdCAuZGlqaXRTZWxlY3RMYWJlbCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwsXG4uZGlqaXRTZWxlY3QgdGQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCBpbnB1dCxcbi5kal9pZXF1aXJrcyAuZGlqaXRTZWxlY3QgaW5wdXQsXG4uZGpfaWU2IC5kaWppdFNlbGVjdCAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyLFxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IGlucHV0LFxuLmRqX2llNiBpbnB1dC5kaWppdFRleHRCb3gsXG4uZGpfaWVxdWlya3MgLmRpaml0VGV4dEJveCBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZXF1aXJrcyAuZGlqaXRUZXh0Qm94IGlucHV0LmRpaml0U3Bpbm5lckJ1dHRvbklubmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llcXVpcmtzIGlucHV0LmRpaml0VGV4dEJveCB7XG5cdGxpbmUtaGVpZ2h0OiAxMDAlOyAvKiBJRTcgcHJvYmxlbSB3aGVyZSB0aGUgaWNvbiBpcyB2ZXJ0aWNhbGx5IHdheSB0b28gbG93IHcvbyB0aGlzICovXG59XG4uZGpfYTExeSBpbnB1dC5kaWppdFZhbGlkYXRpb25Jbm5lcixcbi5kal9hMTF5IGlucHV0LmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC8qIChpbiBoaWdoIGNvbnRyYXN0IG1vZGUpIHJldmVydCBydWxlcyBmcm9tIGFib3ZlIHNvIGNoYXJhY3RlciBkaXNwbGF5cyAqL1xuXHR0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG5cdCN0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuLmRpaml0VmFsaWRhdGlvblRleHRCb3hFcnJvciAuZGlqaXRWYWxpZGF0aW9uQ29udGFpbmVyIHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbWJvQm94ICYgU3Bpbm5lciAqL1xuXG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGlqaXRDb21ib0JveCAuZGlqaXRBcnJvd0J1dHRvbkNvbnRhaW5lciB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwIDAgMCAxcHggIWltcG9ydGFudDsgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIHdheXdhcmQgXCIudGhlbWUgLmRpaml0QnV0dG9uTm9kZVwiIHJ1bGVzICovXG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QXJyb3dCdXR0b25Db250YWluZXIsXG4uZGlqaXRUb29sYmFyIC5kaWppdENvbWJvQm94IC5kaWppdEFycm93QnV0dG9uQ29udGFpbmVyIHtcblx0Lyogb3ZlcnJpZGVzIGFib3ZlIHJ1bGUgcGx1cyBtaXJyb3ItaW1hZ2UgcnVsZSBpbiBkaWppdF9ydGwuY3NzIHRvIGhhdmUgbm8gZGl2aWRlciB3aGVuIENvbWJvQm94IGluIFRvb2xiYXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdENvbWJvQm94TWVudSB7XG5cdC8qIERyb3AgZG93biBtZW51IGlzIGltcGxlbWVudGVkIGFzIDx1bD4gPGxpLz4gPGxpLz4gLi4uIGJ1dCB3ZSBkb24ndCB3YW50IGNpcmNsZXMgYmVmb3JlIGVhY2ggaXRlbSAqL1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QnV0dG9uTm9kZSB7XG5cdC8qIGRpdmlkaW5nIGxpbmUgYmV0d2VlbiBpbnB1dCBhcmVhIGFuZCB1cC9kb3duIGJ1dHRvbihzKSBmb3IgQ29tYm9Cb3ggYW5kIFNwaW5uZXIgKi9cblx0Ym9yZGVyLXdpZHRoOiAwO1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRCdXR0b25Ob2RlIHtcblx0Y2xlYXI6IGJvdGg7IC8qIElFIHdvcmthcm91bmQgKi9cbn1cblxuLmRqX2llIC5kaWppdFRvb2xiYXIgLmRpaml0Q29tYm9Cb3gge1xuXHQvKiBtYWtlIGNvbWJvYm94IGJ1dHRvbnMgYWxpZ24gcHJvcGVybHkgd2l0aCBvdGhlciBidXR0b25zIGluIGEgdG9vbGJhciAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBTcGlubmVyICovXG5cbi5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciB7XG5cdHdpZHRoOiAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIge1xuXHR3aWR0aDoxZW07XG5cdHZpc2liaWxpdHk6aGlkZGVuICFpbXBvcnRhbnQ7IC8qIGp1c3QgYSBzaXppbmcgZWxlbWVudCAqL1xuXHRvdmVyZmxvdy14OmhpZGRlbjtcbn1cbi5kaWppdENvbWJvQm94IC5kaWppdEJ1dHRvbk5vZGUsXG4uZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDA7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRUZXh0Qm94IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIsXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIGlucHV0IHtcblx0d2lkdGg6IDFlbSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0bWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgLyogc2hvdWxkIGF1dG8tY2VudGVyICovXG59XG4uZGpfaWUgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRwYWRkaW5nLWxlZnQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmctcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAwLjNlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAuM2VtICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxLjRlbSAhaW1wb3J0YW50O1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyAvKiBtYW51YWxseSBjZW50ZXIgSU5QVVQ6IGNoYXJhY3RlciBpcyAuNWVtIGFuZCB0b3RhbCB3aWR0aCA9IDFlbSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW0gIWltcG9ydGFudDtcbn1cbi5kal9pZTYgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMC4xZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbSAhaW1wb3J0YW50O1xuXHR3aWR0aDogMWVtICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHRtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcblx0d2lkdGg6IDJlbSAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uIHtcblx0Lyogbm90ZTogLmRpaml0SW5wdXRMYXlvdXRDb250YWluZXIgbWFrZXMgdGhpcyBydWxlIG92ZXJyaWRlIC5kaWppdEFycm93QnV0dG9uIHNldHRpbmdzXG5cdCAqIGZvciBkaWppdC5mb3JtLkJ1dHRvblxuXHQgKi9cblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHJpZ2h0OiAwO1xuXHRmbG9hdDogbm9uZTtcblx0aGVpZ2h0OiA1MCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IGF1dG87XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLmRqX2llcXVpcmtzIC5kaWppdFNwaW5uZXIgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciAuZGlqaXRBcnJvd0J1dHRvbiB7XG5cdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0RG93bkFycm93QnV0dG9uIHtcblx0dG9wOiA1MCU7XG5cdGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdFVwQXJyb3dCdXR0b24ge1xuXHQjYm90dG9tOiA1MCU7XHQvKiBvdGhlcndpc2UgKG9uIHNvbWUgbWFjaGluZXMpIHRvcCBhcnJvdyBpY29uIHRvbyBjbG9zZSB0byBzcGxpdHRlciBib3JkZXIgKElFNi83KSAqL1xuXHR0b3A6IDA7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0aGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIHtcblx0aGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZGlqaXRTcGlubmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIgLmRpaml0SW5wdXRGaWVsZCB7XG5cdC1tb3otdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtbW96LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG5cdC1vLXRyYW5zZm9ybTogc2NhbGUoMC41KTtcblx0LW8tdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcblx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuXHR3aWR0aDogMTAwJTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmRqX2llIC5kaWppdFNwaW5uZXIgLmRpaml0QXJyb3dCdXR0b25Jbm5lciAuZGlqaXRJbnB1dEZpZWxkIHtcblx0em9vbTogNTAlOyAvKiBlbXVsYXRlIHRyYW5zZm9ybTogc2NhbGUoMC41KSAqL1xufVxuLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIC5kaWppdEFycm93QnV0dG9uSW5uZXIge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMTAwJTtcbn1cbi5kal9pZXF1aXJrcyAuZGpfYTExeSAuZGlqaXRTcGlubmVyIC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIgLmRpaml0QXJyb3dCdXR0b24ge1xuXHR3aWR0aDogMWVtOyAvKiBtYXRjaGVzIC5kal9hMTF5IC5kaWppdFRleHRCb3ggLmRpaml0U3Bpbm5lckJ1dHRvbkNvbnRhaW5lciBydWxlIC0gMTAwJSBpcyB0aGUgd2hvbGUgc2NyZWVuIHdpZHRoIGluIHF1aXJrcyAqL1xufVxuLmRqX2ExMXkgLmRpaml0U3Bpbm5lciAuZGlqaXRBcnJvd0J1dHRvbklubmVyIC5kaWppdElucHV0RmllbGQge1xuXHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XG5cdHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4uZGpfYTExeSAuZGlqaXRTcGlubmVyQnV0dG9uQ29udGFpbmVyIHtcblx0d2lkdGg6IDFlbTtcbn1cblxuLyoqKipcblx0XHRkaWppdC5mb3JtLkNoZWNrQm94XG4gXHQgJlxuICBcdFx0ZGlqaXQuZm9ybS5SYWRpb0J1dHRvblxuICoqKiovXG5cbi5kaWppdENoZWNrQm94LFxuLmRpaml0UmFkaW8sXG4uZGlqaXRDaGVja0JveElucHV0IHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0Q2hlY2tCb3ggaW5wdXQsXG4uZGlqaXRSYWRpbyBpbnB1dCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5kaWppdENoZWNrQm94SW5wdXQge1xuXHQvKiBwbGFjZSB0aGUgYWN0dWFsIGlucHV0IG9uIHRvcCwgYnV0IGludmlzaWJsZSAqL1xuXHRvcGFjaXR5OiAwO1xufVxuXG4uZGpfaWUgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcbn1cblxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3gsXG4uZGpfYTExeSAuZGlqaXRSYWRpbyB7XG5cdC8qIGluIGExMXkgbW9kZSB3ZSBkaXNwbGF5IHRoZSBuYXRpdmUgY2hlY2tib3ggKG5vdCB0aGUgaWNvbiksIHNvIGRvbid0IHJlc3RyaWN0IHRoZSBzaXplICovXG5cdHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0Q2hlY2tCb3hJbnB1dCB7XG5cdG9wYWNpdHk6IDE7XG5cdGZpbHRlcjogbm9uZTtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmRqX2ExMXkgLmRpaml0Rm9jdXNlZExhYmVsIHtcblx0LyogZm9yIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHVzZSBib3JkZXIgcmF0aGVyIHRoYW4gb3V0bGluZSB0byBpbmRpY2F0ZSBmb2N1cyAob3V0bGluZSBkb2VzIG5vdCB3b3JrIGluIEZGKSovXG5cdGJvcmRlcjogMXB4IGRvdHRlZDtcblx0b3V0bGluZTogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qKioqXG5cdFx0ZGlqaXQuUHJvZ3Jlc3NCYXJcbiAqKioqL1xuXG4uZGlqaXRQcm9ncmVzc0JhciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBQcm9ncmVzc0JhciAqL1xufVxuLmRpaml0UHJvZ3Jlc3NCYXJFbXB0eSB7XG5cdC8qIG91dGVyIGNvbnRhaW5lciBhbmQgYmFja2dyb3VuZCBvZiB0aGUgYmFyIHRoYXQncyBub3QgZmluaXNoZWQgeWV0Ki9cblx0cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO1xuXHRib3JkZXI6MXB4IHNvbGlkIGJsYWNrOyBcdC8qIGExMXk6IGJvcmRlciBuZWNlc3NhcnkgZm9yIGhpZ2gtY29udHJhc3QgbW9kZSAqL1xuXHR6LWluZGV4OjA7XHRcdFx0LyogZXN0YWJsaXNoIGEgc3RhY2tpbmcgY29udGV4dCBmb3IgdGhpcyBwcm9ncmVzcyBiYXIgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJGdWxsIHtcblx0Lyogb3V0ZXIgY29udGFpbmVyIGZvciBiYWNrZ3JvdW5kIG9mIGJhciB0aGF0IGlzIGZpbmlzaGVkICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHotaW5kZXg6LTE7XG5cdHRvcDowO1xuXHR3aWR0aDoxMDAlO1xufVxuLmRqX2llNiAuZGlqaXRQcm9ncmVzc0JhckZ1bGwge1xuXHRoZWlnaHQ6MS42ZW07XG59XG5cbi5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGlubmVyIGNvbnRhaW5lciBmb3IgZmluaXNoZWQgcG9ydGlvbiAqL1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHRib3R0b206MDtcblx0cmlnaHQ6MDtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0d2lkdGg6IDEwMCU7ICAgIC8qIG5lZWRlZCBmb3IgSUUvcXVpcmtzICovXG5cdGhlaWdodDphdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiNhYWE7XG5cdGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGExMXk6ICBUaGUgYm9yZGVyIHByb3ZpZGVzIHZpc2liaWxpdHkgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdGJvcmRlci13aWR0aDoycHg7XG5cdGJvcmRlci1zdHlsZTpzb2xpZDtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uZGpfaWU2IC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIHdpZHRoOmF1dG8gd29ya3MgaW4gSUU2IHdpdGggcG9zaXRpb246c3RhdGljIGJ1dCBub3QgcG9zaXRpb246YWJzb2x1dGUgKi9cblx0cG9zaXRpb246c3RhdGljO1xuXHQvKiBoZWlnaHQ6YXV0byBvciAxMDAlIGRvZXMgbm90IHdvcmsgaW4gSUU2ICovXG5cdGhlaWdodDoxLjZlbTtcbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlIC5kaWppdFByb2dyZXNzQmFyVGlsZSB7XG5cdC8qIGFuaW1hdGVkIGdpZiBmb3IgJ2luZGV0ZXJtaW5hdGUnIG1vZGUgKi9cbn1cblxuLmRpaml0UHJvZ3Jlc3NCYXJJbmRldGVybWluYXRlSGlnaENvbnRyYXN0SW1hZ2Uge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdFByb2dyZXNzQmFySW5kZXRlcm1pbmF0ZSAuZGlqaXRQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVIaWdoQ29udHJhc3RJbWFnZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6MDtcblx0Ym90dG9tOjA7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG5cdHdpZHRoOjEwMCU7XG5cdGhlaWdodDphdXRvO1xufVxuXG4uZGlqaXRQcm9ncmVzc0JhckxhYmVsIHtcblx0ZGlzcGxheTpibG9jaztcblx0cG9zaXRpb246c3RhdGljO1xuXHR3aWR0aDoxMDAlO1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKioqKlxuXHRcdGRpaml0LlRvb2x0aXBcbiAqKioqL1xuXG4uZGlqaXRUb29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyMDAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0LyogbWFrZSB2aXNpYmxlIGJ1dCBvZmYgc2NyZWVuICovXG5cdGxlZnQ6IDA7XG5cdHRvcDogLTEwMDAwcHg7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcblx0Ym9yZGVyOiBzb2xpZCBibGFjayAycHg7XG5cdGJhY2tncm91bmQ6ICNiOGI1YjU7XG5cdGNvbG9yOiBibGFjaztcblx0Zm9udC1zaXplOiBzbWFsbDtcbn1cblxuLmRpaml0VG9vbHRpcEZvY3VzTm9kZSB7XG5cdHBhZGRpbmc6IDJweCAycHggMnB4IDJweDtcbn1cblxuLmRpaml0VG9vbHRpcENvbm5lY3RvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kal9hMTF5IC5kaWppdFRvb2x0aXBDb25uZWN0b3Ige1xuXHRkaXNwbGF5OiBub25lO1x0Lyogd29uJ3Qgc2hvdyBiL2MgaXQncyBiYWNrZ3JvdW5kLWltYWdlOyBoaWRlIHRvIGF2b2lkIGJvcmRlciBnYXAgKi9cbn1cblxuLmRpaml0VG9vbHRpcERhdGEge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi8qIExheW91dCB3aWRnZXRzLiBUaGlzIGlzIGVzc2VudGlhbCBDU1MgdG8gbWFrZSBsYXlvdXQgd29yayAoaXQgaXNuJ3QgXCJzdHlsaW5nXCIgQ1NTKVxuICAgbWFrZSBzdXJlIHRoYXQgdGhlIHBvc2l0aW9uOmFic29sdXRlIGluIGRpaml0QWxpZ24qIG92ZXJyaWRlcyBvdGhlciBjbGFzc2VzICovXG5cbi5kaWppdExheW91dENvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5kaWppdEFsaWduVG9wLFxuLmRpaml0QWxpZ25Cb3R0b20sXG4uZGlqaXRBbGlnbkxlZnQsXG4uZGlqaXRBbGlnblJpZ2h0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5ib2R5IC5kaWppdEFsaWduQ2xpZW50IHsgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi8qXG4gKiBCb3JkZXJDb250YWluZXJcbiAqXG4gKiAuZGlqaXRCb3JkZXJDb250YWluZXIgaXMgYSBzdHlsaXplZCBsYXlvdXQgd2hlcmUgcGFuZXMgaGF2ZSBib3JkZXIgYW5kIG1hcmdpbi5cbiAqIC5kaWppdEJvcmRlckNvbnRhaW5lck5vR3V0dGVyIGlzIGEgcmF3IGxheW91dC5cbiAqL1xuLmRpaml0Qm9yZGVyQ29udGFpbmVyLCAuZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlciB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDA7IC8qIHNvIHotaW5kZXggc2V0dGluZ3MgYmVsb3cgaGF2ZSBubyBlZmZlY3Qgb3V0c2lkZSBvZiB0aGUgQm9yZGVyQ29udGFpbmVyICovXG59XG5cbi5kaWppdEJvcmRlckNvbnRhaW5lclBhbmUsXG4uZGlqaXRCb3JkZXJDb250YWluZXJOb0d1dHRlclBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgcG9zaXRpb246cmVsYXRpdmUgaW4gZGlqaXRUYWJDb250YWluZXIgZXRjLiAqL1xuXHR6LWluZGV4OiAyO1x0XHQvKiBhYm92ZSB0aGUgc3BsaXR0ZXJzIHNvIHRoYXQgb2ZmLWJ5LW9uZSBicm93c2VyIGVycm9ycyBkb24ndCBjb3ZlciB1cCBib3JkZXIgb2YgcGFuZSAqL1xufVxuXG4uZGlqaXRCb3JkZXJDb250YWluZXIgPiAuZGlqaXRUZXh0QXJlYSB7XG5cdC8qIE9uIFNhZmFyaSwgZm9yIFNpbXBsZVRleHRBcmVhIGluc2lkZSBhIEJvcmRlckNvbnRhaW5lcixcblx0XHRkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuLmRpaml0R3V0dGVyIHtcblx0LyogZ3V0dGVyIGlzIGp1c3QgYSBwbGFjZSBob2xkZXIgZm9yIGVtcHR5IHNwYWNlIGJldHdlZW4gcGFuZXMgaW4gQm9yZGVyQ29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIG5lZWRlZCBieSBJRTYgZXZlbiB0aG91Z2ggZGl2IGlzIGVtcHR5LCBvdGhlcndpc2UgZ29lcyB0byAxNXB4ICovXG59XG5cbi8qIFNwbGl0Q29udGFpbmVyXG5cblx0J1YnID09IGNvbnRhaW5lciB0aGF0IHNwbGl0cyB2ZXJ0aWNhbGx5ICh1cC9kb3duKVxuXHQnSCcgPSBob3Jpem9udGFsIChsZWZ0L3JpZ2h0KVxuKi9cblxuLmRpaml0U3BsaXR0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHotaW5kZXg6IDEwO1x0XHQvKiBhYm92ZSB0aGUgcGFuZXMgc28gdGhhdCBzcGxpdHRlciBmb2N1cyBpcyB2aXNpYmxlIG9uIEZGLCBzZWUgIzc1ODMqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRib3JkZXItY29sb3I6IGdyYXk7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogMDtcbn1cbi5kal9pZSAuZGlqaXRTcGxpdHRlciB7XG5cdHotaW5kZXg6IDE7XHQvKiBiZWhpbmQgdGhlIHBhbmVzIHNvIHRoYXQgcGFuZSBib3JkZXJzIGFyZW4ndCBvYnNjdXJlZCBzZWUgdGVzdF9HdWkuaHRtbC9bMTQzOTJdICovXG59XG5cbi5kaWppdFNwbGl0dGVyQWN0aXZlIHtcblx0ei1pbmRleDogMTEgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR6LWluZGV4Oi0xO1xuXHR0b3A6MDtcblx0bGVmdDowO1xuXHR3aWR0aDoxMDAlO1xuXHRoZWlnaHQ6MTAwJTtcbn1cblxuLmRpaml0U3BsaXR0ZXJDb3ZlckFjdGl2ZSB7XG5cdHotaW5kZXg6MyAhaW1wb3J0YW50O1xufVxuXG4vKiAjNjk0NTogc3RvcCBtb3VzZSBldmVudHMgKi9cbi5kal9pZSAuZGlqaXRTcGxpdHRlckNvdmVyIHtcblx0YmFja2dyb3VuZDogd2hpdGU7XG5cdG9wYWNpdHk6IDA7XG59XG4uZGpfaWU2IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU3IC5kaWppdFNwbGl0dGVyQ292ZXIsXG4uZGpfaWU4IC5kaWppdFNwbGl0dGVyQ292ZXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG59XG5cbi5kaWppdFNwbGl0dGVySCB7XG5cdGhlaWdodDogN3B4O1xuXHRib3JkZXItdG9wOjFweDtcblx0Ym9yZGVyLWJvdHRvbToxcHg7XG5cdGN1cnNvcjogcm93LXJlc2l6ZTtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdFNwbGl0dGVyViB7XG5cdHdpZHRoOiA3cHg7XG5cdGJvcmRlci1sZWZ0OjFweDtcblx0Ym9yZGVyLXJpZ2h0OjFweDtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0U3BsaXRDb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGlqaXRTcGxpdFBhbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILFxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IFRocmVlREZhY2U7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItY29sb3I6IFRocmVlREhpZ2hsaWdodCBUaHJlZURTaGFkb3cgVGhyZWVEU2hhZG93IFRocmVlREhpZ2hsaWdodDtcblx0bWFyZ2luOiAwO1xufVxuXG4uZGlqaXRTcGxpdENvbnRhaW5lclNpemVySCAudGh1bWIsIC5kaWppdFNwbGl0dGVyViAuZGlqaXRTcGxpdHRlclRodW1iIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOjQ5JTtcbn1cblxuLmRpaml0U3BsaXRDb250YWluZXJTaXplclYgLnRodW1iLCAuZGlqaXRTcGxpdHRlckggLmRpaml0U3BsaXR0ZXJUaHVtYiB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OjQ5JTtcbn1cblxuLmRpaml0U3BsaXR0ZXJTaGFkb3csXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgsXG4uZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRmb250LXNpemU6IDFweDtcblx0YmFja2dyb3VuZC1jb2xvcjogVGhyZWVEU2hhZG93O1xuXHQtbW96LW9wYWNpdHk6IDAuNTtcblx0b3BhY2l0eTogMC41O1xuXHRmaWx0ZXI6IEFscGhhKE9wYWNpdHk9NTApO1xuXHRtYXJnaW46IDA7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJILCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplckgge1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5kaWppdFNwbGl0Q29udGFpbmVyU2l6ZXJWLCAuZGlqaXRTcGxpdENvbnRhaW5lclZpcnR1YWxTaXplclYge1xuXHRjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5kal9hMTF5IC5kaWppdFNwbGl0dGVySCB7XG5cdGJvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNkMyAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0U3BsaXR0ZXJWIHtcblx0Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkM2QzZDMgIWltcG9ydGFudDtcblx0Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZDNkM2QzICFpbXBvcnRhbnQ7XG59XG5cbi8qIENvbnRlbnRQYW5lICovXG5cbi5kaWppdENvbnRlbnRQYW5lIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBhdXRvO1x0LyogaWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIChvciBvdmVyZmxvdzpoaWRkZW4pLCB0aGVuIFdpZGdldC5yZXNpemVUbygpIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3IgQ29udGVudFBhbmUgKi9cblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZVNpbmdsZUNoaWxkIHtcblx0Lypcblx0ICogaWYgdGhlIENvbnRlbnRQYW5lIGhvbGRzIGEgc2luZ2xlIGxheW91dCB3aWRnZXQgY2hpbGQgd2hpY2ggaXMgYmVpbmcgc2l6ZWQgdG8gbWF0Y2ggdGhlIGNvbnRlbnQgcGFuZSxcblx0ICogdGhlbiB0aGUgQ29udGVudFBhbmUgc2hvdWxkIG5ldmVyIGdldCBhIHNjcm9sbGJhciAoYnV0IGl0IGRvZXMgZHVlIHRvIGJyb3dzZXIgYnVncywgc2VlICM5NDQ5XG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZGlqaXRDb250ZW50UGFuZUxvYWRpbmcgLmRpaml0SWNvbkxvYWRpbmcsXG4uZGlqaXRDb250ZW50UGFuZUVycm9yIC5kaWppdEljb25FcnJvciB7XG5cdG1hcmdpbi1yaWdodDogOXB4O1xufVxuXG4vKiBUaXRsZVBhbmUgYW5kIEZpZWxkc2V0ICovXG5cbi5kaWppdFRpdGxlUGFuZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRpaml0RmllbGRzZXQge1xuXHRib3JkZXI6IDFweCBzb2xpZCBncmF5O1xufVxuLmRpaml0VGl0bGVQYW5lVGl0bGUsIC5kaWppdEZpZWxkc2V0VGl0bGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkT3BlbiwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCxcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4sIC5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZENsb3NlZCB7XG5cdC8qIFRpdGxlUGFuZSBvciBGaWVsZHNldCB0aGF0IGNhbm5vdCBiZSB0b2dnbGVkICovXG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlICoge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIG5vcm1hbGx5LCBoaWRlIGFycm93IHRleHQgaW4gZmF2b3Igb2YgaWNvbiAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZUlubmVyLCAuZGpfYTExeSAuZGlqaXRGaWVsZHNldCAuZGlqaXRBcnJvd05vZGVJbm5lciB7XG5cdC8qIC4uLiBleGNlcHQgaW4gYTExeSBtb2RlLCB0aGVuIHNob3cgdGV4dCBhcnJvdyAqL1xuXHRkaXNwbGF5OiBpbmxpbmU7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHRcdC8qIGJlY2F1c2UgLSBhbmQgKyBhcmUgZGlmZmVyZW50IHdpZHRocyAqL1xufVxuLmRqX2ExMXkgLmRpaml0VGl0bGVQYW5lIC5kaWppdEFycm93Tm9kZSwgLmRqX2ExMXkgLmRpaml0RmllbGRzZXQgLmRpaml0QXJyb3dOb2RlIHtcblx0LyogLi4uIGFuZCBoaWRlIGljb24gKFRPRE86IGp1c3QgcG9pbnQgZGlqaXRJY29uIGNsYXNzIG9uIHRoZSBpY29uLCBhbmQgaXQgaGlkZXMgYXV0b21hdGljYWxseSkgKi9cblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kaWppdFRpdGxlUGFuZVRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlSW5uZXIsXG4uZGlqaXRUaXRsZVBhbmVUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0VGl0bGVQYW5lVGl0bGVGaXhlZENsb3NlZCAuZGlqaXRBcnJvd05vZGVJbm5lcixcbi5kaWppdEZpZWxkc2V0VGl0bGVGaXhlZE9wZW4gLmRpaml0QXJyb3dOb2RlLCAuZGlqaXRGaWVsZHNldFRpdGxlRml4ZWRPcGVuIC5kaWppdEFycm93Tm9kZUlubmVyLFxuLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZSwgLmRpaml0RmllbGRzZXRUaXRsZUZpeGVkQ2xvc2VkIC5kaWppdEFycm93Tm9kZUlubmVyIHtcblx0LyogZG9uJ3Qgc2hvdyB0aGUgb3BlbiBjbG9zZSBpY29uIG9yIHRleHQgYXJyb3c7IGl0IG1ha2VzIHRoZSB1c2VyIHRoaW5rIHRoZSBwYW5lIGlzIGNsb3NhYmxlICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcdC8qICFpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgYWJvdmUgYTExeSBydWxlcyB0byBzaG93IHRleHQgYXJyb3cgKi9cbn1cblxuLmRqX2llNiAuZGlqaXRUaXRsZVBhbmVDb250ZW50T3V0ZXIsXG4uZGpfaWU2IC5kaWppdFRpdGxlUGFuZSAuZGlqaXRUaXRsZVBhbmVUaXRsZSB7XG5cdC8qIGZvcmNlIGhhc0xheW91dCB0byBlbnN1cmUgYm9yZGVycyBldGMsIHNob3cgdXAgKi9cblx0em9vbTogMTtcbn1cblxuLyogQ29sb3IgUGFsZXR0ZVxuICogU2l6ZXMgZGVzaWduZWQgc28gdGhhdCB0YWJsZSBjZWxsIHBvc2l0aW9ucyBtYXRjaCBpY29ucyBpbiB1bmRlcmx5aW5nIGltYWdlLFxuICogd2hpY2ggYXBwZWFyIGF0IDIweDIwIGludGVydmFscy5cbiAqL1xuXG4uZGlqaXRDb2xvclBhbGV0dGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUge1xuXHQvKiBUYWJsZSB0aGF0IGhvbGRzIHRoZSBwYWxldHRlIGNlbGxzLCBhbmQgb3ZlcmxheXMgaW1hZ2UgZmlsZSB3aXRoIGNvbG9yIHN3YXRjaGVzLlxuXHQgKiBwYWRkaW5nL21hcmdpbiB0byBhbGlnbiB0YWJsZSB3aXRoIGltYWdlLlxuXHQgKi9cblx0cGFkZGluZzogMnB4IDNweCAzcHggM3B4O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG91dGxpbmU6IDA7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uZGpfaWU2IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWU3IC5kaWppdENvbG9yUGFsZXR0ZSAuZGlqaXRQYWxldHRlVGFibGUsXG4uZGpfaWVxdWlya3MgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSB7XG5cdC8qIHVzaW5nIHBhZGRpbmcgYWJvdmUgc28gdGhhdCBmb2N1cyBib3JkZXIgaXNuJ3QgY3V0b2ZmIG9uIG1vei93ZWJraXQsXG5cdCAqIGJ1dCB1c2luZyBtYXJnaW4gb24gSUUgYmVjYXVzZSBwYWRkaW5nIGRvZXNuJ3Qgc2VlbSB0byB3b3JrXG5cdCAqL1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDJweCAzcHggM3B4IDNweDtcbn1cblxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsIHtcblx0LyogPHRkPiBpbiB0aGUgPHRhYmxlPiAqL1xuXHRmb250LXNpemU6IDFweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBDYWxsZWQgZGlqaXRQYWxldHRlSW1nIGZvciBiYWNrLWNvbXBhdCwgdGhpcyBhY3R1YWxseSB3cmFwcyB0aGUgY29sb3Igc3dhdGNoIHdpdGggYSBib3JkZXIgYW5kIHBhZGRpbmcgKi9cblx0cGFkZGluZzogMXB4O1x0XHQvKiB3aGl0ZSBhcmVhIGJldHdlZW4gZ3JheSBib3JkZXIgYW5kIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuXHRtYXJnaW46IDJweCAxcHg7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0Zm9udC1zaXplOiAxcHg7XHRcdC8qIHByZXZlbnQgPHNwYW4+IGZyb20gZ2V0dGluZyBiaWdnZXIganVzdCB0byBob2xkIGEgY2hhcmFjdGVyICovXG59XG4uZGpfZ2Vja28gLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVJbWcge1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcdC8qIHdvcmthcm91bmQgcmVuZGVyaW5nIGdsaXRjaCBvbiBGRiwgaXQgYWRkcyBhbiBleHRyYSBwaXhlbCBhdCB0aGUgYm90dG9tICovXG59XG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0Q29sb3JQYWxldHRlU3dhdGNoIHtcblx0LyogdGhlIGFjdHVhbCBwYXJ0IHdoZXJlIHRoZSBjb2xvciBpcyAqL1xuXHR3aWR0aDogMTRweDtcblx0aGVpZ2h0OiAxMnB4O1xufVxuLmRpaml0UGFsZXR0ZVRhYmxlIHRkIHtcblx0XHRwYWRkaW5nOiAwO1xufVxuLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVDZWxsOmhvdmVyIC5kaWppdFBhbGV0dGVJbWcge1xuXHQvKiBob3ZlcmVkIGNvbG9yIHN3YXRjaCAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xufVxuXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZUNlbGw6YWN0aXZlIC5kaWppdFBhbGV0dGVJbWcsXG4uZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlIC5kaWppdFBhbGV0dGVDZWxsU2VsZWN0ZWQgLmRpaml0UGFsZXR0ZUltZyB7XG5cdGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG5cdG1hcmdpbjogMXB4IDA7XHQvKiByZWR1Y2UgbWFyZ2luIHRvIGNvbXBlbnNhdGUgZm9yIGluY3JlYXNlZCBib3JkZXIgKi9cbn1cblxuXG4uZGpfYTExeSAuZGlqaXRDb2xvclBhbGV0dGUgLmRpaml0UGFsZXR0ZVRhYmxlLFxuLmRqX2ExMXkgLmRpaml0Q29sb3JQYWxldHRlIC5kaWppdFBhbGV0dGVUYWJsZSAqIHtcblx0LyogdGFibGUgY2VsbHMgYXJlIHRvIGNhdGNoIGV2ZW50cywgYnV0IHRoZSBzd2F0Y2hlcyBhcmUgaW4gdGhlIFBhbGV0dGVJbWcgYmVoaW5kIHRoZSB0YWJsZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKiBBY2NvcmRpb25Db250YWluZXIgKi9cblxuLmRpaml0QWNjb3JkaW9uQ29udGFpbmVyIHtcblx0Ym9yZGVyOjFweCBzb2xpZCAjYjdiN2I3O1xuXHRib3JkZXItdG9wOjAgIWltcG9ydGFudDtcbn1cbi5kaWppdEFjY29yZGlvblRpdGxlIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0QWNjb3JkaW9uVGl0bGVTZWxlY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogaW1hZ2VzIG9mZiwgaGlnaC1jb250cmFzdCBtb2RlIHN0eWxlcyAqL1xuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dFVwLFxuLmRpaml0QWNjb3JkaW9uVGl0bGUgLmFycm93VGV4dERvd24ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDAuNjVlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZSAuYXJyb3dUZXh0VXAsXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHREb3duIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGpfYTExeSAuZGlqaXRBY2NvcmRpb25UaXRsZVNlbGVjdGVkIC5hcnJvd1RleHRVcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaWppdEFjY29yZGlvbkNoaWxkV3JhcHBlciB7XG5cdC8qIHRoaXMgaXMgdGhlIG5vZGUgd2hvc2UgaGVpZ2h0IGlzIGFkanVzdGVkICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIENhbGVuZGFyICovXG5cbi5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRhYmxlIHtcblx0d2lkdGg6IGF1dG87XHQvKiBpbiBjYXNlIHVzZXIgaGFzIHNwZWNpZmllZCBhIHdpZHRoIGZvciB0aGUgVEFCTEUgbm9kZXMsIHNlZSAjMTA1NTMgKi9cblx0Y2xlYXI6IGJvdGg7ICAgIC8qIGNsZWFyIG1hcmdpbiBjcmVhdGVkIGZvciBsZWZ0L3JpZ2h0IG1vbnRoIGFycm93czsgbmVlZGVkIG9uIElFMTAgZm9yIENhbGVuZGFyTGl0ZSAqL1xufVxuLmRpaml0Q2FsZW5kYXJDb250YWluZXIgdGgsIC5kaWppdENhbGVuZGFyQ29udGFpbmVyIHRkIHtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRpaml0Q2FsZW5kYXJNb250aENvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5kaWppdENhbGVuZGFyRGVjcmVtZW50QXJyb3cge1xuXHRmbG9hdDogbGVmdDtcbn1cbi5kaWppdENhbGVuZGFySW5jcmVtZW50QXJyb3cge1xuXHRmbG9hdDogcmlnaHQ7XG59XG5cbi5kaWppdENhbGVuZGFyWWVhckxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAvKiBtYWtlIHN1cmUgcHJldmlvdXMsIGN1cnJlbnQsIGFuZCBuZXh0IHllYXIgYXBwZWFyIG9uIHNhbWUgcm93ICovXG59XG5cbi5kaWppdENhbGVuZGFyTmV4dFllYXIge1xuXHRtYXJnaW46MCAwIDAgMC41NWVtO1xufVxuXG4uZGlqaXRDYWxlbmRhclByZXZpb3VzWWVhciB7XG5cdG1hcmdpbjowIDAuNTVlbSAwIDA7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kaWppdENhbGVuZGFySW5jcmVtZW50Q29udHJvbCxcbi5kaWppdENhbGVuZGFyRGF0ZVRlbXBsYXRlLFxuLmRpaml0Q2FsZW5kYXJNb250aExhYmVsLFxuLmRpaml0Q2FsZW5kYXJQcmV2aW91c1llYXIsXG4uZGlqaXRDYWxlbmRhck5leHRZZWFyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRDYWxlbmRhckRpc2FibGVkRGF0ZSB7XG5cdGNvbG9yOiBncmF5O1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRTcGFjZXIge1xuXHQvKiBkb24ndCBkaXNwbGF5IGl0LCBidXQgbWFrZSBpdCBhZmZlY3QgdGhlIHdpZHRoICovXG4gIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICBcdGhlaWdodDogMXB4O1xuICBcdG92ZXJmbG93OiBoaWRkZW47XG4gIFx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsaW5nIGZvciBtb250aCBkcm9wIGRvd24gbGlzdCAqL1xuXG4uZGlqaXRDYWxlbmRhck1vbnRoTWVudSAuZGlqaXRDYWxlbmRhck1vbnRoTGFiZWwge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLyogTWVudSAqL1xuXG4uZGlqaXRNZW51IHtcblx0Ym9yZGVyOjFweCBzb2xpZCBibGFjaztcblx0YmFja2dyb3VuZC1jb2xvcjp3aGl0ZTtcbn1cbi5kaWppdE1lbnVUYWJsZSB7XG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcblx0Ym9yZGVyLXdpZHRoOjA7XG5cdGJhY2tncm91bmQtY29sb3I6d2hpdGU7XG59XG5cbi8qIHdvcmthcm91bmQgZm9yIHdlYmtpdCBidWcgIzg0MjcsIHJlbW92ZSB0aGlzIHdoZW4gaXQgaXMgZml4ZWQgdXBzdHJlYW0gKi9cbi5kal93ZWJraXQgLmRpaml0TWVudVRhYmxlIHRkW2NvbHNwYW49XCIyXCJde1xuXHRib3JkZXItcmlnaHQ6aGlkZGVuO1xufVxuXG4uZGlqaXRNZW51SXRlbSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHBhZGRpbmc6LjFlbSAuMmVtO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbk5vIG5lZWQgdG8gc2hvdyBhIGZvY3VzIGJvcmRlciBzaW5jZSBpdCdzIG9idmlvdXMgZnJvbSB0aGUgc2hhZGluZywgYW5kIHRoZXJlJ3MgYSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbVNlbGVjdGVkXG5ydWxlIGJlbG93IHRoYXQgaGFuZGxlcyB0aGUgaGlnaCBjb250cmFzdCBjYXNlIHdoZW4gdGhlcmUncyBubyBzaGFkaW5nLlxuSGlkaW5nIHRoZSBmb2N1cyBib3JkZXIgYWxzbyB3b3JrcyBhcm91bmQgd2Via2l0IGJ1ZyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTI1Nzc5LlxuKi9cbi5kaWppdE1lbnVJdGVtOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZVxufVxuXG4uZGlqaXRNZW51UGFzc2l2ZSAuZGlqaXRNZW51SXRlbUhvdmVyLFxuLmRpaml0TWVudUl0ZW1TZWxlY3RlZCB7XG5cdC8qXG5cdCAqIGRpaml0TWVudUl0ZW1Ib3ZlciByZWZlcnMgdG8gYWN0dWFsIG1vdXNlIG92ZXJcblx0ICogZGlqaXRNZW51SXRlbVNlbGVjdGVkIGlzIHVzZWQgYWZ0ZXIgYSBtZW51IGhhcyBiZWVuIFwiYWN0aXZhdGVkXCIgYnlcblx0ICogY2xpY2tpbmcgaXQsIHRhYmJpbmcgaW50byBpdCwgb3IgYmVpbmcgb3BlbmVkIGZyb20gYSBwYXJlbnQgbWVudSxcblx0ICogYW5kIGRlbm90ZXMgdGhhdCB0aGUgbWVudSBpdGVtIGhhcyBmb2N1cyBvciB0aGF0IGZvY3VzIGlzIG9uIGEgY2hpbGRcblx0ICogbWVudVxuXHQgKi9cblx0YmFja2dyb3VuZC1jb2xvcjpibGFjaztcblx0Y29sb3I6d2hpdGU7XG59XG5cbi5kaWppdE1lbnVJdGVtSWNvbiwgLmRpaml0TWVudUV4cGFuZCB7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKiB7XG5cdC8qIGZvciBhIGRpc2FibGVkIG1lbnUgaXRlbSwganVzdCBzZXQgaXQgdG8gbW9zdGx5IHRyYW5zcGFyZW50ICovXG5cdG9wYWNpdHk6MC41O1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kal9pZSAuZGpfYTExeSAuZGlqaXRNZW51SXRlbURpc2FibGVkLFxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVJdGVtRGlzYWJsZWQgKixcbi5kal9pZSAuZGlqaXRNZW51SXRlbURpc2FibGVkICoge1xuXHRjb2xvcjogZ3JheTtcblx0ZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbn1cblxuLmRpaml0TWVudUl0ZW1MYWJlbCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtU2VsZWN0ZWQge1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2sgIWltcG9ydGFudDtcdC8qIGZvciAyLjAgdXNlIG91dGxpbmUgaW5zdGVhZCwgdG8gcHJldmVudCBqaXR0ZXIgKi9cbn1cblxuLmRqX2ExMXkgLmRpaml0TWVudUl0ZW1TZWxlY3RlZCAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWU4IC5kal9hMTF5IC5kaWppdE1lbnVJdGVtTGFiZWwge1xuXHRwb3NpdGlvbjpzdGF0aWM7XG59XG5cbi5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5kal9hMTF5IC5kaWppdE1lbnVFeHBhbmRBMTF5IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRNZW51U2VwYXJhdG9yIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4vKiBzZXBhcmF0b3IgY2FuIGJlIHR3byBwaXhlbHMgLS0gc2V0IGJvcmRlciBvZiBlaXRoZXIgb25lIHRvIDAgdG8gaGF2ZSBvbmx5IG9uZSAqL1xuLmRpaml0TWVudVNlcGFyYXRvclRvcCB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi10b3A6M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLmRpaml0TWVudVNlcGFyYXRvckJvdHRvbSB7XG5cdGhlaWdodDogNTAlO1xuXHRtYXJnaW46IDA7XG5cdG1hcmdpbi1ib3R0b206M3B4O1xuXHRmb250LXNpemU6IDFweDtcbn1cblxuLyogQ2hlY2tlZE1lbnVJdGVtIGFuZCBSYWRpb01lbnVJdGVtICovXG4uZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0ZGlzcGxheTogbm9uZTtcdFx0LyogZG9uJ3QgZGlzcGxheSBleGNlcHQgaW4gaGlnaCBjb250cmFzdCBtb2RlICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcdC8qIGZvciBoaWdoIGNvbnRyYXN0IG1vZGUgd2hlbiBtZW51aXRlbSBpcyB1bmNoZWNrZWQ6IGxlYXZlIHNwYWNlIGZvciB3aGVuIGl0IGlzIGNoZWNrZWQgKi9cbn1cbi5kal9hMTF5IC5kaWppdE1lbnVJdGVtSWNvbkNoYXIge1xuXHRkaXNwbGF5OiBpbmxpbmU7XHQvKiBkaXNwbGF5IGNoYXJhY3RlciBpbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHNpbmNlIGljb24gZG9lc24ndCBzaG93ICovXG59XG4uZGlqaXRDaGVja2VkTWVudUl0ZW1DaGVja2VkIC5kaWppdE1lbnVJdGVtSWNvbkNoYXIsXG4uZGlqaXRSYWRpb01lbnVJdGVtQ2hlY2tlZCAuZGlqaXRNZW51SXRlbUljb25DaGFyIHtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTsgLyogbWVudWl0ZW0gaXMgY2hlY2tlZCAqL1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdE1lbnVCYXIgLmRpaml0TWVudUl0ZW0ge1xuXHQvKiBzbyBib3R0b20gYm9yZGVyIG9mIE1lbnVCYXIgYXBwZWFycyBvbiBJRTcgaW4gaGlnaC1jb250cmFzdCBtb2RlICovXG5cdG1hcmdpbjogMDtcbn1cblxuLyogU3RhY2tDb250YWluZXIgKi9cblxuLmRpaml0U3RhY2tDb250cm9sbGVyIC5kaWppdFRvZ2dsZUJ1dHRvbkNoZWNrZWQgKiB7XG5cdGN1cnNvcjogZGVmYXVsdDtcdC8qIGJlY2F1c2UgcHJlc3NpbmcgaXQgaGFzIG5vIGVmZmVjdCAqL1xufVxuXG4vKioqXG5UYWJDb250YWluZXJcblxuTWFpbiBjbGFzcyBoaWVyYXJjaHk6XG5cbi5kaWppdFRhYkNvbnRhaW5lciAtIHRoZSB3aG9sZSBUYWJDb250YWluZXJcbiAgIC5kaWppdFRhYkNvbnRyb2xsZXIgLyAuZGlqaXRUYWJMaXN0Q29udGFpbmVyLXRvcCAtIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zLCBzY3JvbGwgYnV0dG9uc1xuXHQgLmRpaml0VGFiTGlzdFdyYXBwZXIgLyAuZGlqaXRUYWJDb250YWluZXJUb3BTdHJpcCAtIG91dGVyIHdyYXBwZXIgZm9yIHRhYiBidXR0b25zIChub3JtYWwgd2lkdGgpXG5cdFx0Lm5vd3JhcFRhYlN0cmlwIC8gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLSBpbm5lciB3cmFwcGVyIGZvciB0YWIgYnV0dG9ucyAoNTBLIHdpZHRoKVxuICAgLmRpaml0VGFiUGFuZVdyYXBwZXIgLSB3cmFwcGVyIGZvciBjb250ZW50IHBhbmVzLCBoYXMgYWxsIGJvcmRlcnMgZXhjZXB0IHRoZSBvbmUgYmV0d2VlbiBjb250ZW50IGFuZCB0YWJzXG4qKiovXG5cbi5kaWppdFRhYkNvbnRhaW5lciB7XG4gICAgei1pbmRleDogMDsgLyogc28gei1pbmRleCBzZXR0aW5ncyBiZWxvdyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBUYWJDb250YWluZXIgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogcHJldmVudCBvZmYtYnktb25lLXBpeGVsIGVycm9ycyBmcm9tIGhpZGluZyBib3R0b20gYm9yZGVyIChvcHBvc2l0ZSB0YWIgbGFiZWxzKSAqL1xufVxuLmRqX2llNiAuZGlqaXRUYWJDb250YWluZXIge1xuICAgIC8qIHdvcmthcm91bmQgSUU2IHByb2JsZW0gd2hlbiB0YWxsIGNvbnRlbnQgb3ZlcmZsb3dzIFRhYkNvbnRhaW5lciwgc2VlIGVkaXRvci90ZXN0X0Z1bGxTY3JlZW4uaHRtbCAqL1xuICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxufVxuLmRpaml0VGFiQ29udGFpbmVyTm9MYXlvdXQge1xuXHR3aWR0aDogMTAwJTtcdC8qIG90aGVyd2lzZSBTY3JvbGxpbmdUYWJDb250cm9sbGVyIGdvZXMgdG8gNTBLIHBpeGVscyB3aWRlICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzLFxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMsXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcbiAgICB6LWluZGV4OiAxO1xuXHRvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyAgLyogc28gdGFicyBjYW4gY292ZXIgdXAgYm9yZGVyIGFkamFjZW50IHRvIGNvbnRhaW5lciAqL1xufVxuXG4uZGlqaXRUYWJDb250cm9sbGVyIHtcbiAgICB6LWluZGV4OiAxO1xufVxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIsXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lcixcbi5kaWppdFRhYkNvbnRhaW5lclJpZ2h0LWNvbnRhaW5lciB7XG5cdHotaW5kZXg6MDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG59XG4ubm93cmFwVGFiU3RyaXAge1xuXHR3aWR0aDogNTAwMDBweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyAgLyoganVzdCBpbiBjYXNlIGFuY2VzdG9yIGhhcyBub24tc3RhbmRhcmQgc2V0dGluZyAqL1xuICAgIHotaW5kZXg6IDE7XG59XG4uZGlqaXRUYWJMaXN0V3JhcHBlciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTtcbn1cblxuLmRqX2ExMXkgLnRhYlN0cmlwQnV0dG9uIGltZyB7XG5cdC8qIGhpZGUgdGhlIGljb25zIChvciByYXRoZXIgdGhlIGVtcHR5IHNwYWNlIHdoZXJlIHRoZXkgbm9ybWFsbHkgYXBwZWFyKSBiZWNhdXNlIHRleHQgd2lsbCBhcHBlYXIgaW5zdGVhZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJUb3AtdGFicyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lclRvcC1jb250YWluZXIge1xuXHRib3JkZXItdG9wOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LWNvbnRhaW5lciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJCb3R0b20tdGFicyB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS1jb250YWluZXIge1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuXG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIHtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0ZmxvYXQ6IGxlZnQ7ICAgIC8qIG5lZWRlZCBmb3IgSUU3IFJUTCBtb2RlICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC1jb250YWluZXIge1xuXHRib3JkZXItcmlnaHQ6IDA7XG59XG5cbmRpdi5kaWppdFRhYkRpc2FibGVkLCAuZGpfaWUgZGl2LmRpaml0VGFiRGlzYWJsZWQge1xuXHRjdXJzb3I6IGF1dG87XG59XG5cbi5kaWppdFRhYiB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHR6LWluZGV4OjM7XG59XG4uZGlqaXRUYWIgKiB7XG5cdC8qIG1ha2UgdGFiIGljb25zIGFuZCBjbG9zZSBpY29uIGxpbmUgdXAgdy90ZXh0ICovXG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uZGlqaXRUYWJDaGVja2VkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1x0LyogYmVjYXVzZSBjbGlja2luZyB3aWxsIGhhdmUgbm8gZWZmZWN0ICovXG59XG5cbi5kaWppdFRhYkNvbnRhaW5lclRvcC10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgKi9cbn1cbi5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzIC5kaWppdFRhYiB7XG5cdHRvcDogLTFweDtcdC8qIHRvIG92ZXJsYXAgYm9yZGVyIG9uIC5kaWppdFRhYkNvbnRhaW5lckJvdHRvbS10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJMZWZ0LXRhYnMgLmRpaml0VGFiIHtcblx0bGVmdDogMXB4O1x0LyogdG8gb3ZlcmxhcCBib3JkZXIgb24gLmRpaml0VGFiQ29udGFpbmVyTGVmdC10YWJzICovXG59XG4uZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzIC5kaWppdFRhYiB7XG5cdGxlZnQ6IC0xcHg7XHQvKiB0byBvdmVybGFwIGJvcmRlciBvbiAuZGlqaXRUYWJDb250YWluZXJSaWdodC10YWJzICovXG59XG5cblxuLmRpaml0VGFiQ29udGFpbmVyVG9wLXRhYnMgLmRpaml0VGFiLFxuLmRpaml0VGFiQ29udGFpbmVyQm90dG9tLXRhYnMgLmRpaml0VGFiIHtcblx0LyogSW5saW5lLWJsb2NrICovXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1x0XHRcdC8qIHdlYmtpdCBhbmQgRkYzICovXG5cdCN6b29tOiAxOyAvKiBzZXQgaGFzTGF5b3V0OnRydWUgdG8gbWltaWMgaW5saW5lLWJsb2NrICovXG5cdCNkaXNwbGF5OmlubGluZTsgLyogZG9uJ3QgdXNlIC5kal9pZSBzaW5jZSB0aGF0IGluY3JlYXNlcyB0aGUgcHJpb3JpdHkgKi9cbn1cblxuLnRhYlN0cmlwQnV0dG9uIHtcblx0ei1pbmRleDogMTI7XG59XG5cbi5kaWppdFRhYkJ1dHRvbkRpc2FibGVkIC50YWJTdHJpcEJ1dHRvbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cblxuLmRpaml0VGFiQ2xvc2VCdXR0b24ge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4uZGlqaXRUYWJDbG9zZVRleHQge1xuXHRkaXNwbGF5Om5vbmU7XG59XG5cbi5kaWppdFRhYiAudGFiTGFiZWwge1xuXHQvKiBtYWtlIHN1cmUgdGFicyB3L2Nsb3NlIGJ1dHRvbiBhbmQgdy9vdXQgY2xvc2UgYnV0dG9uIGFyZSBzYW1lIGhlaWdodCwgZXZlbiB3L3NtYWxsICg8MTVweCkgZm9udC5cblx0ICogYXNzdW1lcyA8PTE1cHggaGVpZ2h0IGZvciBjbG9zZSBidXR0b24gaWNvbi5cblx0ICovXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5kaWppdE5vSWNvbiB7XG5cdC8qIGFwcGxpZWQgdG8gPGltZz4vPHNwYW4+IG5vZGUgd2hlbiB0aGVyZSBpcyBubyBpY29uIHNwZWNpZmllZCAqL1xuXHRkaXNwbGF5OiBub25lO1xufVxuLmRqX2llNiAuZGlqaXRUYWIgLmRpaml0Tm9JY29uIHtcblx0LyogYmVjYXVzZSBtaW4taGVpZ2h0IChvbiAudGFiTGFiZWwsIGFib3ZlKSBkb2Vzbid0IHdvcmsgb24gSUU2ICovXG5cdGRpc3BsYXk6IGlubGluZTtcblx0aGVpZ2h0OiAxNXB4O1xuXHR3aWR0aDogMXB4O1xufVxuXG4vKiBpbWFnZXMgb2ZmLCBoaWdoLWNvbnRyYXN0IG1vZGUgc3R5bGVzICovXG5cbi5kal9hMTF5IC5kaWppdFRhYkNsb3NlQnV0dG9uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRqX2ExMXkgLmRpaml0VGFiQ2xvc2VUZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGlqaXRUYWJQYW5lLFxuLmRpaml0U3RhY2tDb250YWluZXItY2hpbGQsXG4uZGlqaXRBY2NvcmRpb25Db250YWluZXItY2hpbGQge1xuXHQvKiBjaGlsZHJlbiBvZiBUYWJDb250YWluZXIsIFN0YWNrQ29udGFpbmVyLCBhbmQgQWNjb3JkaW9uQ29udGFpbmVyIHNob3VsZG4ndCBoYXZlIGJvcmRlcnNcblx0ICogYi9jIGEgYm9yZGVyIGlzIGFscmVhZHkgdGhlcmUgZnJvbSB0aGUgVGFiQ29udGFpbmVyL1N0YWNrQ29udGFpbmVyL0FjY29yZGlvbkNvbnRhaW5lciBpdHNlbGYuXG5cdCAqL1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBJbmxpbmVFZGl0Qm94ICovXG4uZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcdC8qIHNvIGtleWxpbmUgKGJvcmRlcikgb24gaG92ZXIgY2FuIGFwcGVhciB3aXRob3V0IHNjcmVlbiBqdW1wICovXG5cdGN1cnNvcjogdGV4dDtcbn1cblxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlLFxuLmRqX2llNiAuZGlqaXRJbmxpbmVFZGl0Qm94RGlzcGxheU1vZGUge1xuXHQvKiBleGNlcHQgdGhhdCBJRTYgZG9lc24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGJvcmRlcnMsIG5vciBkb2VzIGhpZ2ggY29udHJhc3QgbW9kZSAqL1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyLFxuLmRqX2ExMXkgLmRpaml0SW5saW5lRWRpdEJveERpc3BsYXlNb2RlSG92ZXIsXG4uZGpfaWU2IC5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZUhvdmVyIHtcblx0LyogQW4gSW5saW5lRWRpdEJveCBpbiB2aWV3IG1vZGUgKGNsaWNrIHRoaXMgdG8gZWRpdCB0aGUgdGV4dCkgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogI2UyZWJmMjtcblx0Ym9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG59XG5cbi5kaWppdElubGluZUVkaXRCb3hEaXNwbGF5TW9kZURpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBUcmVlICovXG4uZGlqaXRUcmVlIHtcblx0b3ZlcmZsb3c6IGF1dG87XHQvKiBmb3Igc2Nyb2xsYmFycyB3aGVuIFRyZWUgaGFzIGEgaGVpZ2h0IHNldHRpbmcsIGFuZCB0byBwcmV2ZW50IHdyYXBwaW5nIGFyb3VuZCBmbG9hdCBlbGVtZW50cywgc2VlICMxMTQ5MSAqL1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uZGlqaXRUcmVlQ29udGFpbmVyIHtcblx0ZmxvYXQ6IGxlZnQ7XHQvKiBmb3IgY29ycmVjdCBoaWdobGlnaHRpbmcgZHVyaW5nIGhvcml6b250YWwgc2Nyb2xsLCBzZWUgIzE2MTMyICovXG59XG5cbi5kaWppdFRyZWVJbmRlbnQge1xuXHQvKiBhbW91bnQgdG8gaW5kZW50IGVhY2ggdHJlZSBub2RlIChyZWxhdGl2ZSB0byBwYXJlbnQgbm9kZSkgKi9cblx0d2lkdGg6IDE5cHg7XG59XG5cbi5kaWppdFRyZWVSb3csIC5kaWppdFRyZWVDb250ZW50IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRqX2llIC5kaWppdFRyZWVMYWJlbDpmb2N1cyB7XG5cdC8qIHdvcmthcm91bmQgSUU5IGJlaGF2aW9yIHdoZXJlIGRvd24gYXJyb3dpbmcgdGhyb3VnaCBUcmVlTm9kZXMgZG9lc24ndCBzaG93IGZvY3VzIG91dGxpbmUgKi9cblx0b3V0bGluZTogMXB4IGRvdHRlZCBibGFjaztcbn1cblxuLmRpaml0VHJlZVJvdyBpbWcge1xuXHQvKiBtYWtlIHRoZSBleHBhbmRvIGFuZCBmb2xkZXIgaWNvbnMgbGluZSB1cCB3aXRoIHRoZSBsYWJlbCAqL1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uZGlqaXRUcmVlQ29udGVudCB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uZGlqaXRFeHBhbmRvVGV4dCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kal9hMTF5IC5kaWppdEV4cGFuZG9UZXh0IHtcblx0ZGlzcGxheTogaW5saW5lO1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogdGhpbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGlqaXRUcmVlTGFiZWwge1xuXHRtYXJnaW46IDAgNHB4O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuLmRpaml0RGlhbG9nIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk7XG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBvdmVycmlkZSBvdmVyZmxvdzogYXV0bzsgZnJvbSBDb250ZW50UGFuZSB0byBtYWtlIGRyYWdnaW5nIHNtb290aGVyICovXG59XG5cbi5kaWppdERpYWxvZ1RpdGxlQmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLmRpaml0RGlhbG9nRml4ZWQgLmRpaml0RGlhbG9nVGl0bGVCYXIge1xuXHRjdXJzb3I6ZGVmYXVsdDtcbn1cbi5kaWppdERpYWxvZ0Nsb3NlSWNvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kaWppdERpYWxvZ1BhbmVDb250ZW50IHtcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmRpaml0RGlhbG9nVW5kZXJsYXlXcmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDk5ODtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmRpaml0RGlhbG9nVW5kZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiAjZWVlO1xuXHRvcGFjaXR5OiAwLjU7XG59XG5cbi5kal9pZSAuZGlqaXREaWFsb2dVbmRlcmxheSB7XG5cdGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG59XG5cbi8qIGltYWdlcyBvZmYsIGhpZ2gtY29udHJhc3QgbW9kZSBzdHlsZXMgKi9cbi5kal9hMTF5IC5kaWppdFNwaW5uZXJCdXR0b25Db250YWluZXIsXG4uZGpfYTExeSAuZGlqaXREaWFsb2cge1xuXHRvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdERpYWxvZyAuY2xvc2VUZXh0IHtcblx0ZGlzcGxheTpub25lO1xuXHQvKiBmb3IgdGhlIG9uaG92ZXIgYm9yZGVyIGluIGhpZ2ggY29udHJhc3Qgb24gSUU6ICovXG5cdHBvc2l0aW9uOmFic29sdXRlO1xufVxuXG4uZGpfYTExeSAuZGlqaXREaWFsb2cgLmNsb3NlVGV4dCB7XG5cdGRpc3BsYXk6aW5saW5lO1xufVxuXG4vKiBTbGlkZXIgKi9cblxuLmRpaml0U2xpZGVyTW92ZWFibGUge1xuXHR6LWluZGV4Ojk5O1xuXHRwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG59XG5cbi5kaWppdFNsaWRlck1vdmVhYmxlSCB7XG5cdHJpZ2h0OjA7XG59XG4uZGlqaXRTbGlkZXJNb3ZlYWJsZVYge1xuXHRyaWdodDo1MCU7XG59XG5cbi5kal9hMTF5IGRpdi5kaWppdFNsaWRlckltYWdlSGFuZGxlLFxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZSAhaW1wb3J0YW50O1xuXHRib3JkZXI6OHB4IHNvbGlkIGdyYXk7XG5cdHdpZHRoOjA7XG5cdGhlaWdodDowO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGpfaWVxdWlya3MgLmRqX2ExMXkgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRmb250LXNpemU6IDA7XG59XG4uZGpfaWU3IC5kaWppdFNsaWRlckltYWdlSGFuZGxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjsgLyogSUU3IHdvcmthcm91bmQgdG8gbWFrZSBzbGlkZXIgaGFuZGxlIFZJU0lCTEUgaW4gbm9uLWExMXkgbW9kZSAqL1xufVxuLmRqX2llNyAuZGpfYTExeSAuZGlqaXRTbGlkZXJJbWFnZUhhbmRsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlOyAvKiBJRTcgd29ya2Fyb3VuZCB0byBtYWtlIHNsaWRlciBoYW5kbGUgVklTSUJMRSBpbiBhMTF5IG1vZGUgKi9cbn1cbi5kal9hMTF5IC5kaWppdFNsaWRlckZvY3VzZWQgLmRpaml0U2xpZGVySW1hZ2VIYW5kbGUge1xuXHRib3JkZXI6NHB4IHNvbGlkICMwMDA7XG5cdGhlaWdodDo4cHg7XG5cdHdpZHRoOjhweDtcbn1cblxuLmRpaml0U2xpZGVySW1hZ2VIYW5kbGVWIHtcblx0dG9wOi04cHg7XG5cdHJpZ2h0OiAtNTAlO1xufVxuXG4uZGlqaXRTbGlkZXJJbWFnZUhhbmRsZUgge1xuXHRsZWZ0OjUwJTtcblx0dG9wOi01cHg7XG5cdHZlcnRpY2FsLWFsaWduOnRvcDtcbn1cblxuLmRpaml0U2xpZGVyQmFyIHtcblx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xuXHRib3JkZXItY29sb3I6YmxhY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyQmFyQ29udGFpbmVyViB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRoZWlnaHQ6MTAwJTtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCYXJDb250YWluZXJIIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHotaW5kZXg6MTtcbn1cblxuLmRpaml0U2xpZGVyQmFySCB7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQmFyViB7XG5cdHdpZHRoOjRweDtcblx0Ym9yZGVyLXdpZHRoOjAgMXB4O1xufVxuXG4uZGlqaXRTbGlkZXJQcm9ncmVzc0JhciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFyViB7XG5cdHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O1xuXHRoZWlnaHQ6MDtcblx0dmVydGljYWwtYWxpZ246dG9wO1xuXHR0ZXh0LWFsaWduOmxlZnQ7XG59XG5cbi5kaWppdFNsaWRlclByb2dyZXNzQmFySCB7XG5cdHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjA7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0U2xpZGVyUmVtYWluaW5nQmFyIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xuXHR6LWluZGV4OjE7XG59XG5cbi5kaWppdFNsaWRlclJlbWFpbmluZ0JhclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGlqaXRTbGlkZXJSZW1haW5pbmdCYXJIIHtcblx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiB0aGUgc2xpZGVyIGJ1bXBlciBpcyB0aGUgc3BhY2UgY29uc3VtZWQgYnkgdGhlIHNsaWRlciBoYW5kbGUgd2hlbiBpdCBoYW5ncyBvdmVyIGFuIGVkZ2UgKi9cbi5kaWppdFNsaWRlckJ1bXBlciB7XG5cdG92ZXJmbG93OmhpZGRlbjtcblx0ei1pbmRleDoxO1xufVxuXG4uZGlqaXRTbGlkZXJCdW1wZXJWIHtcblx0d2lkdGg6NHB4O1xuXHRoZWlnaHQ6OHB4O1xuXHRib3JkZXItd2lkdGg6MCAxcHg7XG59XG5cbi5kaWppdFNsaWRlckJ1bXBlckgge1xuXHR3aWR0aDo4cHg7XG5cdGhlaWdodDo0cHg7XG5cdGJvcmRlci13aWR0aDoxcHggMDtcbn1cblxuLmRpaml0U2xpZGVyQm90dG9tQnVtcGVyLFxuLmRpaml0U2xpZGVyTGVmdEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6cmVkO1xufVxuXG4uZGlqaXRTbGlkZXJUb3BCdW1wZXIsXG4uZGlqaXRTbGlkZXJSaWdodEJ1bXBlciB7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG59XG5cbi5kaWppdFNsaWRlckRlY29yYXRpb24ge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkMsXG4uZGlqaXRTbGlkZXJEZWNvcmF0aW9uViB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogbmVlZGVkIGZvciBJRStxdWlya3MrUlRMK3ZlcnRpY2FsIChyZW5kZXJpbmcgYnVnKSBidXQgYWRkIGV2ZXJ5d2hlcmUgZm9yIGN1c3RvbSBzdHlsaW5nIGNvbnNpc3RlbmN5IGJ1dCB0aGlzIG1lc3NlcyB1cCBJRSBob3Jpem9udGFsIHNsaWRlcnMgKi9cbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvbkgge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2xpZGVyRGVjb3JhdGlvblYge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kaWppdFNsaWRlckJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5Om1vbm9zcGFjZTtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0ZGlzcGxheTpibG9jaztcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyQnV0dG9uSW5uZXIge1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdGhlaWdodDowO1x0LyogPz8/ICovXG59XG4uZGlqaXRTbGlkZXJCdXR0b25Db250YWluZXIgKiB7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmRpaml0U2xpZGVyIC5kaWppdEJ1dHRvbk5vZGUge1xuXHRwYWRkaW5nOjA7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cbi5kaWppdFJ1bGVDb250YWluZXIge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0b3ZlcmZsb3c6dmlzaWJsZTtcbn1cblxuLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRoZWlnaHQ6MTAwJTtcblx0bGluZS1oZWlnaHQ6MDtcblx0ZmxvYXQ6bGVmdDtcblx0dGV4dC1hbGlnbjpsZWZ0O1xufVxuXG4uZGpfb3BlcmEgLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRsaW5lLWhlaWdodDoyJTtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVDb250YWluZXJWIHtcblx0bGluZS1oZWlnaHQ6bm9ybWFsO1xufVxuXG4uZGpfZ2Vja28gLmRpaml0UnVsZUNvbnRhaW5lclYge1xuXHRtYXJnaW46MCAwIDFweCAwOyAvKiBtb3ppbGxhIGJ1ZyB3b3JrYXJvdW5kIGZvciBmbG9hdDpsZWZ0LGhlaWdodDoxMDAlIGJsb2NrIGVsZW1lbnRzICovXG59XG5cbi5kaWppdFJ1bGVNYXJrIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG5cdGxpbmUtaGVpZ2h0OjA7XG5cdGhlaWdodDoxMDAlO1xufVxuXG4uZGlqaXRSdWxlTWFya0gge1xuXHR3aWR0aDowO1xuXHRib3JkZXItdG9wLXdpZHRoOjAgIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1sZWZ0LXdpZHRoOjAgIWltcG9ydGFudDtcbn1cblxuLmRpaml0UnVsZUxhYmVsQ29udGFpbmVyIHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG59XG5cbi5kaWppdFJ1bGVMYWJlbENvbnRhaW5lckgge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG59XG5cbi5kaWppdFJ1bGVMYWJlbEgge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0bGVmdDotNTAlO1xufVxuXG4uZGlqaXRSdWxlTGFiZWxWIHtcblx0Lyogc28gdGhhdCBsb25nIGxhYmVscyBkb24ndCBvdmVyZmxvdyB0byBtdWx0aXBsZSByb3dzLCBvciBvdmVyd3JpdGUgc2xpZGVyIGl0c2VsZiAqL1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpaml0UnVsZU1hcmtWIHtcblx0aGVpZ2h0OjA7XG5cdGJvcmRlci1yaWdodC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6MCAhaW1wb3J0YW50O1xuXHRib3JkZXItbGVmdC13aWR0aDowICFpbXBvcnRhbnQ7XG5cdHdpZHRoOjEwMCU7XG5cdGxlZnQ6MDtcbn1cblxuLmRqX2llIC5kaWppdFJ1bGVMYWJlbENvbnRhaW5lclYge1xuXHRtYXJnaW4tdG9wOi0uNTVlbTtcbn1cblxuLmRqX2ExMXkgLmRpaml0U2xpZGVyUmVhZE9ubHksXG4uZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCB7XG5cdG9wYWNpdHk6MC42O1xufVxuLmRqX2llIC5kal9hMTF5IC5kaWppdFNsaWRlclJlYWRPbmx5IC5kaWppdFNsaWRlckJhcixcbi5kal9pZSAuZGpfYTExeSAuZGlqaXRTbGlkZXJEaXNhYmxlZCAuZGlqaXRTbGlkZXJCYXIge1xuXHRmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NDApO1xufVxuXG4vKiArIGFuZCAtIFNsaWRlciBidXR0b25zOiBvdmVycmlkZSB0aGVtZSBzZXR0aW5ncyB0byBkaXNwbGF5IGljb25zICovXG4uZGpfYTExeSAuZGlqaXRTbGlkZXIgLmRpaml0U2xpZGVyQnV0dG9uQ29udGFpbmVyIGRpdiB7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IC8qIG90aGVyd2lzZSBoeXBoZW4gaXMgbGFyZ2VyIGFuZCBtb3JlIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cblx0Zm9udC1zaXplOiAxZW07XG5cdGxpbmUtaGVpZ2h0OiAxZW07XG5cdGhlaWdodDogYXV0bztcblx0d2lkdGg6IGF1dG87XG5cdG1hcmdpbjogMCA0cHg7XG59XG5cbi8qIEljb24tb25seSBidXR0b25zIChvZnRlbiBpbiB0b29sYmFycykgc3RpbGwgZGlzcGxheSB0aGUgdGV4dCBpbiBoaWdoLWNvbnRyYXN0IG1vZGUgKi9cbi5kal9hMTF5IC5kaWppdEJ1dHRvbkNvbnRlbnRzIC5kaWppdEJ1dHRvblRleHQsXG4uZGpfYTExeSAuZGlqaXRUYWIgLnRhYkxhYmVsIHtcblx0ZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uVGV4dCB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBUZXh0QXJlYSwgU2ltcGxlVGV4dEFyZWEgKi9cbi5kaWppdFRleHRBcmVhIHtcblx0d2lkdGg6MTAwJTtcblx0b3ZlcmZsb3cteTogYXV0bztcdC8qIHcvb3V0IHRoaXMgSUUncyBTaW1wbGVUZXh0QXJlYSBnb2VzIHRvIG92ZXJmbG93OiBzY3JvbGwgKi9cbn1cbi5kaWppdFRleHRBcmVhW2NvbHNdIHtcblx0d2lkdGg6YXV0bzsgLyogU2ltcGxlVGV4dEFyZWEgY29scyAqL1xufVxuLmRqX2llIC5kaWppdFRleHRBcmVhQ29scyB7XG5cdHdpZHRoOmF1dG87XG59XG5cbi5kaWppdEV4cGFuZGluZ1RleHRBcmVhIHtcblx0LyogZm9yIGF1dG8gZXhhbmRpbmcgdGV4dGFyZWEgKGNhbGxlZCBUZXh0YXJlYSBjdXJyZW50bHksIHJlbmFtZSBmb3IgMi4wKSBkb24ndCB3YW50IHRvIGRpc3BsYXkgdGhlIGdyaXAgdG8gcmVzaXplICovXG5cdHJlc2l6ZTogbm9uZTtcbn1cblxuXG4vKiBUb29sYmFyXG4gKiBOb3RlIHRoYXQgb3RoZXIgdG9vbGJhciBydWxlcyAoZm9yIG9iamVjdHMgaW4gdG9vbGJhcnMpIGFyZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGlzIGZpbGUuXG4gKi9cblxuLmRpaml0VG9vbGJhclNlcGFyYXRvciB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDVweDtcblx0cGFkZGluZzogMCAxcHg7XG5cdG1hcmdpbjogMDtcbn1cblxuLyogRWRpdG9yICovXG4uZGlqaXRJRUZpeGVkVG9vbGJhciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHQvKiB0b3A6MDsgKi9cblx0dG9wOiBleHByZXNzaW9uKGV2YWwoKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8ZG9jdW1lbnQuYm9keSkuc2Nyb2xsVG9wKSk7XG59XG5cbi5kaWppdEVkaXRvciB7XG5cdGRpc3BsYXk6IGJsb2NrO1x0LyogcHJldmVudHMgZ2xpdGNoIG9uIEZGIHdpdGggSW5saW5lRWRpdEJveCwgc2VlICM4NDA0ICovXG59XG5cbi5kaWppdEVkaXRvckRpc2FibGVkLFxuLmRpaml0RWRpdG9yUmVhZE9ubHkge1xuXHRjb2xvcjogZ3JheTtcbn1cblxuLyogVGltZVBpY2tlciAqL1xuXG4uZGlqaXRUaW1lUGlja2VyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbSB7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1Ib3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6Z3JheTtcblx0Y29sb3I6d2hpdGU7XG59XG4uZGlqaXRUaW1lUGlja2VySXRlbVNlbGVjdGVkIHtcblx0Zm9udC13ZWlnaHQ6Ym9sZDtcblx0Y29sb3I6IzMzMztcblx0YmFja2dyb3VuZC1jb2xvcjojYjdjZGVlO1xufVxuLmRpaml0VGltZVBpY2tlckl0ZW1EaXNhYmxlZCB7XG5cdGNvbG9yOmdyYXk7XG5cdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG59XG5cbi5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0Ym9yZGVyOjA7XG5cdHBhZGRpbmc6MnB4IDhweCAycHggOHB4O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyVGljayxcbi5kaWppdFRpbWVQaWNrZXJNYXJrZXIge1xuXHRib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5O1xufVxuXG4uZGlqaXRUaW1lUGlja2VyIC5kaWppdERvd25BcnJvd0J1dHRvbiB7XG5cdGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0VGltZVBpY2tlclRpY2sge1xuXHRjb2xvcjojQ0NDO1xufVxuXG4uZGlqaXRUaW1lUGlja2VyTWFya2VyIHtcblx0Y29sb3I6YmxhY2s7XG5cdGJhY2tncm91bmQtY29sb3I6I0NDQztcbn1cblxuLmRqX2ExMXkgLmRpaml0VGltZVBpY2tlckl0ZW1TZWxlY3RlZCAuZGlqaXRUaW1lUGlja2VySXRlbUlubmVyIHtcblx0Ym9yZGVyOiBzb2xpZCA0cHggYmxhY2s7XG59XG4uZGpfYTExeSAuZGlqaXRUaW1lUGlja2VySXRlbUhvdmVyIC5kaWppdFRpbWVQaWNrZXJJdGVtSW5uZXIge1xuXHRib3JkZXI6IGRhc2hlZCA0cHggYmxhY2s7XG59XG5cblxuLmRpaml0VG9nZ2xlQnV0dG9uSWNvbkNoYXIge1xuXHQvKiBjaGFyYWN0ZXIgKGluc3RlYWQgb2YgaWNvbikgdG8gc2hvdyB0aGF0IFRvZ2dsZUJ1dHRvbiBpcyBjaGVja2VkICovXG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uIC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyIHtcblx0ZGlzcGxheTppbmxpbmUgIWltcG9ydGFudDtcblx0dmlzaWJpbGl0eTpoaWRkZW47XG59XG4uZGpfaWU2IC5kaWppdFRvZ2dsZUJ1dHRvbkljb25DaGFyLCAuZGpfaWU2IC50YWJTdHJpcEJ1dHRvbiAuZGlqaXRCdXR0b25UZXh0IHtcblx0Zm9udC1mYW1pbHk6IFwiQXJpYWwgVW5pY29kZSBNU1wiO1x0Lyogb3RoZXJ3aXNlIHRoZSBhMTF5IGNoYXJhY3RlciAoY2hlY2ttYXJrLCBhcnJvdywgZXRjLikgYXBwZWFycyBhcyBhIGJveCAqL1xufVxuLmRqX2ExMXkgLmRpaml0VG9nZ2xlQnV0dG9uQ2hlY2tlZCAuZGlqaXRUb2dnbGVCdXR0b25JY29uQ2hhciB7XG5cdGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyAvKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIGRpc3BsYXkgdGhlIGNoZWNrIHN5bWJvbCAqL1xuXHR2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmRpaml0QXJyb3dCdXR0b25DaGFyIHtcblx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG59XG4uZGpfYTExeSAuZGlqaXRBcnJvd0J1dHRvbkNoYXIge1xuXHRkaXNwbGF5OmlubGluZSAhaW1wb3J0YW50O1xufVxuXG4uZGpfYTExeSAuZGlqaXREcm9wRG93bkJ1dHRvbiAuZGlqaXRBcnJvd0J1dHRvbklubmVyLFxuLmRqX2ExMXkgLmRpaml0Q29tYm9CdXR0b24gLmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3QgKi9cbi5kal9hMTF5IC5kaWppdFNlbGVjdCB7XG5cdGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGUgIWltcG9ydGFudDtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZGpfaWUgLmRpaml0U2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogU2V0IHRoaXMgYmFjayBmb3Igd2hhdCB3ZSBoYWNrIGluIGRpaml0IGlubGluZSAqL1xufVxuLmRqX2llNiAuZGlqaXRTZWxlY3QgLmRpaml0VmFsaWRhdGlvbkNvbnRhaW5lcixcbi5kal9pZTggLmRpaml0U2VsZWN0IC5kaWppdEJ1dHRvblRleHQge1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmRqX2llNiAuZGlqaXRUZXh0Qm94IC5kaWppdElucHV0Q29udGFpbmVyLFxuLmRqX2llcXVpcmtzIC5kaWppdFRleHRCb3ggLmRpaml0SW5wdXRDb250YWluZXIsXG4uZGpfaWU2IC5kaWppdFRleHRCb3ggLmRpaml0QXJyb3dCdXR0b25Jbm5lcixcbi5kal9pZTYgLmRpaml0U3Bpbm5lciAuZGlqaXRTcGlubmVyQnV0dG9uSW5uZXIsXG4uZGlqaXRTZWxlY3QgLmRpaml0U2VsZWN0TGFiZWwge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5kaWppdE51bWJlclRleHRCb3gge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRkaXJlY3Rpb246IGx0cjtcbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCAuZGlqaXRJbnB1dElubmVyIHtcblx0dGV4dC1hbGlnbjogaW5oZXJpdDsgLyogaW5wdXQgKi9cbn1cblxuLmRpaml0TnVtYmVyVGV4dEJveCBpbnB1dC5kaWppdElucHV0SW5uZXIsXG4uZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRpaml0U3Bpbm5lciBpbnB1dC5kaWppdElucHV0SW5uZXIge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmRqX2llOCAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXROdW1iZXJUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lcixcbi5kal9pZTggLmRpaml0Q3VycmVuY3lUZXh0Qm94IGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRDdXJyZW5jeVRleHRCb3ggaW5wdXQuZGlqaXRJbnB1dElubmVyLFxuLmRqX2llOCAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciwgLmRqX2llOSAuZGlqaXRTcGlubmVyIGlucHV0LmRpaml0SW5wdXRJbm5lciB7XG5cdC8qIHdvcmthcm91bmQgYnVnIHdoZXJlIGNhcmV0IGludmlzaWJsZSBpbiBlbXB0eSB0ZXh0Ym94ZXMgKi9cblx0cGFkZGluZy1yaWdodDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5kaWppdFRvb2xiYXIgLmRpaml0U2VsZWN0IHtcblx0bWFyZ2luOiAwO1xufVxuLmRqX3dlYmtpdCAuZGlqaXRUb29sYmFyIC5kaWppdFNlbGVjdCB7XG5cdHBhZGRpbmctbGVmdDogMC4zZW07XG59XG4uZGlqaXRTZWxlY3QgLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItc3R5bGU6IG5vbmUgc29saWQgbm9uZSBub25lO1xuXHRib3JkZXItd2lkdGg6IDFweDtcbn1cbi5kaWppdFNlbGVjdEZpeGVkV2lkdGggLmRpaml0QnV0dG9uQ29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUljb24ge1xuXHQvKiBhdm9pZCBibGFuayBhcmVhIGluIGxlZnQgc2lkZSBvZiBtZW51IChzaW5jZSB3ZSBoYXZlIG5vIGljb25zKSAqL1xuXHRkaXNwbGF5Om5vbmU7XG59XG4uZGpfaWU2IC5kaWppdFNlbGVjdE1lbnUgLmRpaml0TWVudUl0ZW1MYWJlbCxcbi5kal9pZTcgLmRpaml0U2VsZWN0TWVudSAuZGlqaXRNZW51SXRlbUxhYmVsIHtcblx0LyogU2V0IGJhY2sgdG8gc3RhdGljIGR1ZSB0byBidWcgaW4gaWU2L2llNyAtIFNlZSBCdWcgIzk2NTEgKi9cblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLyogRml4IHRoZSBiYXNlbGluZSBvZiBvdXIgbGFiZWwgKGZvciBtdWx0aS1zaXplIGZvbnQgZWxlbWVudHMpICovXG4uZGlqaXRTZWxlY3RMYWJlbCAqXG57XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyogU3R5bGluZyBmb3IgdGhlIGN1cnJlbnRseS1zZWxlY3RlZCBvcHRpb24gKHJpY2ggdGV4dCBjYW4gbWVzcyB0aGlzIHVwKSAqL1xuLmRpaml0U2VsZWN0U2VsZWN0ZWRPcHRpb24gKiB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBGaXggdGhlIHN0eWxpbmcgb2YgdGhlIGRyb3Bkb3duIG1lbnUgdG8gYmUgbW9yZSBjb21ib2JveC1saWtlICovXG4uZGlqaXRTZWxlY3RNZW51IHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi8qIFVzZWQgaW4gY2FzZXMsIHN1Y2ggYXMgRnVsbFNjcmVlbiBwbHVnaW4sIHdoZW4gd2UgbmVlZCB0byBmb3JjZSBzdHVmZiB0byBzdGF0aWMgcG9zaXRpb25pbmcuICovXG4uZGlqaXRGb3JjZVN0YXRpYyB7XG5cdHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbn1cblxuLyoqKiogRGlzYWJsZWQgY3Vyc29yICoqKioqL1xuLmRpaml0UmVhZE9ubHkgKixcbi5kaWppdERpc2FibGVkICosXG4uZGlqaXRSZWFkT25seSxcbi5kaWppdERpc2FibGVkIHtcblx0LyogYSByZWdpb24gdGhlIHVzZXIgd291bGQgYmUgYWJsZSB0byBjbGljayBvbiwgYnV0IGl0J3MgZGlzYWJsZWQgKi9cblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBEcmFnIGFuZCBEcm9wICovXG4uZG9qb0RuZEl0ZW0ge1xuICAgIHBhZGRpbmc6IDJweDsgIC8qIHdpbGwgYmUgcmVwbGFjZWQgYnkgYm9yZGVyIGR1cmluZyBkcmFnIG92ZXIgKGRvam9EbmRJdGVtQmVmb3JlLCBkb2pvRG5kSXRlbUFmdGVyKSAqL1xuXG5cdC8qIFByZXZlbnQgbWFnbmlmeWluZy1nbGFzcyB0ZXh0IHNlbGVjdGlvbiBpY29uIHRvIGFwcGVhciBvbiBtb2JpbGUgd2Via2l0IGFzIGl0IGNhdXNlcyBhIHRvdWNob3V0IGV2ZW50ICovXG5cdC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogRGlzYWJsZSBzZWxlY3Rpb24vQ29weSBvZiBVSVdlYlZpZXcgKi9cbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW0ge1xuICAgIC8qIG1ha2UgY29udGVudHMgb2YgaG9yaXpvbnRhbCBjb250YWluZXIgYmUgc2lkZSBieSBzaWRlLCByYXRoZXIgdGhhbiB2ZXJ0aWNhbCAqL1xuICAgICNkaXNwbGF5OiBpbmxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZG9qb0RuZEl0ZW1CZWZvcmUsXG4uZG9qb0RuZEl0ZW1BZnRlciB7XG5cdGJvcmRlcjogMHB4IHNvbGlkICMzNjk7XG59XG4uZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMnB4IDAgMCAwO1xuICAgIHBhZGRpbmc6IDAgMnB4IDJweCAycHg7XG59XG4uZG9qb0RuZEl0ZW1BZnRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDAgMnB4IDA7XG4gICAgcGFkZGluZzogMnB4IDJweCAwIDJweDtcbn1cbi5kb2pvRG5kSG9yaXpvbnRhbCAuZG9qb0RuZEl0ZW1CZWZvcmUge1xuICAgIGJvcmRlci13aWR0aDogMCAwIDAgMnB4O1xuICAgIHBhZGRpbmc6IDJweCAycHggMnB4IDA7XG59XG4uZG9qb0RuZEhvcml6b250YWwgLmRvam9EbmRJdGVtQWZ0ZXIge1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICAgIHBhZGRpbmc6IDJweCAwIDJweCAycHg7XG59XG5cbi5kb2pvRG5kSXRlbU92ZXIge1xuXHRjdXJzb3I6cG9pbnRlcjtcbn1cbi5kal9nZWNrbyAuZGlqaXRBcnJvd0J1dHRvbklubmVyIElOUFVULFxuLmRqX2dlY2tvIElOUFVULmRpaml0QXJyb3dCdXR0b25Jbm5lciB7XG5cdC1tb3otdXNlci1mb2N1czppZ25vcmU7XG59XG4uZGlqaXRGb2N1c2VkIC5kaWppdE1lbnVJdGVtU2hvcnRjdXRLZXkge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiIsIi8qIERpaml0IGN1c3RvbSBzdHlsaW5nICovXG4uZGlqaXRCb3JkZXJDb250YWluZXIge1xuICAgIGhlaWdodDogMzUwcHg7XG59XG4uZGlqaXRUb29sdGlwQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuLmRpaml0Q29udGVudFBhbmUge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7IC8qIFdpZGdldHMgbGlrZSB0aGUgZGF0YSBncmlkIHBhc3MgdGhlaXIgc2Nyb2xsXG4gICAgb2Zmc2V0IHRvIHRoZSBwYXJlbnQgaWYgdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIGRpc3BsYXkgYSBzY3JvbGwgYmFyXG4gICAgaW4gdGhlIHdpZGdldCBpdHNlbGYsIHNvIGRvIG5vdCBoaWRlIHRoZSBvdmVyZmxvdy4gKi9cbn1cblxuLyogR2xvYmFsIEJvb3RzdHJhcCBjaGFuZ2VzICovXG5cbi8qIENsaWVudCBkZWZhdWx0cyBhbmQgaGVscGVycyAqL1xuLm14LWRhdGF2aWV3LWNvbnRlbnQsIC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcjpub3QoLm14LXNjcm9sbGNvbnRhaW5lci1uZXN0ZWQpLCAubXgtdGFiY29udGFpbmVyLWNvbnRlbnQsIC5teC1ncmlkLWNvbnRlbnQge1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbmh0bWwsIGJvZHksICNjb250ZW50IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4jY29udGVudCA+IC5teC1wYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4ubXgtbGVmdC1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXJpZ2h0LWFsaWduZWQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLm14LWNlbnRlci1hbGlnbmVkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtdGFibGUgdGgsXG4ubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLm14LXRhYmxlIHRoLm5vcGFkZGluZyxcbi5teC10YWJsZSB0ZC5ub3BhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuXG4ubXgtb2Zmc2NyZWVuIHtcbiAgICAvKiBXaGVuIHBvc2l0aW9uIHJlbGF0aXZlIGlzIG5vdCBzZXQgSUUgZG9lc24ndCBwcm9wZXJseSByZW5kZXIgd2hlbiB0aGlzIGNsYXNzIGlzIHJlbW92ZWRcbiAgICAgKiB3aXRoIHRoZSBlZmZlY3QgdGhhdCBlbGVtZW50cyBhcmUgbm90IGRpc3BsYXllZCBvciBhcmUgbm90IGNsaWNrYWJsZS5cbiAgICAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14LWllLWV2ZW50LXNoaWVsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcbn1cblxuLm14LXN3aXBlLW5hdmlnYXRpb24tcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDU0cHg7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDI3cHgpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gMjdweCk7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KTtcbn1cblxuIiwiLyogQmFjYXVzZSB3ZSB1c2UgY2hlY2tib3hlcyB3aXRob3V0IGxhYmVscywgYWxpZ24gdGhlbSB3aXRoIG90aGVyIHdpZGdldHMuICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbjogOXB4IDA7XG59XG5cbi5teC1jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb3JtLXZlcnRpY2FsIC5mb3JtLWdyb3VwLm14LWNoZWNrYm94LmxhYmVsLWFmdGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwLm5vLWNvbHVtbnMge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4ubXgtcmFkaW9idXR0b25zLmlubGluZSAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teC1yYWRpb2J1dHRvbnMgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgLyogUmVzZXQgYm9vdHN0cmFwIHJ1bGVzICovXG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLm14LXJhZGlvYnV0dG9ucyAucmFkaW8gbGFiZWwge1xuICAgIC8qIFJlc2V0IGJvb3RzdHJhcCBydWxlcyAqL1xuICAgIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLmFsZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG59XG5cbi5teC1jb21wb3VuZC1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXgtY29tcG91bmQtY29udHJvbCBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbltkaXI9XCJydGxcIl0gLm14LWNvbXBvdW5kLWNvbnRyb2wgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbiIsIi5teC10b29sdGlwIHtcbiAgICBtYXJnaW46IDEwcHg7XG59XG4ubXgtdG9vbHRpcC1jb250ZW50IHtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5teC10b29sdGlwLXByZXBhcmUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEdBQVlBTVFkQUtYWjhuZkY2NFRMN1F1WDNGZTQ1emFxNGhPYjNmTDYvZnI5L3JyaTlkWHQrWnJVOEN5bTRVbXk1Y0hsOXVQeisySzg2T2oxL056dytyRGQ5TTNxK0pEUTcyckE2aU9pMyszNC9FQ3U0OGpvOXgyZjNnV1YyLy8vL3dBQUFBQUFBQ0gvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoL3d0WVRWQWdSR0YwWVZoTlVEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF3SURjNUxqRTJNRFExTVN3Z01qQXhOeTh3TlM4d05pMHdNVG93T0RveU1TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tFMWhZMmx1ZEc5emFDa2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVUpGTmtVNE5FWkNORVZETVRGRk9EazNNREJCTlVVMVJVTTRRamczUVRVaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVSkZOa1U0TlRCQ05FVkRNVEZGT0RrM01EQkJOVVUxUlVNNFFqZzNRVFVpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwRlFrVTJSVGcwUkVJMFJVTXhNVVU0T1Rjd01FRTFSVFZGUXpoQ09EZEJOU0lnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBGUWtVMlJUZzBSVUkwUlVNeE1VVTRPVGN3TUVFMVJUVkZRemhDT0RkQk5TSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QZ0gvL3YzOCsvcjUrUGYyOWZUejh2SHc3Kzd0N092cTZlam41dVhrNCtMaDROL2UzZHpiMnRuWTE5YlYxTlBTMGREUHpzM015OHJKeU1mR3hjVER3c0hBdjc2OXZMdTZ1YmkzdHJXMHM3S3hzSyt1cmF5cnFxbW9wNmFscEtPaW9hQ2ZucDJjbTVxWm1KZVdsWlNUa3BHUWo0Nk5qSXVLaVlpSGhvV0VnNEtCZ0g5K2ZYeDdlbmw0ZDNaMWRITnljWEJ2Ym0xc2EycHBhR2RtWldSalltRmdYMTVkWEZ0YVdWaFhWbFZVVTFKUlVFOU9UVXhMU2tsSVIwWkZSRU5DUVVBL1BqMDhPem81T0RjMk5UUXpNakV3THk0dExDc3FLU2duSmlVa0l5SWhJQjhlSFJ3Ykdoa1lGeFlWRkJNU0VSQVBEZzBNQ3dvSkNBY0dCUVFEQWdFQUFDSDVCQVVFQUIwQUxBQUFBQUFZQUJnQUFBVWNZQ2VPWkdtZWFLcXViT3UrY0N6UGRHM2ZlSzd2Zk8vL3dPQXJCQUFoK1FRRkJBQWRBQ3dBQUFBQUFRQUJBQUFGQTJBWEFnQWgrUVFGQkFBZEFDd1VBQXdBQVFBQ0FBQUZBeURUaEFBaCtRUUZCQUFkQUN3VEFBc0FBZ0FHQUFBRkMyQVhkRnhuZE1UUU1WMElBQ0g1QkFVRUFCMEFMQkVBQ3dBRUFBZ0FBQVVSWUNjMllpbHlvcldkVm1jTnA4aTBYUWdBSWZrRUJRUUFIUUFzRHdBT0FBWUFCZ0FBQlE5Z0ozYUJNWjRqaDQ0V0I0bkZjSVlBSWZrRUNRUUFIUUFzRFFBUEFBZ0FCZ0FBQlJGZ0o0NGRSSGJCcVlvcEdRd2NPUmhxQ0FBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRkxXQW5qbVJwbm1pcXJtenJ2bkFzejNSdDMzaXVrOEpnRHdRYlIyaWhCVGlOV1c4WTR6aDlHaGxnUnkyRkFBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZNMkFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6YzN0U0M3emFZT2VvY1NBMFlNWlZJUWtHd1JhUVE2VjJpaklBYnFzS0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZObUFuam1ScG5taXFybXpydm5Bc3ozUnQzMmh6Yy90VVY3eWFJV01MMGppRVZRVUZMS3dDSEVPcFlqQ3lNcHlzbGloYjRMNnJFQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGT21BbmptUnBubWlxcm16cnZuQXN6M1J0MzJoemN6dFFWN3phcG1BTG1vQXNqZzdGTUI0NWpGV0RzeWxWTnM1VmdjUHRFbU8rQ202c0NnRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVDlnSjQ1a2FaNW9xcTVzNjc1d0xNOTBiZDhvY1hPQ3plMm14c2ExWVp4K0xRN2cxRUNxT0prVWc3TkljWXlxNXJDMGdicW1uSENZc1lRdGU3aDBLZ1FBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVSZ0o0NWthWjVvcXE1czY3NXdMTTkwYmQ4b1lRWXdKNVNjbmluNElwSVlGOWNsV1ZvWVY1ekZLZk5FY1RLcFN4WElURkc3SXkyMnhlQ1l6eGNwVFBxajRONm9FQUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGU21BbmptUnBubWlxcm16cnZuQXN6M1ROYm5iQXdZUzV2NXdBcWZKekZVZEhWckt6WWJnWU9OK2t4YW1jQ2dQV29KRGFaRk9EYUtyQWNaWVlIRzVydzJtN04xWllSUmkzMlZjaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlBZQ2VPWkdtZWFLcXViT3UrY0N6UDVVYlFJb2QzZ3I3N3JodkpBbXh4TEtVaVM5bmhURjVNQThQRk1KaDZMbzdneEJpd0JsUFV4cHNhYkZZTVRwaVVYcXNFQm81OGJ0akN0aGI3YnI4S0FRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZVMkFuam1ScG5taXFybXpydmpETFhERXBjRFZwWlBtSTk1MGJVUFJ6UVVxUVlvdHpKQ2xaejhsenhabVVEQVZYd1hDYW9yeWRDM2Rsb0tFTTQzTWFkZUZrU3dXT2VSVXdjTzU0UXlBbU9BcUdnQzBoQUNINUJBVUVBQjBBTEFBQUFBQVlBQmdBQUFWWFlDZU9aR21lYUtxdWJMdHVsbnNhaG14dXRVMEduRjRPRFIrcEp4VHhpaUpDemhYNzJRYUVIZEUxSFZWWkhNQXY0OG9NVE1jV0ozRENzUXliMUdBNSs2bzJIRzRwdzBtekFnTU9aNURmazIwQlVYOUloQzBoQUNINUJBa0VBQjBBTEFJQUF3QVVBQk1BQUFVL1lDZUsxdENNYUpweWhPcU93L2JPOUd6VmM0dnY5YzJuc2w5QVpQaDFpajZqY3JRUW5YYlBEc1E0SFFWcFYxUld0VTFGUjE5WDlWZ1VqV20rWkNvRUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVmJZQ2VPWkdtZWFLcU9GckdpeE1CeHpHc2FuR3VidzdhZkJ0K3ZST0FNVGJsanlhaGtNWnVkaG5BWEtFbUhtOFp5K0JRdHVpL09ZcWw3RlUvZ1ZQSTJUVzBNcVo1cU0xamh5cU1pM0R6amJEWjllRFlRRFZwalVJZy9JUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWUdBbmptUnBubWlxaWxXWFpjUnFFaHczWE5jZ2t3WUg3U2ZPQlhneURJa2xHdExrVzVZNFRoSkJGeFZsamtCQjZZcThaRXBVWUpnRkpYSmFwT1lPVXBhMlY1eVl5U2k3R0ZKQzFlVmRWSlBZZHpJME5qZ0ROWEpFQkYrSVZZMUFJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGWldBbmptUnBubWlxaWtKWEZNUnFOaHhuTUlWUngvTEFXYWFBck1OaERGRUQ0M0hHV1o1K3pwS2dHUzBacXFTQ2Npa2NhWjA0RXVHNk5QQkcxR01hRFJ4YTFpS2F1bkZLeWhpRFZGSEZnSnQ4YlNSdmVUSTBOZ3dNT2h4MFRnUXZIUzFZa2xFaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVm1ZQ2VPWkdtZWFLcUtRY01VeldwbUhMZDF4VlpuY2pjTUFWUGdwMXB3Q2lyR0RUVkE5azZad1JQRm1aNENWV3Vwc2RTT1h0cmdWMXRna0xqV1RZeVVmYlpISExFTU81UDJCanhUVTFhd240NHFCVzhtQzBSQ2hpczBOZ1U1TzFZdFptdGVrNU1oQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWbllDZU9aR21lYUtxS1FYWmQyV29XSEhkMURWTVhjc1VOSjRHQnMrTHdVclFLeWlpam5RcEFXY2R3NGdTa3FBQVJlM0p4VDdkdngwS0NmYjBqTk5aTTJtTGRJeXRXTzR2S0JzY1NjK1ZjNXA5d1ZYWWtBUU9CS0RRMkdTNDdYeTB2SFZkaWs1UWlJUUFoK1FRRkJBQWRBQ3dBQUFBQUdBQVlBQUFGYm1BbmptUnBubWlxaWxheGJjVnFNaHpIZEExdHl3Sm5uQUlEUjZEaVpGUVpUc29vUzU0WVAxbkhjQ3NOcFNJbHlhTEZjZ0trUWhWcjJwQkZpOUttY1c2WVIrSXpJMGJxU3UxWm9qZFJnbUtwSjB3clRpaUNLSVFvUFZFbFFYZ29PZ3dOT1RWalVpMW1kR2VhbXlVaEFDSDVCQVVFQUIwQUxBSUFBZ0FVQUJRQUFBVmJZQ2VPa01HZG5BR05MSWx5dy9DdWJjZWNXWjJkVEhzYk5aYXBKNEtrZ2kwVDdZU3NNWTI1Sm10WDRraWRKdXVWaFJwc1dUTFlkeFRXamsrbXNTZ0ZIVk03ekcvY0NMd3FSei9wMElmVDhZSkdYV1VjTkVoVktDbzFJUUFoK1FRRkJBQWRBQ3dCQUFFQUZnQVdBQUFGWjJBbmptUFZCV1NxbmdaSGNnYTZqc2JyMG5OMTEyVEZjNmFVNnpZYnBtckVXY2ZGTzRrRXloSFUyYWsxbzlYc0VydHlCYm1xWUpKN1E0MnhMaG00MlBsaVRUc3QxeXBTYzZkcUpGa3VHazVWQWtZcE9pSlhiVDlLVnh4Smhpb0JMUytOVVNaMktpRUFJZmtFQ1FRQUhRQXNBUUFCQUJZQUZnQUFCV3BnSjQ2aWxWMVgxazFrUzE2Y3kxMHUyY1MxeURVMU0zSUVFZ0hYOGRsR3dWcXl3L3ZsY2tSYVovbE1TbVBFcDY0VHM0aW8ycVJKcXoyUm42aHpMcVd1cWI1dEtyWTk3MGpCU3BHVTI5Nk9tbE01UzRBaVJseFVReU9HTmxreWhDNHdNbnRrSmlncUxDNGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYrWUNlT1pHbWVwVlZjVjlaTjZMbHhkRTF2OGRqWWZOM0VEQnVFQkxFeFRqdmE4RlNrL1VxMW5DaEttbkdXdVNadVJKVjJ1aGFsbDh1eGlESzBNZG5WdWFUVlg4NUY1T2JBNC9NTzJnNm5zZU5ZVWsxbVUyOWVYUjFXZ1NoYUpBdUlLSkFkU1ZlTVBpZEJrRTAwUnlpVVBaZFNWajFiYWhZWkxCbUVkM0FoQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFXQllDZU9aR21lcFZWY1Y5Rk42TGx4ZEUxdjhkallmTjNFakpyQlpLZ3hUanRhVE9BejFYS2lKMm5HRVVDakhOeUlOcngyaXB5UlJlbnRNRGtXVVlGY3ByazZGN2FYZGhIRncrVU9YUzIvdXJkVlpXY2tYR1ZnVTMweE55UUxVamsxQ3lWSmdTZG5IRDhtUVlVa0FtQWNSeWlUUFUxUVZEMWFaU29zQldsNXJoMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVdDWUNlT1pHbWVwVlZjVjlGTjZMbHhkRTF2OGRqWWZOM0VqTnJGZEtreFRqdk9JRGVnL1VxMFphN1Q1SlJtMXFub1JxSU50WjFpdG1PaGdVYzBpNmhnUG5kb3JuRDc3QldKM1cvT2x6MEd3OUY5VXdCcEloTjFZSGNqV0hRY09GMUtXbFVtU1FNQU1WVlBKVUdISXdCaUhFY29TVDAybVRGWVBZNW5LaXd1TUhodUlRQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZlbUFuam1ScG5xV1ZNVXlHdmhjbnovTDFqZzJ0ejgxYnpLNVNabFk0NVRpR20wSFdLOG1TdDg2U1U0cFJvNklhU1JiRURxOGRpd3k3NVZoRVgvS0lLMktNMVIwWm8vMVd5OUYxTWpzTDF2ZjNYaklUSTFaMkhEWmxVRXA1SWtlS0oxTk5KVCtBSTE4Y1JTaEhPelNTTUp5SGNHRXJMUjJEb25BaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjlZQ2VPWkdtZVpkQXdUSU8rRnlmUDh2V09CRDFjMTBBVHI4SU1Zb0xNQ3FjY3h3YVRBVXUxbXlqR0tWR2xvMmlXUThSMmpGVlJRT2JkQmtRTnpxQXM4bzBZUzNZbnhoREJtV1Y2ZHMzMnVUcGpZV1ZrVzExWVlDUlhYbHBiZUUyQ09Jd25WRThsUWpLR0kyQWNTQzg2UEQ0elhsUTBrbGhuTEg5eWNpRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCWDFnSjQ1a2FaNWwwQlJGZzc0TUo4OHk4NDRFZlhYWlJST3ZqR3h3RWd4a21WT09rd3pLZ0NYa1RTVGtsR0xFcWVob0c4bTBwSzhvSUFaM1pBRlJnN016ZDN5akF0UE40eFJFY25yOUxtTFQ0V05sWUdoZUhBSnVnbGhtWEZGelUxVW1TMDBvVlZBbFZWa2xSbEl2T2hrOU5HQXhORE5kWmlvZExYcDZJUUFoK1FRSkJBQWRBQ3dBQUFBQUdBQVlBQUFGZ0dBbmptUnBucVhRRkZrbm9HakJ6ZlJjd0NORUR4M1JaUU1hQk5hWWJWQ2JXZU9rNCtCNnM5UE05K3hFU2JKanRaTzhqYTViQUZqQTRXMUZ3WmVJMHpyL25LSU1oK3BteCtGdWdoM2FQc3ZwWlc0ZFFTUmdXNFpaWjEwbFUxVjZlRG1OTUk5REprVWNXaVpKa0ZJekF4aytRRUpWTWpVMFhtY3ZHYUNDclIwaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVjZZQ2VPWkdtZXBkQmxHWUcrR1NmUGN2YU8xcnk1UWJmTmxoZEJWa0FWWks2VDdOWUpMRTJ5SHJQekhNV0swODdSTnFwbXF3TE9KanY2cVVTY0pIbG81WkJKSEc1TVNuWnkyZThPSGoxK203dHViMTVYWkZzbFVWK0JKRG1LS0U0Y1FTWkRIRmdtUjJrM09qd0VQMTR3TkRSY1pDb3NIV2Q1YnlFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJYcGdKNDVrYVo1bDFXVk5wNkpueHMzMG5NRmpRQmR1RnhTMEFJd3dHeFpSbkFGT05PQUlTOGRsSnlxU0VhUWk0bTFFbFVZckhCNVdCQ1J4eG1hSXFNRjVqY0d0RGh2TmpVK2ZZOTBJTEI2WHVXZG9WRlpqV2xDQlhvaG1Ta3ROZUNSRUhGY25rWk1uT2pNOEtqOUJVakkxTkZ0b0VBMHRiblJqSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmdHQW5qbVJwbmlaRWRCYnFObHdzeDQwN0NyR3hkbE5IR0RHQkM4SVp1QUlEam90anNJbUF3bExST1VxV1lBR3FLTUNwalpqYUVaREUyWVU3U3BFbGZhNXdXajcydVN3aXlNTjBFYWR5N3JoSEMzZGFIQXRmVFdkakkxaGhYRjVmUmxwV0ptQk9pU2xGV1NkSUhCQXVPRXc3UFQ4eFdqQXpNbzVoRml0d2ZYMGhBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVYxWUNlT1pHbWVwa1YwQWVvU1hDekhxeXRXOFVWTzNSWGJIWTdCWnVCWVRqZ2QwSGNTQWtmRkV1dzVXbkJxSW82UzJ1T1FPQzF1ZGhUd2lqc1RzR2g2RG1MTlozaTVIUXpYei9PUjlzd2NzYmxYSlU1VVVTVkpUejRWS0VJTEtBdEZSeWc0ZXlNOFBuQTJNRE15V0Z3QkJDc0FkR0loQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFWellDZU9aR21lWmdCMUFlb1NBeWZQQStHU2NWWldHVGZjQWM3bGR1RzBUaHpkclZQZ25BYkRwZWp5SXhHYzBoSEhOaG9vczUxTVZZUUZrMGRCcy9ZSUtaczVxN082QXhlbDUyNU9SVjF4ZTlWaVZtNVNXeVZRWUZSSUJWSk5LRUZSS0VWSEtEazdQV00zTURNMFhHWXFjWE5xSVFBaCtRUUpCQUFkQUN3QUFBQUFHQUFZQUFBRmQyQW5qbVJwbm1iUVdkMkVvdERBY1lZeEQ5QkxEZ05oRWp4ZGdKUFJaVGlxRThlbkUzRk9nMkpUbEJtVVl0TmRidFRMam9Da3AzY2s3Z2pLWTQ1Z1pCaXpSNWEydTJOZ09lZWQ4Z1R0NWJoRVhXTmdPMjQ0SlZGZVZTWUxTMU1FZkdGU0tFZE5QRXdrUUZaVE1UTTFOMXRqYXl4L2VGa2hBQ0g1QkFrRUFCMEFMQUFBQUFBWUFCZ0FBQVZvWUNlT1pHbWVwdEFGYU50WkJtY3dUR3hZN21nWXA3QzdBZzdFQmVHMGpMa1ZzbVFZSmpzUUhnbjIxT0YwVlpKVXRNd3VmVm1kU3NRSWswZUJzcG5CRW0yejcyNjFheGhYd1NNcTNOU3NSazl5UnloQlRpaEZkaWMvS1lvNU1ESTBObVlkS20yU1dTRUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCV3hnSjQ1a2FaNW0xUVZvdXhvYzB6UU1aN0N1YURBb1k3Z1ZUazRnUkJWekhjN0VaQkFnUllJZktjQjdpcW9qcVZWSE9tNlBGZXlXb1JJMXRxT3pDSWZ1cUsvdERubmt0WG9OaTdaMjFXYXdkVTVQVVNkMUxZVWlRWUVvUkRrN1BYc3RBVEF5TkRaL1ZwZHhUeUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQldOZ0o0NWthWjVtMVFsbzJ3V2IwWFJRWTJ5Qk8yN3oyV3c2ZzY0alJCa2NRK0xFQkV5S21xTkF6emw5T2tsUTRuVlVGRldwcXRWMkJCa0p5bU8wZDl5cGRxL3ZyRE1yM1g2MThOUGJaVmlhRm50NkN5NDhLRDlKTURJME5qaGpLaXhzV3lFQUlma0VDUVFBSFFBc0FBQUFBQmdBR0FBQUJWaGdKNDVrYVo3bTBnbG91MjdGMmxuRjVwSTJhdVV0M3dNb24wc29JZzVMQXN1dHBNUXRUYjdZa3lRVk5hZldFUXRMMnNxNDN5ejQycWxpemNhYmtMeGtkOUxCRTd5VUJzeUxhcmYxUG9JcFdUVmdJaXdxZ2xnaEFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVlpZQ2VPWkdtZXA5QUJhTnN4aE5xcGpPeSt0c25jeGQzMUtLQlBTTnI1UnNaUjdyaE1Ia1ZPd3BQVUlDMmZyT21wSXVKcVI5N1pWenlTZnF2SXNaTThiV3JYSXFKTFRxS2I3TVdyU0FCSHdUb0xZbjArWGdwalV5RUFJZmtFQ1FRQUhRQXNBQUFBQUJnQUdBQUFCVkZnSjQ1a2FaNW5oYTVqWm9sSloyVXNTYVBBdlJKMXg2Ty9YdERXSTVZQVJaS3FsVFNLWHMxb2JTSmFTcSttbUlpSzVjcXVVSkd1T2NhYXlqVzBMemtzdFUvdmtwclpxOUNRSFdURzJ1U2JleUVBSWZrRUNRUUFIUUFzQUFBQUFCZ0FHQUFBQlVsZ0o0NWthWjVuaGE0anBJcE9CN0Vrd2Rwc1FIYzYydSsvMms0NExNcU1MZVF1cHV4TVJJdW05QlNGVGErZGwyaW01R0pMdUdLWUZNeXR5dEt4U2IzeWlpcnU0clA2WllVQUFDSDVCQWtFQUIwQUxBQUFBQUFZQUJnQUFBVTVZQ2VPWkdtZUo0Q3VZMUNxS2l1Nk1ydlVkNjJiOU43dnRaOFBTQ3dtUkxHaU1yVkVKWnZMMzdNcGxGV2hwWnpOaW0zeGxxcGpseFVDQUNINUJBa0VBQjBBTEFBQUFBQVlBQmdBQUFVM1lDZU9aR21lNklTdTRtSzY3RmpGTkoyc2Q2M0g4MTdEUHFCdlNDeUtWRVdrY1lrUzZweE1VUys2azFCWDAxT1dCWVhxbE5kVENBQWgrUVFKQkFBZEFDd0FBQUFBR0FBWUFBQUZMR0Fuam1ScG5taXFvdFBxdm5Bc3oySkxxL2F0Ny96cDlNRGdLQmNqQ284OHhVdXBNNmFjVHRnUGFRb0JBQ0g1QkFVRUFCMEFMQUFBQUFBWUFCZ0FBQVVqWUNlT1pHbWVhS3F1Yk91K2NMeFNjbTNmZUk3VGV0L3p2cUJ3eUFLV2pDOGtNUVFBT3c9PSkgbm8tcmVwZWF0IHNjcm9sbCBjZW50ZXIgY2VudGVyO1xufVxuLm14LXRvb2x0aXAtY29udGVudCAudGFibGUgdGgsXG4ubXgtdG9vbHRpcC1jb250ZW50IC50YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbn1cbiIsIi5teC10YWJjb250YWluZXItcGFuZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXRhYmNvbnRhaW5lci1jb250ZW50LmxvYWRpbmcge1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaE5nQTJBUE1BQVAvLy93QUFBSGg0ZUJ3Y0hBNE9EdGpZMkZSVVZOemMzTVRFeEVoSVNJcUtpZ0FBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQWtLQUFBQUlmNGFRM0psWVhSbFpDQjNhWFJvSUdGcVlYaHNiMkZrTG1sdVptOEFJZjhMVGtWVVUwTkJVRVV5TGpBREFRQUFBQ3dBQUFBQU5nQTJBQUFFeXhESVNhdTlPT3ZOdS85Z0tJNWt5U0VKUVNTSTZVcUtLaFBLV3lMejNOcGltcXNKbnVnM0U0YUlNaVBJOXdzcVBUamlUbGt3cUF3RlRDeFhleFlHczBIMmdnSk9MWUxCUURDeTVnd213WXg5SkpyQXNzSFFYc0tyOUNGdU0zQWxjakowSUFkK0JBTUhMbWxySkFkdUJvNVBsNWlabXB1Y25aNmZjV3FJbUpDamFIT1poaXFtRkl1QWw2NFpzWml6RjZvRXJFSzN1Uk9sbTc2Z3djTER4TVhHeDhYQWo2SWt1NCtvSXJVazBoL1UwV0Vqem5IUUlzcWhrY2pCM3NuY3hkYkM1K0xseWN6aDdrOFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRNRU1oSnE3MDQ2ODI3LzJBb2ptUnBubVZoRUlSUm9HY3hzT3p3d3VSS3N3Wk83anZmQ0VnVGluUzduaEYwbU5FR2h3c2l3VW9nbHBTRHpoQzFLSWlLa1dBd0VKZ1FSTllWSk5pWlNkUjBJdVNzbGRKRlVKMHd1T01KSVcwMGJ5TnhSSE9CWklRamFHbHJXQnhmUUdHUUhsTlZqNVdhbTV5ZG5wOUxZMldib29zV2dpeW1RcWdFcWhON2ZaQ3dHYk95TzdFWHJLNDR1aHFscElxZ3dzUEV4Y2JIeU1lL0tNc2l2U2JQZExjbnRkSlAxTlBPYmlmUmlhUE13Y25DemNyYnlOWEc2TVhkeHVUaTd6NFJBQ0g1QkFrS0FBQUFMQUFBQUFBMkFEWUFBQVRPRU1oSnE3MDQ2ODI3LzJBb2ptUnBubWlxQXNJd0NLc3BFRFFCeCtOUUV3T2U3ejFmYUZhN0NVR3QxMUZZTU5BTUJWTFNTQ3JvYW9Qb2NFY1ZPWGNFZytoS0M1TEF0VEhRaEthSmlMUnU2THNUdjEzeTBJSE1PeXc5QjE4R2ZuK0Zob2VJaVlvWkNBazBDUWlMRmdwb0NobFRSd2h0QkpFV2NEWkNqbTBKRjN4bU1adHVGcVpDcVFRWG4za29vbWlrc0hpWm01MlNBSlJnbHJ3VGpZKzd3Y2JIeU1uS0U1Z296VzljSjdFL1dDZXNhdFVtMTF0RjB0RWp6eks0eTRuaHh0UEkyOGJxd2VqSTV1VHhKaEVBSWZrRUNRb0FBQUFzQUFBQUFEWUFOZ0FBQk1zUXlFbXJ2VGpyemJ2L1lDaU9aR21lYUtvQ3dqQUlxeWtRTkFISDQxQVRBNTd2UFY5b1Zyc0pRYTNYY1lsS0dtV3VKM0luRlJGcDFZNnVGaXh0YVYzUWwzY2FoejlYMnltZDdUaFRiNlo4VHEvYjcvaTh2R0NnR1FvYWNVSUZab0FYYkVkOU93UUdHR1pIaXpXT1FKQ1JCQmlJUW9vN2paaFJTd2RtQjNvVUI0b0dvNlNxcTZ5dE1RZ0pOQWtJckFxUkNpT0NJd2lXQkxSVFJTV3hsZ2toanlTOU5NYVV5TWxEVk1LOXhVT2ZKYnlXdjNxMmk3aEx1aFd3c3RsQ21hdkg1c3lyNWVyVnJ1NDRFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWlaY2dVR05BWUZKSk1pQldhZ1E0TWxuVHNFQmlLTElxczFya0Ftc1RSV3FDU3FPNjFXa1JrSUNUUUpDQmNIWmdkSENyRUt4cW9HeVVJSXRnVEZlc0syQ1h2VXQzcmNCSHZZc2RwNjA3Yldlc3VyelpYQncrZ2lFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2ditMd2VFMS8yTDJ4K1ZCbG1TNFVZaDBLSkZvRkhqWHhSY245N2xKV1dsNWdTQ0FrMENRaVdDanMwQ3BRSW9qV2ZKWk1kbktjRUNhcURJSzQxWGtBaHREUzJYQ0d0cDdBa2p4Nm1ycW5Ca1NLaG9xUVhCUVkwQmdWTG01M0dGUVZtMHBUUG9nYVZ0Tit1bGR3NzNwUUhaZ2VXQjl3RzZwa29FUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3bEJyZGR4aVVvYVphNG5jaWNWRVduVmpxNFdMRzFwWGRDWGR4cUhQMWZiS1ozdE9GTnZwbnhPcjl2dktVU0Nsa0RnTFFvN05BcC9Fd2lDTlg1Q2NSWjdpQVFKaTFRWGp6VkNacFNWQkpkQUY0NklrVDVzRjRlUGlxSlJHWUdDaElXR2puMnVzck8wdFhZRkJqUUdCYlFGWnJ4UVNpSzVnZ1l5a3lHVkpwakpqOHVkSWNRN3hpV2pJUWRtQjJ1cEl3ZkVCdHEySG95ejFyUE01OURseUxUazR1OHBFUUFoK1FRSkNnQUFBQ3dBQUFBQU5nQTJBQUFFekJESVNhdTlPT3ZOdS85Z0tJNWthWjVvcWdMQ01BaXJLUkEwQWNmalVCTURudTg5WDJoV3V3a1JDVm9Db1dtOWhCTEZqcWFBZGhEVEdyUGtOSDZTV1VLQ3UvTjJ3cldTcmhiOG9HbHFZQWljSFpPSU5ETUhHOTdlWFhvZFVsTlZWbGRnUzRhS2k0eU5qbzhGQmpRR0JZOFhCV3MwQTVWUVhSbVNVd2FkWlJob1VKazhwV0duY2hlZ082SkNlRFlZQjZnREIxYWVHUWVnQnJtV3djTER4TVhHeDF5QUtic2lzNEVnemo5c0o3ZlNtdFN0UTZReTI4M0tLTXpJamVIRTBjYlY1OW5sM2NYazR1OG9FUUE3KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweDtcbn1cbi5teC10YWJjb250YWluZXItdGFicyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LXRhYmNvbnRhaW5lci10YWJzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubXgtdGFiY29udGFpbmVyLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICNmMmRlZGU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAjYjk0YTQ4O1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAtNXB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB6LWluZGV4OiAxOyAvKiBpbmRpY2F0b3Igc2hvdWxkIG5vdCBoaWRlIGJlaGluZCBvdGhlciB0YWIgKi9cbn1cbiIsIi8qIGJhc2Ugc3RydWN0dXJlICovXG4ubXgtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRvIHByZXZlbnQgYW55IG1hcmdpbiBmcm9tIGVzY2FwaW5nIGdyaWQgYW5kIGZvb2JhcmluZyBvdXIgc2l6ZSBjYWxjdWxhdGlvbnMgKi9cbn1cbi5teC1ncmlkLWNvbnRyb2xiYXIsIC5teC1ncmlkLXNlYXJjaGJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIC5teC1idXR0b24gKyAubXgtYnV0dG9uLFxuLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1jb250cm9scyAubXgtYnV0dG9uICsgLm14LWJ1dHRvbixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtY29udHJvbGJhciAubXgtYnV0dG9uICsgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcbn1cblxuLm14LWdyaWQtcGFnaW5nYmFyLFxuLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ubXgtZ3JpZC10b29sYmFyLCAubXgtZ3JpZC1zZWFyY2gtaW5wdXRzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBmbGV4OiAxO1xufVxuXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXRvb2xiYXIsXG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXNlYXJjaC1pbnB1dHMge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncmlkLXBhZ2luZ2JhcixcbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14LWdyaWQtcGFnaW5nLXN0YXR1cyB7XG4gICAgcGFkZGluZzogMCA4cHggNXB4O1xufVxuXG4vKiBzZWFyY2ggZmllbGRzICovXG4ubXgtZ3JpZC1zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbltkaXI9XCJydGxcIl0gLm14LWdyaWQtc2VhcmNoLWxhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LWdyaWQtc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ubXgtZ3JpZC1zZWFyY2gtbWVzc2FnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbn1cblxuLyogd2lkZ2V0IGNvbWJpbmF0aW9ucyAqL1xuLm14LWRhdGF2aWV3IC5teC1ncmlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5teC1jYWxlbmRhciB7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLm14LWNhbGVuZGFyLCAubXgtY2FsZW5kYXItbW9udGgtZHJvcGRvd24ge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtY3VycmVudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXgtY2FsZW5kYXItbW9udGgtc3BhY2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5teC1jYWxlbmRhciwgLm14LWNhbGVuZGFyLW1vbnRoLWRyb3Bkb3duLW9wdGlvbnMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiIsIi5teC1kYXRhZ3JpZCB0ciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXgtZGF0YWdyaWQgdHIubXgtZGF0YWdyaWQtcm93LWVtcHR5IHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teC1kYXRhZ3JpZCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LWRhdGFncmlkIHRoLCAubXgtZGF0YWdyaWQgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi8qIGhlYWQgKi9cbi5teC1kYXRhZ3JpZCB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBSZXF1aXJlZCBmb3IgdGhlIHBvc2l0aW9uaW5nIG9mIHRoZSBjb2x1bW4gcmVzaXplcnMgKi9cbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG59XG4ubXgtZGF0YWdyaWQtaGVhZC1jYXB0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQtc29ydC1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1zb3J0LWljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMDtcbn1cbi5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtNnB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTZweDtcbn1cblxuLyogYm9keSAqL1xuLm14LWRhdGFncmlkIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuLm14LWRhdGFncmlkIHRib2R5IHRyOm50aC1jaGlsZCgybisxKSB0ZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5teC1kYXRhZ3JpZCB0Ym9keSAuc2VsZWN0ZWQgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4ubXgtZGF0YWdyaWQtZGF0YS13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubXgtZGF0YWdyaWQgdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbi5teC1kYXRhZ3JpZCBpbnB1dCxcbi5teC1kYXRhZ3JpZCBzZWxlY3QsXG4ubXgtZGF0YWdyaWQgdGV4dGFyZWEge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLyogZm9vdCAqL1xuLm14LWRhdGFncmlkIHRmb290IHRoLFxuLm14LWRhdGFncmlkIHRmb290IHRkIHtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xufVxuLm14LWRhdGFncmlkIHRmb290IHRoIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbn1cbi5teC1kYXRhZ3JpZC5teC1jb250ZW50LWxvYWRpbmcgLm14LWNvbnRlbnQtbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhbmltYXRpb246IHBsYWNlaG9sZGVyR3JhZGllbnQgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuICAgIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNGNUY1RjUgMCUsICNGNUY1RjUgNSUsICNGOUY5RjkgNTAlLCAjRjVGNUY1IDk1JSwgI0Y1RjVGNSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMHB4IDEwMHB4O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyR3JhZGllbnQge1xuICAgIDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwcHggMDsgfVxuICAgIDEwMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggMDsgfVxufVxuXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGgsXG4ubXgtZGF0YWdyaWQtdGFibGUtcmVzaXppbmcgdGQge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZSAhaW1wb3J0YW50O1xufVxuIiwiLm14LXRlbXBsYXRlZ3JpZC1jb250ZW50LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5teC10ZW1wbGF0ZWdyaWQtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ubXgtdGVtcGxhdGVncmlkLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubXgtdGVtcGxhdGVncmlkLWVtcHR5IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuLm14LXRlbXBsYXRlZ3JpZC1pdGVtIC5teC10YWJsZSB0aCxcbi5teC10ZW1wbGF0ZWdyaWQtaXRlbSAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG59XG4iLCIubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLWhvcml6b250YWwgPiBkaXYge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItbmVzdGVkIHtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbWlkZGxlID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyLFxuLm14LXNjcm9sbGNvbnRhaW5lci1maXhlZCA+IC5teC1zY3JvbGxjb250YWluZXItbGVmdCA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLWNlbnRlciA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlcixcbi5teC1zY3JvbGxjb250YWluZXItZml4ZWQgPiAubXgtc2Nyb2xsY29udGFpbmVyLXJpZ2h0ID4gLm14LXNjcm9sbGNvbnRhaW5lci13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLWluIHtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDI1MG1zIGVhc2Utb3V0O1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1tb3ZlLW91dCB7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAyNTBtcyBlYXNlLWluO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbn1cblxuLm14LXNjcm9sbGNvbnRhaW5lci10b2dnbGVhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zbGlkZSA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSA+IC5teC1zY3JvbGxjb250YWluZXItd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LXNjcm9sbGNvbnRhaW5lci1zaHJpbmsgPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4ubXgtc2Nyb2xsY29udGFpbmVyLXB1c2gubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiBkaXYsXG4ubXgtc2Nyb2xsY29udGFpbmVyLXNsaWRlLm14LXNjcm9sbGNvbnRhaW5lci1vcGVuID4gZGl2IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5teC1zY3JvbGxjb250YWluZXItcHVzaC5teC1zY3JvbGxjb250YWluZXItb3BlbiA+IC5teC1zY3JvbGxjb250YWluZXItdG9nZ2xlYWJsZSxcbi5teC1zY3JvbGxjb250YWluZXItc2xpZGUubXgtc2Nyb2xsY29udGFpbmVyLW9wZW4gPiAubXgtc2Nyb2xsY29udGFpbmVyLXRvZ2dsZWFibGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuIiwiLm14LW5hdmJhci1pdGVtIGltZyxcbi5teC1uYXZiYXItc3ViaXRlbSBpbWcge1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuIiwiLm14LW5hdmlnYXRpb250cmVlIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RmZTZlYTtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgYS5hY3RpdmUge1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICMzNDk4REI7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm14LW5hdmlnYXRpb250cmVlIC5teC1uYXZpZ2F0aW9udHJlZS1jb2xsYXBzZWQgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtbmF2aWdhdGlvbnRyZWUgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbn1cbltkaXI9XCJydGxcIl0gLm14LW5hdmlnYXRpb250cmVlIHVsIGxpIHVsIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDNweDtcbn1cbi5teC1uYXZpZ2F0aW9udHJlZSB1bCBsaSB1bCBsaSB1bCBsaSBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iLCIubXgtbGluayBpbWcsXG4ubXgtYnV0dG9uIGltZyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuLm14LWxpbmsge1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiIsIi5teC1ncm91cGJveCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6ICNlZWU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG59XG4ubXgtZ3JvdXBib3gtY29sbGFwc2libGUgPiAubXgtZ3JvdXBib3gtaGVhZGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZ3JvdXBib3guY29sbGFwc2VkID4gLm14LWdyb3VwYm94LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm14LWdyb3VwYm94LWJvZHkge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5teC1ncm91cGJveC5jb2xsYXBzZWQgPiAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbi5teC1ncm91cGJveC1oZWFkZXIgKyAubXgtZ3JvdXBib3gtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbn1cbi5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5bZGlyPVwicnRsXCJdIC5teC1ncm91cGJveC1jb2xsYXBzZS1pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbn1cbiIsIi5teC1kYXRhdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm14LWRhdGF2aWV3LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAxOXB4IDIwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ubXgtZGF0YXZpZXctY29udHJvbHMgLm14LWJ1dHRvbiArIC5teC1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNlbTtcbn1cblxuLm14LWRhdGF2aWV3LW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cbi5teC1kYXRhdmlldy1tZXNzYWdlID4gZGl2IHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4ubXgtZGF0YXZpZXctbWVzc2FnZSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIFRvcC1sZXZlbCBkYXRhIHZpZXcgaW4gd2luZG93IGlzIGEgc3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgYXMgc3VjaC4gKi9cbi5teC13aW5kb3ctdmlldyAubXgtd2luZG93LWJvZHkge1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQsXG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LXBsYWNlaG9sZGVyID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG4ubXgtd2luZG93LXZpZXcgLm14LXdpbmRvdy1ib2R5ID4gLm14LWRhdGF2aWV3ID4gLm14LWRhdGF2aWV3LWNvbnRyb2xzLFxuLm14LXdpbmRvdy12aWV3IC5teC13aW5kb3ctYm9keSA+IC5teC1wbGFjZWhvbGRlciA+IC5teC1kYXRhdmlldyA+IC5teC1kYXRhdmlldy1jb250cm9scyB7XG4gICAgYm9yZGVyLXJhZGl1czogMHB4IDBweCA2cHggNnB4O1xufVxuIiwiLm14LWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNTAwcHg7XG4gICAgLyogSWYgdGhlIG1hcmdpbiBpcyBzZXQgdG8gYXV0bywgSUU5IHJlcG9ydHMgdGhlIGNhbGN1bGF0ZWQgdmFsdWUgb2YgdGhlXG4gICAgICogbWFyZ2luIGFzIHRoZSBhY3R1YWwgdmFsdWUuIE90aGVyIGJyb3dzZXJzIHdpbGwganVzdCByZXBvcnQgMC4gRWxpbWluYXRlXG4gICAgICogdGhpcyBkaWZmZXJlbmNlIGJ5IHNldHRpbmcgbWFyZ2luIHRvIDAgZm9yIGV2ZXJ5IGJyb3dzZXIuICovXG4gICAgbWFyZ2luOiAwO1xufVxuLm14LWRpYWxvZy1oZWFkZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbn1cbi5teC1kaWFsb2ctYm9keSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIubXgtd2luZG93IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICAvKiBJZiB0aGUgbWFyZ2luIGlzIHNldCB0byBhdXRvLCBJRTkgcmVwb3J0cyB0aGUgY2FsY3VsYXRlZCB2YWx1ZSBvZiB0aGVcbiAgICAgKiBtYXJnaW4gYXMgdGhlIGFjdHVhbCB2YWx1ZS4gT3RoZXIgYnJvd3NlcnMgd2lsbCBqdXN0IHJlcG9ydCAwLiBFbGltaW5hdGVcbiAgICAgKiB0aGlzIGRpZmZlcmVuY2UgYnkgc2V0dGluZyBtYXJnaW4gdG8gMCBmb3IgZXZlcnkgYnJvd3Nlci4gKi9cbiAgICBtYXJnaW46IDA7XG59XG4ubXgtd2luZG93LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm14LXdpbmRvdy1hY3RpdmUgLm14LXdpbmRvdy1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7XG59XG4ubXgtd2luZG93LWhlYWRlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xufVxuLm14LXdpbmRvdy1ib2R5IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi5teC1kcm9wZG93bi1saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1kcm9wZG93bi1saXN0IGltZyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXgtZHJvcGRvd24tbGlzdCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm14LWRyb3Bkb3duLWxpc3QgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtZHJvcGRvd24tbGlzdCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xufVxuLm14LWRyb3Bkb3duLWxpc3Qtc3RyaXBlZCA+IGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbn1cbi5teC1kcm9wZG93bi1saXN0ID4gbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG59XG4iLCIubXgtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWhlYWRlci1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMzBweDsgLyogaGVpZ2h0IG9mIGJ1dHRvbnMgKi9cbn1cbmJvZHlbZGlyPVwibHRyXCJdIC5teC1oZWFkZXItbGVmdCxcbmJvZHlbZGlyPVwicnRsXCJdIC5teC1oZWFkZXItcmlnaHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDlweDtcbiAgICBsZWZ0OiA5cHg7XG59XG5ib2R5W2Rpcj1cImx0clwiXSAubXgtaGVhZGVyLXJpZ2h0LFxuYm9keVtkaXI9XCJydGxcIl0gLm14LWhlYWRlci1sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbn1cbiIsIi5teC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cbiIsIi5teC1saXN0dmlldyB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuLm14LWxpc3R2aWV3ID4gdWwge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuLm14LWxpc3R2aWV3ID4gdWwgPiBsaSB7XG4gICAgcGFkZGluZzogNXB4IDEwcHggMTBweDtcbiAgICBib3JkZXI6IDFweCAjZGRkO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQgc29saWQgbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4ubXgtbGlzdHZpZXcgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG59XG4ubXgtbGlzdHZpZXcgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xufVxuLm14LWxpc3R2aWV3IGxpOm50aC1jaGlsZCgybisxKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbn1cbi5teC1saXN0dmlldyA+IHVsID4gbGkuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG59XG4ubXgtbGlzdHZpZXctY2xpY2thYmxlIHVsICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1saXN0dmlldy1lbXB0eSB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLm14LWxpc3R2aWV3IC5teC1saXN0dmlldy1sb2FkaW5nIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5teC1saXN0dmlldy1zZWFyY2hiYXIgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xufVxuW2Rpcj1cInJ0bFwiXSAubXgtbGlzdHZpZXctc2VhcmNoYmFyID4gYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG59XG5bZGlyPVwicnRsXCJdIC5teC1saXN0dmlldy1zZWxlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgMTVweDtcbn1cbi5teC1saXN0dmlldy1zZWxlY3RhYmxlIC5teC1saXN0dmlldy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4ubXgtbGlzdHZpZXcgLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZGVmO1xufVxuLm14LWxpc3R2aWV3IC5teC10YWJsZSB0aCxcbi5teC1saXN0dmlldyAubXgtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDJweDtcbn1cbiIsIi5teC1sb2dpbiAuZm9ybS1jb250cm9sIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuIiwiLm14LW1lbnViYXIge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5teC1tZW51YmFyLWljb24ge1xuICAgIGhlaWdodDogMTZweDtcbn1cbi5teC1tZW51YmFyLW1vcmUtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDTUFBQUFqQ0FZQUFBQWUyYk5aQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFLTkpSRUZVZU5waS9QLy9QOE5nQVV3TWd3aU1PbWJVTWFPT0dYWE1xR05HSFRQWUhNT0NUZkRzMmJNZVFLb09pSTFCWENCdU1qWTIza0ZyZFl6b1RRaWdSbThndFFXTEcwT0JCcXlobFRwYzBkU09JeFRyYUt3T3EyUFVjV2hXcDdFNnJJNjVpVVB6VFJxcncrcVlHaHlhbTJpc0R0TXh3RVMxQ1VnRkFmRnhxQkNJRGtKUGJOUldoelUzalJaNm80NFpkY3lvWTBZZE0rcVlVY2NNVXNjQUJCZ0FVWHBFakUvQnMvSUFBQUFBU1VWT1JLNUNZSUk9KSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLm14LW5hdmlnYXRpb25saXN0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG59XG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6aG92ZXIsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGk6Zm9jdXMsXG4ubXgtbmF2aWdhdGlvbmxpc3QgbGkuYWN0aXZlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OERCO1xufVxuLm14LW5hdmlnYXRpb25saXN0ICoge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1uYXZpZ2F0aW9ubGlzdCAudGFibGUgdGgsXG4ubXgtbmF2aWdhdGlvbmxpc3QgLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAycHg7XG59XG4iLCIubXgtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgbWF4LXdpZHRoOiA5MCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgei1pbmRleDogNTAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMjBweCAxNXB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluLW91dDtcbn1cbi5teC1wcm9ncmVzcy1oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG59XG4ubXgtcHJvZ3Jlc3MtbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubXgtcHJvZ3Jlc3MtZW1wdHkgLm14LXByb2dyZXNzLW1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4ubXgtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhSZ0FLQU1RQUFEbzZPb0dCZ1ZwYVduQndjSTZPanF5c3JGSlNVbVJrWkQ4L1AweE1UTTdPenFlbnAxaFlXRjFkWFVoSVNISnljb2VIaDB0TFMxZFhWNmlvcU0vUHoyVmxaVDA5UFRjM04wQkFRSVdGaGRiVzFseGNYSzJ0clVGQlFUTXpNd0FBQUNIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUVEQUFBQUN3QUFBQUFSZ0FLQUFBRms2RG5YUmFHV1plb3JxU0pybkI3cHJBcXY3VjQweDdRL1VCQXpnZjhDV3ZFNGhHV0RBNkx4aEVVeU5OTmYxWHBOWHU1ZHJoZWt0Y0NzNHpMNTVYNVNsYVBNVjRNREg2VnIraFR1d29QMVl2NFJTWnhjNE4zaFh1SGYzRnJVMjBxakZDT0lwQkZraDZVUUphWVB5aGhNWjRzb0RhaVZsczlVMHNyVFZGSXFFOVFxU3FySFVzN09Ub2xNN2NqdVRnNXRyZkFJUUFoK1FRRURBQUFBQ3dBQUFBQUNnQUtBQUFGSktEbkhZV2lGSWZvUVZyclFxTXJhK1RzbG5acjV0ckpvN3dVYXdZVFZRb1VDa29VQWdBaCtRUUVEQUFBQUN3QUFBQUFHUUFLQUFBRldhRG5NY1N5RUpLb3JrZWhLTVdoUGx4dFA2c0thWHdQZVJLYmtNUElIWHBJellFd3RCRnloV1N2c0dqV0ZqbUZsS2VvV3JFcjdWYkJ0RDVYMFcyQllTVWF0MG9QYllqTGVYYkpuNGcwbVJDS2RpSVZCUlFVTVNJaEFDSDVCQVFNQUFBQUxBQUFBQUFvQUFvQUFBV0tvT2NsUXhBTWthaXVETEVzaExUT1I2RW94YUUyV2U4M005R0RReXcrZ2g2SVpzbUVlQ0srYUNZeGt4U3ZIQWFOeWRVY0JsTGZZRWJBRmdtelFwZFpDSVI3Z2RuQ1RGek1GT3Vsd3YyT3IrWjBkaXQ0ZVFwZ2IyTXJaWFJvSzJwNUJRbHZVek1NZEZsYmVUbzhVa0JCUTFoSFFVcGRUaUlrSmdOVVNCNHRFeE1FV3F3VkJSUVVPU0loQUNINUJBUU1BQUFBTEFBQUFBQTNBQW9BQUFXOG9PY2hoaUFZaUtpdXlSQUVRN1RPRExFc2hEU3ZSNkVvaFlQS3NTa2FIVHRQSThOc05wSVBqblQ2U0VJMDJDeGtaT3h1VXF0SWM1eEp6Q1RUTkljeE8yVGZtb1BCYXpUTUJ1VG1ZRVpRVHdrekJYQlpCUUowUlFJekFYbE1BVE1MZmxJTE13cURXQXFHaDRrcmk0eU9LNUNSa3l1VmxncHpoM1lyZUl4N0szMlJnQ3VDbGdVSWgxOHpDWXhsTkpGcmJaWnhIa1JlU0R0TFpFODdVV3BWTzFkd1d5SVlKU2RnU1MwdkEyWkpIalVURXdSczNoVUZGQlJCSWlFQUlma0VCQXdBQUFBc0FBQUFBRVlBQ2dBQUJmQ2c1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RXlVNTFLQ2dVaFlNSzBHazZBVVBIWmtwMURCdVpyTFl4ZkhDKzRNY1FvaW1iSVNPbnVwTmlVZDhiMlNxaXJXY1NNd2w0ejJITURtYUJHZ2NXYTA0V013WndWQVl6QTNaYUF6TUVmR0FFTXdXQ1pnVVloazBZTXdLTFV3SXpBWkJaQVRNTGxWOExNd3FhWlFxZG5xQXJvcU9sSzZlb3FpdXNyYThyc2JJS2haNklLNHFqalN1UHFKSXJsSzJYSzVteUJSZWViRE1JbzNFMHFIY3pESzE5ZjdLREhreHJVRHRTY0ZZN1dIWmNPMTU4WWp0a2dtZ2lKRXlnR0NJQ2d3c1ljb2JVdURFQUQ4RWVFeVlROEVPd1FnRUtGSktJQ0FFQUlma0VCQXdBQUFBc0R3QUFBRGNBQ2dBQUJicWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkROSzhNc1N3RWlRclFLUm9CTzQ5ancydzZrbzJNZE5wSVBqalk3R05rN0haU3JLWjRJMXRGcHVoTVlpYkp1amtNaTlkb21SbkdUY05za0o0T1pnUnZXUVFZYzBVWU13SjRUQUl6QVgxU0FUTUxnbGdMaFlhSUs0cUxqU3VQa0pJcmxKVUxjb1oxSzNlTGVpdDhrSDhyZ1pVRUY0WmZNd2lMWkRTUWFqTU1sWEFlUkY1SU8wdGpUenRSYVZVN1YyOWJJaVFtS0VraUdDNHdaVWsxTndOcjJEMFRFd1FNSWlFQUlma0VCQXdBQUFBc0hnQUFBQ2dBQ2dBQUJZZWc1MTBXaGxtWHFLNklJUWdHc3M3SkVBUkRwQUpkN3dNemtXTkRMRHFDbmtabXlXeU1mTkJPaWxXc2JtU3JDSE9iU1ZpaVBzdk1ZQzBhWmdNdWM0QUI5ekF6UVprb21BWFV5MERiRFYvSjUzVXJkM2dCWDI1aUsyUnpaeXRwZUFNWGJsSXpDSE5YTkhoZEhqeFJRRUZEVmtkQlNseE9JaVFtS0VnaUdDNHdXRWcxTndNSklpRUFJZmtFQkF3QUFBQXNMUUFBQUJrQUNnQUFCVldnNTEwV2hsbVhxSzZJSVFnR29nSmRiUU9yNm14ODc0eTJZQ2ZGNmhrM0NJdlFac2taamowRFpsbkQ1QVJRbm1CS3RhNndXWUdTMmx3OXM0WUxkWmhEWkpFZW1oQ1g4K3lPUHhISmhLcXJNQzR3TWg0aEFDSDVCQVFNQUFBQUxEd0FBQUFLQUFvQUFBVWlvT2RkRm9aWmwrZ0JYZXNDb3l0MzVPeVdkbXZtM2NtanZCUnJCaE9SVENoUkNBQTcpO1xufVxuIiwiLm14LXJlbG9hZC1ub3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgaHNsKDIwMCwgOTYlLCA0MSUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMDAsIDk2JSwgNDQlKTtcblxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgxLCAzNywgNTUsIDAuMTYpO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG4iLCIubXgtcmVzaXplci1uLFxuLm14LXJlc2l6ZXItcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuLm14LXJlc2l6ZXItbiB7XG4gICAgdG9wOiAtNXB4O1xuICAgIGN1cnNvcjogbi1yZXNpemU7XG59XG4ubXgtcmVzaXplci1zIHtcbiAgICBib3R0b206IC01cHg7XG4gICAgY3Vyc29yOiBzLXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItZSxcbi5teC1yZXNpemVyLXcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLm14LXJlc2l6ZXItZSB7XG4gICAgcmlnaHQ6IC01cHg7XG4gICAgY3Vyc29yOiBlLXJlc2l6ZTtcbn1cbi5teC1yZXNpemVyLXcge1xuICAgIGxlZnQ6IC01cHg7XG4gICAgY3Vyc29yOiB3LXJlc2l6ZTtcbn1cblxuLm14LXJlc2l6ZXItbncsXG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItbmUge1xuICAgIHRvcDogLTVweDtcbn1cbi5teC1yZXNpemVyLXN3LFxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGJvdHRvbTogLTVweDtcbn1cbi5teC1yZXNpemVyLW53LFxuLm14LXJlc2l6ZXItc3cge1xuICAgIGxlZnQ6IC01cHg7XG59XG4ubXgtcmVzaXplci1uZSxcbi5teC1yZXNpemVyLXNlIHtcbiAgICByaWdodDogLTVweDtcbn1cblxuLm14LXJlc2l6ZXItbncge1xuICAgIGN1cnNvcjogbnctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItbmUge1xuICAgIGN1cnNvcjogbmUtcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc3cge1xuICAgIGN1cnNvcjogc3ctcmVzaXplO1xufVxuLm14LXJlc2l6ZXItc2Uge1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xufVxuIiwiLm14LXRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbiIsIi5teC10ZXh0YXJlYSB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5teC10ZXh0YXJlYSAubXgtdGV4dGFyZWEtbm9yZXNpemUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG4ubXgtdGV4dGFyZWEgLm14LXRleHRhcmVhLWNvdW50ZXIge1xuICAgIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cbi5teC10ZXh0YXJlYSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xufVxuIiwiLm14LXVuZGVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuIiwiLm14LWltYWdlem9vbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xufVxuLm14LWltYWdlem9vbS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLm14LWltYWdlem9vbS1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuIiwiLm14LWRyb3Bkb3duIGxpIHtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gbGFiZWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubXgtZHJvcGRvd24gaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5teC1kcm9wZG93biAuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4ubXgtc2VsZWN0Ym94IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLm14LXNlbGVjdGJveC1jYXJldC13cmFwcGVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLm14LWRlbW91c2Vyc3dpdGNoZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDIwMDAwO1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiA4MHB4IDQwcHggMjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU9nQUFBQmdDQVlBQUFBWFNqN05BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8wTXprd09UUkVNRFEyTkVZeE1VVTBRVFE0TVVJNU5UTkdNVVEzUXpFNU55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzBNemt3T1RSRU1UUTJORVl4TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qYzBSRU15TVVaR05EWTBRekV4UlRSQk5EZ3hRamsxTTBZeFJEZERNVGszSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjMFJFTXlNakF3TkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrZzF0Umx3QUFFRkZKUkVGVWVOcnNuWWwzVmNVZHgyZHU4ckpESUpDd0NnalZhclZvc1ZYYzZqbldubnBJUWxKV2w2T0NyUFlma2gxY2l1d2xMRm81dFQzbFZKUlZFVVVFUlFRSlM0Q1FRRWpDUzk3MCs1Mlo5M0lUREd1Uzk4ajcvVGp6N3IyL2U5OTlaTzU4N205K003K1owY05YYnNxS2FUTmVLVlZvbEttT0tiWDM5RXNWS2wxRVY2MklLSzN3QjV1SGNZZy8zM3lDNHgybS9FMmpSRVNTTE1HSmw4dXZZcnNIaWR1aFNBK21Vd2FZaWhsUk0zSEdPdXp1Wlg0Zy9SbHBpdDY4TkZ1S2gwalNEWWd4emxBTVc3V3BDQmIwNlJqTmlEWUh6azZ2UEpaMm1iRnArYStKTEN4b0hyYm5vVnB0eW1lZGxXSWlrblJBS1VOWFZRMERvT01BcUlKMlg4MzB5cFBwQitteVFsL2xIWTNES0xaYlRmbnNMNldvaUNRZFVNcmdWVlZqQWVoSWFHTXhaWGFlbi83WGMybVpNWnVYVm1MenFGSTJmL1lCMm85TTJleW9GQm1ScEFKS0tWbTk4UkZvUndCUUZzZ2RnTFErVFNFZEIwQkxzWnNCUUd1d3Y4NlV6VGtqeFVZa3FZQlNpbGR2SEFkQWgyRzNDUloxUisyMFNRM3BDZW1TZ2RpVUFkQlJBTFFGKzl1UWRnTlVhZVVWU1I2Z2xBR3IvL0U0Tm9NQWFBTjgweDExMHlZMXBXMUdiVmxDdi9SMy92QVE5amVac3JsWHBBaUpkS2NFTnpqUDdoZFU3VlErMGhOOTFxeVBwR3RHd2Yrc3dvYmRNWmVRSGtENm05Nnk2SDRwUWlKSnM2RGVpa1pnUVIrSEJTMUNsYmZXYVBQWjVhbFRXdFBYa2k0dXNGVmVaUjV3Q3ZhZm1vOU42YnlyVXB4RWVoeFFTdjgxRzNJQUtDQTFoUUQwSFBaM1hVbGpTQjJvaTU3QjVua0FpbHFJdVlEOWpZRDB1QlFwa1I0SGxGSzRaa01lQUIwUFFQTUI2TmxXWlhZM1Q1MGFTM05JaXdIb2l3QjBqSEw5TWJ1UVBoRnJLdExqZ0ZMZ2crWUQwUEdnTWcrQW5zRjJUelROSWJXWnVIVWhxcnpxOS82dzFqWWdsYzcvVVlxWFNJOENTaWxZdTQ0VzlDa0F5bXJ2S2ZpbmUxdW5URE1DNmNJaDJQd0o2VmNBbFBteEY5YjFYMmJDL0NZcFppSTlCaWdsRDVDMnVyamRiQUJhRGRVK2dUUnNUWTJ6cHRxMitQNFRrSDRqT1NQU1k0QlNzdGV1TFFDZ1R3UFFMQnhXd3ovZFo2Wk1GMGd0cEF0S3NIa0JnTWE3WVk0QTJnL05oTGRxSlhkRWVnUlFTb1NRYXNQV3pBZ0FQVVZMQ2toamtxMCtjejljOEFRMlR5TDFVeTVzY2p2U0RvRGFLcmtqMHUyQVVqTFdyV0cvNEZNQWxPTW56K0NPZTh6a2x3VFNOa2laTHhNQTZDTmV4UzZaandEcEVja2RrVzRIMUVPYUQwQ2Z3bTRPN3NqeGs0UlVyRVE3VU4rK2p5OHlwSHU5Nmp1a2p3SHFCY2tka1c0RjFONW8zV3FHQTQ3SEhmT1VEUTgwdTgza2x3WFNhMEY5RnBzL0lQVlZkcnlwK3N4WGU2VzFWNlQ3QUUxQXFnMzlybndmWGJNTGtNb1l5bXNoemNYbUw4cU9ON1hDb1B2L0lPMEZxT0llaUhRUG9QYUc2MWZsT1F0aGFDSHE4QXM3emFSWG1pV3JmeEhVVWI3YUcyL3Q1Y0NFYmVLZmluUWJvQjdTSE44WDJCKy93SEdrbndOU0daclZPYWkveGVZeHBGRmU5Wk5peU9DRXR5UzJWd0R0bnE1THZmNkRMRnZvdE9HQVovaFhCcEMrZWtteS9JYitLV0V0OGFyRFNQOEdxS2NsZHdUUTdvQTBFNy9BUWM2RGZUL2dia0I2WHJMOXVwQnE1VUlHQ1dxaGNrSDRqRVQ2TDBDdGtSd1NRTHYrUnphczVOdytuRDRscG9MWUY2Ynl0V3JKK2h1Q0NqZEJ2YURhZ3ZBOXFCcWd6aGRRQmRDdWh2VHY3S2dmQVVENWd3Y0I2VkhKL3BzQ2xZMXR6M2tmMVQ0eWIxRzNBMVNaczFjQTdWSkl4d0xRa2Q0Z0hIV2d2aTd4dTdjRXFuNHNaRkhwbzM0S1VLVXhTUUR0b2gvYytONFFWMjJ6djN0S2FmV0ZxWGhkQWhwdUd0UUZCUFdQb2FvdnM1S0EvZy9waUNtZEx5ODhBZlNPSVdYd09BTWFzZ0RvUmV6dk1oVnZTRi9wcllIS1lJZW5rZTREb0lPOG1sWGVuVGo3bFNtZEp3RWlBdWlkUVBwdXZ2V3JORnNxRGNQY2RnTFNlbmtrdDVHWFd4YzhZMEZWeXJzUG1uM09YQXhxRjBDVnJpMEI5TFlocFFYbDhncTBBQzJLWTBvclpzak03YmNQS2h2aXhtSnZqRmZSZFRpbzJMMGxFNW9Kb0xmOW42aDZoMzJsdy8xVUlkOEMwaC9rMGR3SnFBdHBTVG5wK0VNaExhdS91NUVPbU5LNUVwZ3ZnTjR5cEhqekcxZEYwK29rOXZlYmlUT2w4ZWpPUUdXZ0EwZk9qTURSQ0srK0NwLzFBTFpmbXJLNUp5U1hCTkJiZ0hURllNVVJIbHBGQUdpZHJacE5uTmtvajZrcllGM0V5Q1NtKzFYaWtXdXVYTWVsRmZlYnNqbmlxd3FnTndWcEhnQmw1RkYvKzdaWFpvK1orS2FFQjNZZHFNVUE5RkZ2VmUveGFnNXhvMXZ4RlhTSFpKbEZBZlQ2LzZsTkt6SUJKZ3ZSRU8rWEhnU2tFbm5VMWZtOFpUR0h1VDNTd1ZkbEZmZ1FmVldrbzZaOHRyZ1pBbWhub0M1SDRURWp2RjlhYmYzUzhsa3Q4dGk2SEZUT216UlcyVVdoOUppMktqQUhrdXR2bFdzSlBvYThGMWdGMEk2UUxodGlDNDlXV1FDMHdmcWw1YlBFWCtvMldKZjBBNkQwVlVjck8zK1NqcDlxeFA1M09FZGdmMENOUmw2VUFtZ0MwbHlVRTFyVFltWDc5c3dCVkwya0JiSzc4MzN6RXVTMy9vMXlBOGtkcks2NHdFZlZkRGtZQzN6WVRKd3BMOHgwQnJTdHdDeWxYM3FQTHlYSFVWNitObVhpSS9WUTNoZmg4MEZrL1JoblhST1dsUS9qRkk2UFlJOE5UVCtiaWhreXIxSTZBdW9MQ254U3d5cFlnREp5R2Z0N1Rka2NDUkhzNlJxTjBteGdZdklOVEFucjJvejlZOHExQ2g4MUZXK2NreHhMSTBCOTFhdkErNlVEVUNyNHR2NEdrQjZUeDVrTVdKZHJWd1cyalV0czBCc1JzcTY4NGhMMFA5a2Fqd08zeGxTK0ppTnVlak9nb1FZTnh2SEcrL0k0Ync4NzNHVnR6bVErazZvVnVUNFdlTFNIZFdBb01JSWZET1Evb1dMQno2d09RMWN0c3o3MlVrQWRwSXM1bFFvYk1qaEZTQ09BWlFpYlZLdFNCdGgzKzNyTE9zcUhHN29KMFdKQi9BcldnR284cktkd0xWKzBaMlErNVY0Q3FJYzBSN2wrdkVIZUVUcUtsL1VoVXpwWEdwQlM3Vmx0ZkkvRERJY0QwT0hLTnZqcFVhR3pjVDgyNXNNUUFhcytBeDBEL1dzQ3BldlNiWm5MWGdGb0NOUnd3RDJiL3I4QXBIV0NSUW8vc3cwcmFVcUxMYlJLRHdXTWpNY2UxdWJISnFCbHErQlZEMm9OZEJmd3hRc1pTbk1GZ3d0WHBrNXBFa0R2Q2tnWGNRVEhRNjRCaVc5aXc3NjY3MDNwUEdtWXVGdWU0Zm9QTXF6dmFxZHIxU1dBa2RYaVlvRFp6NE5xb1NYWkdSN2tER01IcWRkQ1YwOUxpLzJMZ2RGczNlZHhQYTY2Y25aNjVWMFJYUEhraXUyWitMdnp0VkY5ZWgyZ2lZZThkWkdiUmRDOWZpOHFOaUNWenBQdW1MdFlNdGF0eWZLZ011Qy9DREFXQWRBaXhhM1JPUTVlRHpDM1JzY3RiOXdlTjBGM09YQWhqQTJFRnNlMHZFM2FUcTZ1bTNDdVVSdE4vemVLL1didGZPU3IwTVZDOTJvKzlPcUw3ZnA2SDM1L1c0RC9VN1pPL0xvT3NNMENaTmhxNkRsQ1MwZXd6Y1YxT2REeC81dURxN0d2OHFETGc0N1Yvd0p0MjFPMG5iK3gxd0xxSVVYVnlUeWc3QUs2ZHNRR1Y3cUdOWjB2SGVtOVRQcXNXYy9DM1E5UUZhTFFzeFpWQ1BnNHdWcGZIUGZWZGtFdmxVRm9BMTkxMWlHSTQ1K0JyVmJHd1ZZSnRQVzFzRnRkK0Y2MEJTRkE3ZFpDMW5hWDBIVWQ3aGZTYVJzdGh4ZUlVZlg2K2NXZjI3UEdmeG9kUDhKV3U3MlkxYnR6aVd2dE9XTkxmZnc2NC8vRmRIdy9acjhUaTkveG11KzA3Y2V2aVlYMEhmZGpmcjhWKzYzdDlQRy9NUDZ5TVNyeFZ6TmxYL2JXMU9wb1JiOVVMYmwxMTE3YnlYSGlDWVpmWnAzcE81N3JvTHZ6MTg2MUtuTVQxNFIxNWdiWG1jN3VwYS96M2M3T2RhSnZhOFc5d2JYdGZGQjFuU3F1dWdrTG1nTmRRVUNMcFRRdFZXN2dMRyt1dDFxd2FMQnVSc1BhcVlqZFY1cGZoU1hVR2FGNzBaSUhIUUJsOGJ3YUFyUlZXOHRMQkRRdE5NTWpvOVpTRzFwc1o3bHhkYU5tNzROUnNPaWFzZWFYdlRXM3hUa3pMVjZ2elFYN0FTbG5zMmZrQzZ0RXo2ck14dStSQjBkVU5FZGFldE5IbW55NmF5UkltMGNUemF0QitsVFppQmI3a3VNc2VNK3BTRk94bEZzUkFUUjFRTjJQengzS2RZNjdWY0V6bThhcHpPWnNLUTRpS2RlTzBwc2JpVzc0eDMrNGdGVmVocVRSNTRDUFlEalc4YmlaOEpaMHlZZ0lvQ2tDS1dkbzU0aU1JYjQxb2hicGEwQjZVWXFIaUFDYU9xQnlYbDVhMC9pYW5Cd1EvaTFBbGVCN0VRRTBkVUI5bXpHOUkrTWVLOUozaXZQeFNMVlhSQUJOR1VnNTN2UkJaVVBOckxEdjlLQ3NjQzBpZ0tZV3FFT1ZuWXZIOXAxU3pucFFaUTRlRVFFMGhVQmxueWtqa2ZLOGY4b1pBZzREVkJsb0xDS0FwZ2lrakxwNlNDVkNCcmthbS9vZTZVZUFLbE5RaWdpZ0tRSXFBN0RaZnpyRXEyaEZqOUNxQWxRSndoY1JRRk1FMUJMdm41WjRGY2Nqc3NYM3BMVDRpZ2lncVFNcUc1TFlMVFBRcXk1NVVFOExxQ0lDYU9xQVN0K1U4K3dNOEtwNlgvVTlKYUNLQ0tDcEErcG83NThXdFZsVWZkaUJPbDh5VzBRQVRSRlE2WjhPZGFEcWVOV1hyYjdWQUZVYWswUUUwTlFCVlE4SlZYMjVZdmdQeXFqanBuUytEQllYRVVCVEE5UUZJNzFGZFkxSmhxdUhxeCtaQUtwTTBpd2lnS1lJcUlSMEJBQ056K1JBSzNxQ3kvbVowbmtOa2tNaUFtZ3FaUHpXQlFSMGxFb0U1TnNaenhpTXozVTNhd0NyWkpLSUFKb0NvREl5NlY2L2JrbGNMbmxRVHdKVThWTUZVSkhrZzdxUXNiN3NvcUZsalhmUlJIMzE5eWRUT3ZleTVKSUFLcElhc0RMZ1liaUhWZmx1bXZOSXg3ajZseW1iSzkwMEFxaElDb0JhcU5xVzdYTmliSEErcDJNNUFWREZxZ3FnSXNrSGRaRmZ4Vm9OQnFBRFEyZHFQYXpWcG15T2ROVUlvQ0pKZjJCYkZ0RS92Y2Y1cWJyQXE5bVFkTnI3cStkTTJXeDVxQUtvU1BKaFhVdy9sZjJxZzBKYUxtMVFEVXQ3MHBUUGxxbERCVkNSRkFBMTExdFZWSC8xQU8rclVoajRjQkk2d0RwTC9GVUJWQ1Q1c0M3aFVvdkR1SDZtY3NzdXFsQ3cvaWttd0NycnBBcWdJa2wvdUp1WERGUnVPWG5DV2hBNjAyQmhOWW9ydnRXWmlXOUtaZ21nSXNtRmRTbGg5ZU5VN2NLMjhXb3cxNkxrZEtKbkZFTU1KODZVeUNVQlZDUzVzQzRyc3JBYU93U3VNTFNJTGdNZ3p1SDRETTZkTlJVenJraHVDYUFpeVN3QW01YWg2cXZaQ2x5c3dwRkxiWTFNTlRobUVQOTVVL0dHOUxVS29DTEpnM1U1NDRFQnF5N3gxalUzQWF4RDlxSUg5anlPYWszbDYxSWRGa0JGa2xZNHFsYjBkVmJWZHQyRSsxcUphOHdCcXhramZJSEpWTDRtRTNnTG9DTEpnZlVkcnNaTzMzV0FiUlZPaEJ3bS9GY1VwS0FlMk5aNlM0dXR2bXdtdlNLWko0Q0s5SGpCMmZndWdlM25yU3ZCTFFHZ3JwbXA3YXFvQTlWYTJqb2dYR2Ntdjl3b3VTZUFpdlE0c08vQmxBWjlBV2gvSFBiMzhCWjBxQlpUb2haV1oyWHJzVjhQZllPWk1sMkcwQW1nSWoxYXVEYXNqSVJnN1FjUTZkUG1ocXJGWVgvMkNtR0ZEV1pJNHFWQTZVc0VOenAxYWt3QUZSSHBxUUszL29Nc2ZIS2NLMU5mR3pSaFZKODRySUcvTG5EZ21zQUZValJrdUxWdkdqS01qWUpxZ0w2eGJ0cmtxQUFxSXRMZGhYRGRhbktaajcwK2dRdEp4RmIzSWJpQkJ6ZkRYd3RBUGNCVzN4SzRlWWFiQXFPNWJmUkFOMnUzNmx3ejlNMm5YNnE0SzYzdytCWGJBd0ZVSkdVbHNuYXRCbkE1QUM0L3d3S3M4Z0VvdDNtQnF5cEhFaGEzUGJpSlNqVDFnWnZiQ2RCcXprVWNoWTdIVVczWGVOVlJmNzVGRzgxdUl1T09OZThZWmZVYjMydnRjTytXUTYrKzJBNmNoOS9meHAvTTFDWitsZjNNME81ckVmd21WUkZ0VCtsTWZHVGFZNlBwQm1UaW9peXY1M0dXTWpwYjIvTUNxTWhkS29Wck5tUTZVRlV1QU1peFd3ZHVGZ3AzTm81em9NOEtQRnR4Yk9NdzZ3N1ZhdjFMa0p2UTkwSjYzY2tMb1FPZzdWNFV2NlR2N0Q0QWxQc3hBVlNrMTh2UVZWVzBTckJJT3N0YnM0aTNaaEZ2aGVQV2pEWHB3QjNyd0ZvNW83QzErakJFc0pUV0lvWjF4bG5oZG9DMmF0ZngxSUxmdEZ0M2JQVnhxMjJ0dWJmYVVhKy9Da0NiZDg3NFkvVC9BZ3dBMk1pN0hkQWUraWtBQUFBQVNVVk9SSzVDWUlJPSkgdG9wIHJpZ2h0IG5vLXJlcGVhdCAjMWIzMTQ5O1xuICAgIC8qIGJhY2tncm91bmQtYXR0YWNoZW1lbnQgbG9jYWwgaXMgbm90IHN1cHBvcnRlZCBvbiBJRThcbiAgICAgKiB3aGVuIHRoaXMgaXMgcGFydCBvZiBiYWNrZ3JvdW5kIHRoZSBjb21wbGV0ZSBiYWNrZ3JvdW5kIGlzIGlnbm9yZWQgKi9cbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGxvY2FsO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgdWwge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgY29sb3I6ICMzODdlYTI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0OTYwNzY7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBoMiB7XG4gICAgbWFyZ2luOiAyMHB4IDAgNXB4O1xuICAgIGNvbG9yOiAjNWJjNGZlO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbn1cbi5teC1kZW1vdXNlcnN3aXRjaGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgY29sb3I6ICM1YmM0ZmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXIgLmFjdGl2ZSBoMyB7XG4gICAgY29sb3I6ICMxMWVmZGI7XG59XG4ubXgtZGVtb3VzZXJzd2l0Y2hlciBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLm14LWRlbW91c2Vyc3dpdGNoZXItdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNSU7XG4gICAgbGVmdDogLTM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIG1hcmdpbi10b3A6IC00MHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJveC1zaGFkb3c6IC0xcHggMCA1cHggcmdiYSgyOCw1OSw4NiwuMik7XG4gICAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBU0NBWUFBQUJXem81WEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVJwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVNeTFqTURFeElEWTJMakUwTlRZMk1Td2dNakF4TWk4d01pOHdOaTB4TkRvMU5qb3lOeUFnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5UTmlBb1RXRmphVzUwYjNOb0tTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzNORVJETWpGR1JEUTJORU14TVVVMFFUUTRNVUk1TlROR01VUTNRekU1TnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvM05FUkRNakZHUlRRMk5FTXhNVVUwUVRRNE1VSTVOVE5HTVVRM1F6RTVOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pjMFJFTXlNVVpDTkRZMFF6RXhSVFJCTkRneFFqazFNMFl4UkRkRE1UazNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPamMwUkVNeU1VWkRORFkwUXpFeFJUUkJORGd4UWprMU0wWXhSRGRETVRrM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCsxWm92TkFBQUFXZEpSRUZVZU5xTTFNMHJSRkVZeC9FN1k1cUlRcE9VYklpeW1RV3lzQmd2SlZKSzJWZ3J5WlF0S1NVTFplbFBzQjBMWmFOWmpKVU5LMUZza0pxVXZDUzNOQXNaYzN6UDlOemlPT2ZlZWVwVGM4L2M4K3ZjOHhaVFNubU9ha0VHS2R6Z0RCWFh5NTRPTXNTd2pwTDZXOWNZc3J4ZlpXdmNVdTd5MFZkTFVDYytWWGdkMm9MaXhwZk9JT21GMTdUdEhUT296WXV1cEN4QWFOQjlEVUVmZURVYkU4YnpFWHhaZXJQMDBsOGhoM0xVaUhUSU1yNk45ajJrc1lvaWh2LzFkZXlMU1Z6S0ttMWpFVytXZlpWMkxmOGdza2pJY3djV3BPTSsrcEhDRlBMb3NnV3RvQ3lkN2pDUE9qemhHSEhMeURQWTFhY2hhSmhEeFJqNnJCd0pYVXVvTjBJRzhJSXY3T2lHQmp4YWR2QUlUdVQzcmV4NmMwU2JLQVNmbG5VY0JUM0pUVGhBanlXa0dVVnNCRUVGUjVDZXJ6WHBOSWFjckZJckpuQ0JCM211QnZraEIxVFAyN2hNL0x2eDN6bDZneEhxdTZjNzRraVU4SXhHaktKZExyclQzeGZkandBREFKYU14UDJidkQyQkFBQUFBRWxGVGtTdVFtQ0MpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0ICMxYjMxNDk7XG59XG4iLCIvKiBtYXN0ZXIgZGV0YWlscyBzY3JlZW4gZm9yIG1vYmlsZSAqL1xuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbiAubXgtbWFzdGVyLWRldGFpbC1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbn1cblxuLm14LW1hc3Rlci1kZXRhaWwtc2NyZWVuLWhlYWRlci1jYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLXNjcmVlbi1oZWFkZXItY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjMDA3YWZmO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlIHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4ubXgtbWFzdGVyLWRldGFpbC1zY3JlZW4taGVhZGVyLWNsb3NlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXFwyMDM5XCI7XG4gICAgZm9udC1zaXplOiA1MnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4vKiBjbGFzc2VzIGZvciBjb250ZW50IHBhZ2UgKi9cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtZml4IHtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teC1tYXN0ZXItZGV0YWlsLWNvbnRlbnQtaGlkZGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xufVxuXG5ib2R5W2Rpcj1cInJ0bFwiXSAubXgtbWFzdGVyLWRldGFpbC1jb250ZW50LWhpZGRlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufSIsIi5yZXBvcnRpbmdSZXBvcnQge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbiIsIi5yZXBvcnRpbmdSZXBvcnRQYXJhbWV0ZXIgdGgge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuIiwiLnJlcG9ydGluZ0RhdGVSYW5nZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yZXBvcnRpbmdEYXRlUmFuZ2UgdGgge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnJlcG9ydGluZ0RhdGVSYW5nZSB0ZCB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuIiwiLm14LXJlcG9ydG1hdHJpeCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0aCwgLm14LXJlcG9ydG1hdHJpeCB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm14LXJlcG9ydG1hdHJpeCB0Ym9keSB0cjpudGgtY2hpbGQoMm4rMSkgdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG59XG5cbi5teC1yZXBvcnRtYXRyaXggdGJvZHkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbn1cbiIsIi8qIFdBUk5JTkc6IElFOSBsaW1pdHMgbmVzdGVkIGltcG9ydHMgdG8gdGhyZWUgbGV2ZWxzIGRlZXA6IGh0dHA6Ly9qb3JnZWFsYmFsYWRlam8uY29tLzIwMTEvMDUvMjgvaW50ZXJuZXQtZXhwbG9yZXItbGltaXRzLW5lc3RlZC1pbXBvcnQtY3NzLXN0YXRlbWVudHMgKi9cblxuLyogZGlqaXQgYmFzZSAqL1xuXG4vKiBtZW5kaXggYmFzZSAqL1xuXG4vKiB3aWRnZXRzICovXG5cbi8qIHJlcG9ydGluZyAqL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==*/ diff --git a/test/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap-rtl.scss b/test/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap-rtl.scss old mode 100755 new mode 100644 similarity index 99% rename from test/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap-rtl.scss rename to test/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap-rtl.scss index 8c768d5..8344fd9 --- a/test/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap-rtl.scss +++ b/test/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap-rtl.scss @@ -6,7 +6,7 @@ * Copyright: Unlicensed Public Domain *******************************************************************************/ -[dir='rtl'] { +[dir="rtl"] { .flip.text-left { text-align: right; } @@ -967,10 +967,10 @@ padding-right: 20px; padding-left: initial; } - .radio input[type='radio'], - .radio-inline input[type='radio'], - .checkbox input[type='checkbox'], - .checkbox-inline input[type='checkbox'] { + .radio input[type="radio"], + .radio-inline input[type="radio"], + .checkbox input[type="checkbox"], + .checkbox-inline input[type="checkbox"] { margin-right: -20px; margin-left: auto; } @@ -997,8 +997,8 @@ padding-right: 0; padding-left: initial; } - .form-inline .radio input[type='radio'], - .form-inline .checkbox input[type='checkbox'] { + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { margin-right: 0; margin-left: auto; } diff --git a/test/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap.scss b/test/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap.scss old mode 100755 new mode 100644 similarity index 90% rename from test/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap.scss rename to test/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap.scss index 5836c61..c1e7775 --- a/test/theme/styles/web/sass/core/_legacy/bootstrap/_bootstrap.scss +++ b/test/themesource/atlas_core/web/core/_legacy/bootstrap/_bootstrap.scss @@ -126,9 +126,9 @@ select { text-transform: none; } button, -html input[type='button'], -input[type='reset'], -input[type='submit'] { +html input[type="button"], +input[type="reset"], +input[type="submit"] { -webkit-appearance: button; cursor: pointer; } @@ -144,25 +144,25 @@ input::-moz-focus-inner { input { line-height: normal; } -input[type='checkbox'], -input[type='radio'] { +input[type="checkbox"], +input[type="radio"] { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; } -input[type='number']::-webkit-inner-spin-button, -input[type='number']::-webkit-outer-spin-button { +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { height: auto; } -input[type='search'] { +input[type="search"] { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; -webkit-appearance: textfield; } -input[type='search']::-webkit-search-cancel-button, -input[type='search']::-webkit-search-decoration { +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } fieldset { @@ -204,14 +204,14 @@ th { text-decoration: underline; } a[href]:after { - content: ' (' attr(href) ')'; + content: " (" attr(href) ")"; } abbr[title]:after { - content: ' (' attr(title) ')'; + content: " (" attr(title) ")"; } - a[href^='#']:after, - a[href^='javascript:']:after { - content: ''; + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; } pre, blockquote { @@ -265,20 +265,14 @@ th { } } @font-face { - font-family: 'Glyphicons Halflings'; - - src: url('./fonts/glyphicons-halflings-regular.eot'); - src: url('./fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), - url('./fonts/glyphicons-halflings-regular.woff2') format('woff2'), - url('./fonts/glyphicons-halflings-regular.woff') format('woff'), - url('./fonts/glyphicons-halflings-regular.ttf') format('truetype'), - url('./fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); + font-family: "Glyphicons Halflings"; + src: url("../../../resources/glyphicons-halflings-regular.woff2") format("woff2"); } .glyphicon { position: relative; top: 1px; display: inline-block; - font-family: 'Glyphicons Halflings'; + font-family: "Glyphicons Halflings"; font-style: normal; font-weight: normal; line-height: 1; @@ -287,791 +281,791 @@ th { -moz-osx-font-smoothing: grayscale; } .glyphicon-asterisk:before { - content: '\2a'; + content: "\2a"; } .glyphicon-plus:before { - content: '\2b'; + content: "\2b"; } .glyphicon-euro:before, .glyphicon-eur:before { - content: '\20ac'; + content: "\20ac"; } .glyphicon-minus:before { - content: '\2212'; + content: "\2212"; } .glyphicon-cloud:before { - content: '\2601'; + content: "\2601"; } .glyphicon-envelope:before { - content: '\2709'; + content: "\2709"; } .glyphicon-pencil:before { - content: '\270f'; + content: "\270f"; } .glyphicon-glass:before { - content: '\e001'; + content: "\e001"; } .glyphicon-music:before { - content: '\e002'; + content: "\e002"; } .glyphicon-search:before { - content: '\e003'; + content: "\e003"; } .glyphicon-heart:before { - content: '\e005'; + content: "\e005"; } .glyphicon-star:before { - content: '\e006'; + content: "\e006"; } .glyphicon-star-empty:before { - content: '\e007'; + content: "\e007"; } .glyphicon-user:before { - content: '\e008'; + content: "\e008"; } .glyphicon-film:before { - content: '\e009'; + content: "\e009"; } .glyphicon-th-large:before { - content: '\e010'; + content: "\e010"; } .glyphicon-th:before { - content: '\e011'; + content: "\e011"; } .glyphicon-th-list:before { - content: '\e012'; + content: "\e012"; } .glyphicon-ok:before { - content: '\e013'; + content: "\e013"; } .glyphicon-remove:before { - content: '\e014'; + content: "\e014"; } .glyphicon-zoom-in:before { - content: '\e015'; + content: "\e015"; } .glyphicon-zoom-out:before { - content: '\e016'; + content: "\e016"; } .glyphicon-off:before { - content: '\e017'; + content: "\e017"; } .glyphicon-signal:before { - content: '\e018'; + content: "\e018"; } .glyphicon-cog:before { - content: '\e019'; + content: "\e019"; } .glyphicon-trash:before { - content: '\e020'; + content: "\e020"; } .glyphicon-home:before { - content: '\e021'; + content: "\e021"; } .glyphicon-file:before { - content: '\e022'; + content: "\e022"; } .glyphicon-time:before { - content: '\e023'; + content: "\e023"; } .glyphicon-road:before { - content: '\e024'; + content: "\e024"; } .glyphicon-download-alt:before { - content: '\e025'; + content: "\e025"; } .glyphicon-download:before { - content: '\e026'; + content: "\e026"; } .glyphicon-upload:before { - content: '\e027'; + content: "\e027"; } .glyphicon-inbox:before { - content: '\e028'; + content: "\e028"; } .glyphicon-play-circle:before { - content: '\e029'; + content: "\e029"; } .glyphicon-repeat:before { - content: '\e030'; + content: "\e030"; } .glyphicon-refresh:before { - content: '\e031'; + content: "\e031"; } .glyphicon-list-alt:before { - content: '\e032'; + content: "\e032"; } .glyphicon-lock:before { - content: '\e033'; + content: "\e033"; } .glyphicon-flag:before { - content: '\e034'; + content: "\e034"; } .glyphicon-headphones:before { - content: '\e035'; + content: "\e035"; } .glyphicon-volume-off:before { - content: '\e036'; + content: "\e036"; } .glyphicon-volume-down:before { - content: '\e037'; + content: "\e037"; } .glyphicon-volume-up:before { - content: '\e038'; + content: "\e038"; } .glyphicon-qrcode:before { - content: '\e039'; + content: "\e039"; } .glyphicon-barcode:before { - content: '\e040'; + content: "\e040"; } .glyphicon-tag:before { - content: '\e041'; + content: "\e041"; } .glyphicon-tags:before { - content: '\e042'; + content: "\e042"; } .glyphicon-book:before { - content: '\e043'; + content: "\e043"; } .glyphicon-bookmark:before { - content: '\e044'; + content: "\e044"; } .glyphicon-print:before { - content: '\e045'; + content: "\e045"; } .glyphicon-camera:before { - content: '\e046'; + content: "\e046"; } .glyphicon-font:before { - content: '\e047'; + content: "\e047"; } .glyphicon-bold:before { - content: '\e048'; + content: "\e048"; } .glyphicon-italic:before { - content: '\e049'; + content: "\e049"; } .glyphicon-text-height:before { - content: '\e050'; + content: "\e050"; } .glyphicon-text-width:before { - content: '\e051'; + content: "\e051"; } .glyphicon-align-left:before { - content: '\e052'; + content: "\e052"; } .glyphicon-align-center:before { - content: '\e053'; + content: "\e053"; } .glyphicon-align-right:before { - content: '\e054'; + content: "\e054"; } .glyphicon-align-justify:before { - content: '\e055'; + content: "\e055"; } .glyphicon-list:before { - content: '\e056'; + content: "\e056"; } .glyphicon-indent-left:before { - content: '\e057'; + content: "\e057"; } .glyphicon-indent-right:before { - content: '\e058'; + content: "\e058"; } .glyphicon-facetime-video:before { - content: '\e059'; + content: "\e059"; } .glyphicon-picture:before { - content: '\e060'; + content: "\e060"; } .glyphicon-map-marker:before { - content: '\e062'; + content: "\e062"; } .glyphicon-adjust:before { - content: '\e063'; + content: "\e063"; } .glyphicon-tint:before { - content: '\e064'; + content: "\e064"; } .glyphicon-edit:before { - content: '\e065'; + content: "\e065"; } .glyphicon-share:before { - content: '\e066'; + content: "\e066"; } .glyphicon-check:before { - content: '\e067'; + content: "\e067"; } .glyphicon-move:before { - content: '\e068'; + content: "\e068"; } .glyphicon-step-backward:before { - content: '\e069'; + content: "\e069"; } .glyphicon-fast-backward:before { - content: '\e070'; + content: "\e070"; } .glyphicon-backward:before { - content: '\e071'; + content: "\e071"; } .glyphicon-play:before { - content: '\e072'; + content: "\e072"; } .glyphicon-pause:before { - content: '\e073'; + content: "\e073"; } .glyphicon-stop:before { - content: '\e074'; + content: "\e074"; } .glyphicon-forward:before { - content: '\e075'; + content: "\e075"; } .glyphicon-fast-forward:before { - content: '\e076'; + content: "\e076"; } .glyphicon-step-forward:before { - content: '\e077'; + content: "\e077"; } .glyphicon-eject:before { - content: '\e078'; + content: "\e078"; } .glyphicon-chevron-left:before { - content: '\e079'; + content: "\e079"; } .glyphicon-chevron-right:before { - content: '\e080'; + content: "\e080"; } .glyphicon-plus-sign:before { - content: '\e081'; + content: "\e081"; } .glyphicon-minus-sign:before { - content: '\e082'; + content: "\e082"; } .glyphicon-remove-sign:before { - content: '\e083'; + content: "\e083"; } .glyphicon-ok-sign:before { - content: '\e084'; + content: "\e084"; } .glyphicon-question-sign:before { - content: '\e085'; + content: "\e085"; } .glyphicon-info-sign:before { - content: '\e086'; + content: "\e086"; } .glyphicon-screenshot:before { - content: '\e087'; + content: "\e087"; } .glyphicon-remove-circle:before { - content: '\e088'; + content: "\e088"; } .glyphicon-ok-circle:before { - content: '\e089'; + content: "\e089"; } .glyphicon-ban-circle:before { - content: '\e090'; + content: "\e090"; } .glyphicon-arrow-left:before { - content: '\e091'; + content: "\e091"; } .glyphicon-arrow-right:before { - content: '\e092'; + content: "\e092"; } .glyphicon-arrow-up:before { - content: '\e093'; + content: "\e093"; } .glyphicon-arrow-down:before { - content: '\e094'; + content: "\e094"; } .glyphicon-share-alt:before { - content: '\e095'; + content: "\e095"; } .glyphicon-resize-full:before { - content: '\e096'; + content: "\e096"; } .glyphicon-resize-small:before { - content: '\e097'; + content: "\e097"; } .glyphicon-exclamation-sign:before { - content: '\e101'; + content: "\e101"; } .glyphicon-gift:before { - content: '\e102'; + content: "\e102"; } .glyphicon-leaf:before { - content: '\e103'; + content: "\e103"; } .glyphicon-fire:before { - content: '\e104'; + content: "\e104"; } .glyphicon-eye-open:before { - content: '\e105'; + content: "\e105"; } .glyphicon-eye-close:before { - content: '\e106'; + content: "\e106"; } .glyphicon-warning-sign:before { - content: '\e107'; + content: "\e107"; } .glyphicon-plane:before { - content: '\e108'; + content: "\e108"; } .glyphicon-calendar:before { - content: '\e109'; + content: "\e109"; } .glyphicon-random:before { - content: '\e110'; + content: "\e110"; } .glyphicon-comment:before { - content: '\e111'; + content: "\e111"; } .glyphicon-magnet:before { - content: '\e112'; + content: "\e112"; } .glyphicon-chevron-up:before { - content: '\e113'; + content: "\e113"; } .glyphicon-chevron-down:before { - content: '\e114'; + content: "\e114"; } .glyphicon-retweet:before { - content: '\e115'; + content: "\e115"; } .glyphicon-shopping-cart:before { - content: '\e116'; + content: "\e116"; } .glyphicon-folder-close:before { - content: '\e117'; + content: "\e117"; } .glyphicon-folder-open:before { - content: '\e118'; + content: "\e118"; } .glyphicon-resize-vertical:before { - content: '\e119'; + content: "\e119"; } .glyphicon-resize-horizontal:before { - content: '\e120'; + content: "\e120"; } .glyphicon-hdd:before { - content: '\e121'; + content: "\e121"; } .glyphicon-bullhorn:before { - content: '\e122'; + content: "\e122"; } .glyphicon-bell:before { - content: '\e123'; + content: "\e123"; } .glyphicon-certificate:before { - content: '\e124'; + content: "\e124"; } .glyphicon-thumbs-up:before { - content: '\e125'; + content: "\e125"; } .glyphicon-thumbs-down:before { - content: '\e126'; + content: "\e126"; } .glyphicon-hand-right:before { - content: '\e127'; + content: "\e127"; } .glyphicon-hand-left:before { - content: '\e128'; + content: "\e128"; } .glyphicon-hand-up:before { - content: '\e129'; + content: "\e129"; } .glyphicon-hand-down:before { - content: '\e130'; + content: "\e130"; } .glyphicon-circle-arrow-right:before { - content: '\e131'; + content: "\e131"; } .glyphicon-circle-arrow-left:before { - content: '\e132'; + content: "\e132"; } .glyphicon-circle-arrow-up:before { - content: '\e133'; + content: "\e133"; } .glyphicon-circle-arrow-down:before { - content: '\e134'; + content: "\e134"; } .glyphicon-globe:before { - content: '\e135'; + content: "\e135"; } .glyphicon-wrench:before { - content: '\e136'; + content: "\e136"; } .glyphicon-tasks:before { - content: '\e137'; + content: "\e137"; } .glyphicon-filter:before { - content: '\e138'; + content: "\e138"; } .glyphicon-briefcase:before { - content: '\e139'; + content: "\e139"; } .glyphicon-fullscreen:before { - content: '\e140'; + content: "\e140"; } .glyphicon-dashboard:before { - content: '\e141'; + content: "\e141"; } .glyphicon-paperclip:before { - content: '\e142'; + content: "\e142"; } .glyphicon-heart-empty:before { - content: '\e143'; + content: "\e143"; } .glyphicon-link:before { - content: '\e144'; + content: "\e144"; } .glyphicon-phone:before { - content: '\e145'; + content: "\e145"; } .glyphicon-pushpin:before { - content: '\e146'; + content: "\e146"; } .glyphicon-usd:before { - content: '\e148'; + content: "\e148"; } .glyphicon-gbp:before { - content: '\e149'; + content: "\e149"; } .glyphicon-sort:before { - content: '\e150'; + content: "\e150"; } .glyphicon-sort-by-alphabet:before { - content: '\e151'; + content: "\e151"; } .glyphicon-sort-by-alphabet-alt:before { - content: '\e152'; + content: "\e152"; } .glyphicon-sort-by-order:before { - content: '\e153'; + content: "\e153"; } .glyphicon-sort-by-order-alt:before { - content: '\e154'; + content: "\e154"; } .glyphicon-sort-by-attributes:before { - content: '\e155'; + content: "\e155"; } .glyphicon-sort-by-attributes-alt:before { - content: '\e156'; + content: "\e156"; } .glyphicon-unchecked:before { - content: '\e157'; + content: "\e157"; } .glyphicon-expand:before { - content: '\e158'; + content: "\e158"; } .glyphicon-collapse-down:before { - content: '\e159'; + content: "\e159"; } .glyphicon-collapse-up:before { - content: '\e160'; + content: "\e160"; } .glyphicon-log-in:before { - content: '\e161'; + content: "\e161"; } .glyphicon-flash:before { - content: '\e162'; + content: "\e162"; } .glyphicon-log-out:before { - content: '\e163'; + content: "\e163"; } .glyphicon-new-window:before { - content: '\e164'; + content: "\e164"; } .glyphicon-record:before { - content: '\e165'; + content: "\e165"; } .glyphicon-save:before { - content: '\e166'; + content: "\e166"; } .glyphicon-open:before { - content: '\e167'; + content: "\e167"; } .glyphicon-saved:before { - content: '\e168'; + content: "\e168"; } .glyphicon-import:before { - content: '\e169'; + content: "\e169"; } .glyphicon-export:before { - content: '\e170'; + content: "\e170"; } .glyphicon-send:before { - content: '\e171'; + content: "\e171"; } .glyphicon-floppy-disk:before { - content: '\e172'; + content: "\e172"; } .glyphicon-floppy-saved:before { - content: '\e173'; + content: "\e173"; } .glyphicon-floppy-remove:before { - content: '\e174'; + content: "\e174"; } .glyphicon-floppy-save:before { - content: '\e175'; + content: "\e175"; } .glyphicon-floppy-open:before { - content: '\e176'; + content: "\e176"; } .glyphicon-credit-card:before { - content: '\e177'; + content: "\e177"; } .glyphicon-transfer:before { - content: '\e178'; + content: "\e178"; } .glyphicon-cutlery:before { - content: '\e179'; + content: "\e179"; } .glyphicon-header:before { - content: '\e180'; + content: "\e180"; } .glyphicon-compressed:before { - content: '\e181'; + content: "\e181"; } .glyphicon-earphone:before { - content: '\e182'; + content: "\e182"; } .glyphicon-phone-alt:before { - content: '\e183'; + content: "\e183"; } .glyphicon-tower:before { - content: '\e184'; + content: "\e184"; } .glyphicon-stats:before { - content: '\e185'; + content: "\e185"; } .glyphicon-sd-video:before { - content: '\e186'; + content: "\e186"; } .glyphicon-hd-video:before { - content: '\e187'; + content: "\e187"; } .glyphicon-subtitles:before { - content: '\e188'; + content: "\e188"; } .glyphicon-sound-stereo:before { - content: '\e189'; + content: "\e189"; } .glyphicon-sound-dolby:before { - content: '\e190'; + content: "\e190"; } .glyphicon-sound-5-1:before { - content: '\e191'; + content: "\e191"; } .glyphicon-sound-6-1:before { - content: '\e192'; + content: "\e192"; } .glyphicon-sound-7-1:before { - content: '\e193'; + content: "\e193"; } .glyphicon-copyright-mark:before { - content: '\e194'; + content: "\e194"; } .glyphicon-registration-mark:before { - content: '\e195'; + content: "\e195"; } .glyphicon-cloud-download:before { - content: '\e197'; + content: "\e197"; } .glyphicon-cloud-upload:before { - content: '\e198'; + content: "\e198"; } .glyphicon-tree-conifer:before { - content: '\e199'; + content: "\e199"; } .glyphicon-tree-deciduous:before { - content: '\e200'; + content: "\e200"; } .glyphicon-cd:before { - content: '\e201'; + content: "\e201"; } .glyphicon-save-file:before { - content: '\e202'; + content: "\e202"; } .glyphicon-open-file:before { - content: '\e203'; + content: "\e203"; } .glyphicon-level-up:before { - content: '\e204'; + content: "\e204"; } .glyphicon-copy:before { - content: '\e205'; + content: "\e205"; } .glyphicon-paste:before { - content: '\e206'; + content: "\e206"; } .glyphicon-alert:before { - content: '\e209'; + content: "\e209"; } .glyphicon-equalizer:before { - content: '\e210'; + content: "\e210"; } .glyphicon-king:before { - content: '\e211'; + content: "\e211"; } .glyphicon-queen:before { - content: '\e212'; + content: "\e212"; } .glyphicon-pawn:before { - content: '\e213'; + content: "\e213"; } .glyphicon-bishop:before { - content: '\e214'; + content: "\e214"; } .glyphicon-knight:before { - content: '\e215'; + content: "\e215"; } .glyphicon-baby-formula:before { - content: '\e216'; + content: "\e216"; } .glyphicon-tent:before { - content: '\26fa'; + content: "\26fa"; } .glyphicon-blackboard:before { - content: '\e218'; + content: "\e218"; } .glyphicon-bed:before { - content: '\e219'; + content: "\e219"; } .glyphicon-apple:before { - content: '\f8ff'; + content: "\f8ff"; } .glyphicon-erase:before { - content: '\e221'; + content: "\e221"; } .glyphicon-hourglass:before { - content: '\231b'; + content: "\231b"; } .glyphicon-lamp:before { - content: '\e223'; + content: "\e223"; } .glyphicon-duplicate:before { - content: '\e224'; + content: "\e224"; } .glyphicon-piggy-bank:before { - content: '\e225'; + content: "\e225"; } .glyphicon-scissors:before { - content: '\e226'; + content: "\e226"; } .glyphicon-bitcoin:before { - content: '\e227'; + content: "\e227"; } .glyphicon-btc:before { - content: '\e227'; + content: "\e227"; } .glyphicon-xbt:before { - content: '\e227'; + content: "\e227"; } .glyphicon-yen:before { - content: '\00a5'; + content: "\00a5"; } .glyphicon-jpy:before { - content: '\00a5'; + content: "\00a5"; } .glyphicon-ruble:before { - content: '\20bd'; + content: "\20bd"; } .glyphicon-rub:before { - content: '\20bd'; + content: "\20bd"; } .glyphicon-scale:before { - content: '\e230'; + content: "\e230"; } .glyphicon-ice-lolly:before { - content: '\e231'; + content: "\e231"; } .glyphicon-ice-lolly-tasted:before { - content: '\e232'; + content: "\e232"; } .glyphicon-education:before { - content: '\e233'; + content: "\e233"; } .glyphicon-option-horizontal:before { - content: '\e234'; + content: "\e234"; } .glyphicon-option-vertical:before { - content: '\e235'; + content: "\e235"; } .glyphicon-menu-hamburger:before { - content: '\e236'; + content: "\e236"; } .glyphicon-modal-window:before { - content: '\e237'; + content: "\e237"; } .glyphicon-oil:before { - content: '\e238'; + content: "\e238"; } .glyphicon-grain:before { - content: '\e239'; + content: "\e239"; } .glyphicon-sunglasses:before { - content: '\e240'; + content: "\e240"; } .glyphicon-text-size:before { - content: '\e241'; + content: "\e241"; } .glyphicon-text-color:before { - content: '\e242'; + content: "\e242"; } .glyphicon-text-background:before { - content: '\e243'; + content: "\e243"; } .glyphicon-object-align-top:before { - content: '\e244'; + content: "\e244"; } .glyphicon-object-align-bottom:before { - content: '\e245'; + content: "\e245"; } .glyphicon-object-align-horizontal:before { - content: '\e246'; + content: "\e246"; } .glyphicon-object-align-left:before { - content: '\e247'; + content: "\e247"; } .glyphicon-object-align-vertical:before { - content: '\e248'; + content: "\e248"; } .glyphicon-object-align-right:before { - content: '\e249'; + content: "\e249"; } .glyphicon-triangle-right:before { - content: '\e250'; + content: "\e250"; } .glyphicon-triangle-left:before { - content: '\e251'; + content: "\e251"; } .glyphicon-triangle-bottom:before { - content: '\e252'; + content: "\e252"; } .glyphicon-triangle-top:before { - content: '\e253'; + content: "\e253"; } .glyphicon-console:before { - content: '\e254'; + content: "\e254"; } .glyphicon-superscript:before { - content: '\e255'; + content: "\e255"; } .glyphicon-subscript:before { - content: '\e256'; + content: "\e256"; } .glyphicon-menu-left:before { - content: '\e257'; + content: "\e257"; } .glyphicon-menu-right:before { - content: '\e258'; + content: "\e258"; } .glyphicon-menu-down:before { - content: '\e259'; + content: "\e259"; } .glyphicon-menu-up:before { - content: '\e260'; + content: "\e260"; } * { -webkit-box-sizing: border-box; @@ -1090,7 +1084,7 @@ html { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.42857143; color: #333; @@ -1177,7 +1171,7 @@ hr { overflow: visible; clip: auto; } -[role='button'] { +[role="button"] { cursor: pointer; } h1, @@ -1495,7 +1489,7 @@ blockquote .small { blockquote footer:before, blockquote small:before, blockquote .small:before { - content: '\2014 \00A0'; + content: "\2014 \00A0"; } .blockquote-reverse, blockquote.pull-right { @@ -1511,7 +1505,7 @@ blockquote.pull-right footer:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, blockquote.pull-right .small:before { - content: ''; + content: ""; } .blockquote-reverse footer:after, blockquote.pull-right footer:after, @@ -1519,7 +1513,7 @@ blockquote.pull-right footer:after, blockquote.pull-right small:after, .blockquote-reverse .small:after, blockquote.pull-right .small:after { - content: '\00A0 \2014'; + content: "\00A0 \2014"; } address { margin-bottom: 20px; @@ -1530,7 +1524,7 @@ code, kbd, pre, samp { - font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } code { padding: 2px 4px; @@ -2413,13 +2407,13 @@ th { .table-hover > tbody > tr:hover { background-color: #f5f5f5; } -table col[class*='col-'] { +table col[class*="col-"] { position: static; display: table-column; float: none; } -table td[class*='col-'], -table th[class*='col-'] { +table td[class*="col-"], +table th[class*="col-"] { position: static; display: table-cell; float: none; @@ -2601,21 +2595,21 @@ label { margin-bottom: 5px; font-weight: bold; } -input[type='search'] { +input[type="search"] { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } -input[type='radio'], -input[type='checkbox'] { +input[type="radio"], +input[type="checkbox"] { margin: 4px 0 0; margin-top: 1px \9; line-height: normal; } -input[type='file'] { +input[type="file"] { display: block; } -input[type='range'] { +input[type="range"] { display: block; width: 100%; } @@ -2623,9 +2617,9 @@ select[multiple], select[size] { height: auto; } -input[type='file']:focus, -input[type='radio']:focus, -input[type='checkbox']:focus { +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; @@ -2733,10 +2727,10 @@ output { font-weight: normal; cursor: pointer; } -.radio input[type='radio'], -.radio-inline input[type='radio'], -.checkbox input[type='checkbox'], -.checkbox-inline input[type='checkbox'] { +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { position: absolute; margin-top: 4px \9; margin-left: -20px; @@ -2760,12 +2754,12 @@ output { margin-top: 0; margin-left: 10px; } -input[type='radio'][disabled], -input[type='checkbox'][disabled], -input[type='radio'].disabled, -input[type='checkbox'].disabled, -fieldset[disabled] input[type='radio'], -fieldset[disabled] input[type='checkbox'] { +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { cursor: not-allowed; } .radio-inline.disabled, @@ -3036,8 +3030,8 @@ select[multiple].form-group-lg .form-control { .form-inline .checkbox label { padding-left: 0; } - .form-inline .radio input[type='radio'], - .form-inline .checkbox input[type='checkbox'] { + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { position: relative; margin-left: 0; } @@ -3459,18 +3453,18 @@ fieldset[disabled] .btn-link:focus { line-height: 1.5; border-radius: 3px; } -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type='submit'].btn-block, -input[type='reset'].btn-block, -input[type='button'].btn-block { - width: 100%; -} +//.btn-block { +// display: block; +// width: 100%; +//} +//.btn-block + .btn-block { +// margin-top: 5px; +//} +//input[type='submit'].btn-block, +//input[type='reset'].btn-block, +//input[type='button'].btn-block { +// width: 100%; +//} .fade { opacity: 0; -webkit-transition: opacity 0.15s linear; @@ -3627,7 +3621,7 @@ tbody.collapse.in { } .dropup .caret, .navbar-fixed-bottom .dropdown .caret { - content: ''; + content: ""; border-top: 0; border-bottom: 4px solid; } @@ -3807,10 +3801,10 @@ tbody.collapse.in { .btn-group-justified > .btn-group .dropdown-menu { left: auto; } -[data-toggle='buttons'] > .btn input[type='radio'], -[data-toggle='buttons'] > .btn-group > .btn input[type='radio'], -[data-toggle='buttons'] > .btn input[type='checkbox'], -[data-toggle='buttons'] > .btn-group > .btn input[type='checkbox'] { +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { position: absolute; clip: rect(0, 0, 0, 0); pointer-events: none; @@ -3820,7 +3814,7 @@ tbody.collapse.in { display: table; border-collapse: separate; } -.input-group[class*='col-'] { +.input-group[class*="col-"] { float: none; padding-right: 0; padding-left: 0; @@ -3915,8 +3909,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { font-size: 18px; border-radius: 6px; } -.input-group-addon input[type='radio'], -.input-group-addon input[type='checkbox'] { +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { margin-top: 0; } .input-group .form-control:first-child, @@ -4414,8 +4408,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .navbar-form .checkbox label { padding-left: 0; } - .navbar-form .radio input[type='radio'], - .navbar-form .checkbox input[type='checkbox'] { + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { position: relative; margin-left: 0; } @@ -4701,7 +4695,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { .breadcrumb > li + li:before { padding: 0 5px; color: #ccc; - content: '/\00a0'; + content: "/\00a0"; } .breadcrumb > .active { color: #777; @@ -5090,235 +5084,235 @@ a.thumbnail.active { .alert-danger .alert-link { color: #843534; } -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-o-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} -.progress-bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - background-color: #337ab7; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: -o-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.15) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.15) 50%, - rgba(255, 255, 255, 0.15) 75%, - transparent 75%, - transparent - ); -} +//@-webkit-keyframes progress-bar-stripes { +// from { +// background-position: 40px 0; +// } +// to { +// background-position: 0 0; +// } +//} +//@-o-keyframes progress-bar-stripes { +// from { +// background-position: 40px 0; +// } +// to { +// background-position: 0 0; +// } +//} +//@keyframes progress-bar-stripes { +// from { +// background-position: 40px 0; +// } +// to { +// background-position: 0 0; +// } +//} +//.progress { +// height: 20px; +// margin-bottom: 20px; +// overflow: hidden; +// background-color: #f5f5f5; +// border-radius: 4px; +// -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +// box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +//} +//.progress-bar { +// float: left; +// width: 0; +// height: 100%; +// font-size: 12px; +// line-height: 20px; +// color: #fff; +// text-align: center; +// background-color: #337ab7; +// -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); +// box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); +// -webkit-transition: width 0.6s ease; +// -o-transition: width 0.6s ease; +// transition: width 0.6s ease; +//} +//.progress-striped .progress-bar, +//.progress-bar-striped { +// background-image: -webkit-linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// background-image: -o-linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// background-image: linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// -webkit-background-size: 40px 40px; +// background-size: 40px 40px; +//} +//.progress.active .progress-bar, +//.progress-bar.active { +// -webkit-animation: progress-bar-stripes 2s linear infinite; +// -o-animation: progress-bar-stripes 2s linear infinite; +// animation: progress-bar-stripes 2s linear infinite; +//} +//.progress-bar-success { +// background-color: #5cb85c; +//} +//.progress-striped .progress-bar-success { +// background-image: -webkit-linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// background-image: -o-linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// background-image: linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +//} +//.progress-bar-info { +// background-color: #5bc0de; +//} +//.progress-striped .progress-bar-info { +// background-image: -webkit-linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// background-image: -o-linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// background-image: linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +//} +//.progress-bar-warning { +// background-color: #f0ad4e; +//} +//.progress-striped .progress-bar-warning { +// background-image: -webkit-linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// background-image: -o-linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// background-image: linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +//} +//.progress-bar-danger { +// background-color: #d9534f; +//} +//.progress-striped .progress-bar-danger { +// background-image: -webkit-linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// background-image: -o-linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +// background-image: linear-gradient( +// 45deg, +// rgba(255, 255, 255, 0.15) 25%, +// transparent 25%, +// transparent 50%, +// rgba(255, 255, 255, 0.15) 50%, +// rgba(255, 255, 255, 0.15) 75%, +// transparent 75%, +// transparent +// ); +//} .media { margin-top: 15px; } @@ -6026,10 +6020,10 @@ button.close { margin: 0; line-height: 1.42857143; } -.modal-body { - position: relative; - padding: 15px; -} +//.modal-body { +// position: relative; +// padding: 15px; +//} .modal-footer { padding: 15px; text-align: right; @@ -6074,7 +6068,7 @@ button.close { position: absolute; z-index: 1070; display: block; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; font-weight: normal; line-height: 1.4; @@ -6181,7 +6175,7 @@ button.close { display: none; max-width: 276px; padding: 1px; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 1.42857143; @@ -6232,7 +6226,7 @@ button.close { border-width: 11px; } .popover > .arrow:after { - content: ''; + content: ""; border-width: 10px; } .popover.top > .arrow { @@ -6246,7 +6240,7 @@ button.close { .popover.top > .arrow:after { bottom: 1px; margin-left: -10px; - content: ' '; + content: " "; border-top-color: #fff; border-bottom-width: 0; } @@ -6261,7 +6255,7 @@ button.close { .popover.right > .arrow:after { bottom: -10px; left: 1px; - content: ' '; + content: " "; border-right-color: #fff; border-left-width: 0; } @@ -6276,7 +6270,7 @@ button.close { .popover.bottom > .arrow:after { top: 1px; margin-left: -10px; - content: ' '; + content: " "; border-top-width: 0; border-bottom-color: #fff; } @@ -6291,7 +6285,7 @@ button.close { .popover.left > .arrow:after { right: 1px; bottom: -10px; - content: ' '; + content: " "; border-right-width: 0; border-left-color: #fff; } @@ -6454,10 +6448,10 @@ button.close { line-height: 1; } .carousel-control .icon-prev:before { - content: '\2039'; + content: "\2039"; } .carousel-control .icon-next:before { - content: '\203a'; + content: "\203a"; } .carousel-indicators { position: absolute; @@ -6561,7 +6555,7 @@ button.close { .modal-footer:before, .modal-footer:after { display: table; - content: ' '; + content: " "; } .clearfix:after, .dl-horizontal dd:after, diff --git a/test/theme/styles/web/sass/core/base/_animation.scss b/test/themesource/atlas_core/web/core/base/_animation.scss old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/web/sass/core/base/_animation.scss rename to test/themesource/atlas_core/web/core/base/_animation.scss diff --git a/test/theme/styles/web/sass/core/base/_base.scss b/test/themesource/atlas_core/web/core/base/_base.scss old mode 100755 new mode 100644 similarity index 89% rename from test/theme/styles/web/sass/core/base/_base.scss rename to test/themesource/atlas_core/web/core/base/_base.scss index b9d4379..2082dcb --- a/test/theme/styles/web/sass/core/base/_base.scss +++ b/test/themesource/atlas_core/web/core/base/_base.scss @@ -24,9 +24,6 @@ body { } a { - -moz-transition: 0.25s; - -o-transition: 0.25s; - -webkit-transition: 0.25s; transition: 0.25s; color: $link-color; -webkit-backface-visibility: hidden; @@ -64,8 +61,16 @@ div[tabindex] { .disabled, [disabled] { cursor: not-allowed; - // opacity: 0.65; - -webkit-box-shadow: none; + opacity: 0.65; box-shadow: none; - filter: alpha(opacity=65); +} + +.mx-underlay { + position: fixed; + top: 0; + width: 100%; + height: 100%; + z-index: 1000; + opacity: 0.5; + background-color: #0a1325; } diff --git a/test/theme/styles/web/sass/core/base/_flex.scss b/test/themesource/atlas_core/web/core/base/_flex.scss old mode 100755 new mode 100644 similarity index 98% rename from test/theme/styles/web/sass/core/base/_flex.scss rename to test/themesource/atlas_core/web/core/base/_flex.scss index 4f6364e..4eec77f --- a/test/theme/styles/web/sass/core/base/_flex.scss +++ b/test/themesource/atlas_core/web/core/base/_flex.scss @@ -9,7 +9,7 @@ Flex classes ========================================================================== */ -$important-flex-value: if($important-flex, ' !important', ''); +$important-flex-value: if($important-flex, " !important", ""); // Flex layout .flexcontainer { diff --git a/test/theme/styles/web/sass/core/base/_login.scss b/test/themesource/atlas_core/web/core/base/_login.scss old mode 100755 new mode 100644 similarity index 61% rename from test/theme/styles/web/sass/core/base/_login.scss rename to test/themesource/atlas_core/web/core/base/_login.scss index 6df8a0c..ea2c4f6 --- a/test/theme/styles/web/sass/core/base/_login.scss +++ b/test/themesource/atlas_core/web/core/base/_login.scss @@ -34,6 +34,24 @@ body { width: 400px; margin: 0 auto; } + +.loginpage-fullscreenDiv { + background-color: #e8e8e8; + width: 100%; + height: auto; + bottom: 0; + top: 0; + left: 0; + position: absolute; +} + +.loginpage-center { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + // Form .loginpage-form { .alert { @@ -41,41 +59,44 @@ body { } .btn { - border-radius: 40px; + border-radius: $border-radius-default; } // Form label + input .form-group { width: 100%; align-items: center; + @media only screen and (max-width: $screen-sm-max) { + align-items: flex-start; + } .control-label { flex: 4; margin-bottom: 0; font-size: $font-size-default; font-weight: 500; + @media only screen and (max-width: $screen-sm-max) { + flex: 1; + margin-bottom: $spacing-small; + } } .inputwrapper { flex: 8; position: relative; width: 100%; + @media only screen and (max-width: $screen-sm-max) { + flex: 1; + } .glyphicon { &:before { - -webkit-transition: color 0.4s; - -moz-transition: color 0.4s; - -o-transition: color 0.4s; transition: color 0.4s; } position: absolute; top: 50%; left: $form-input-padding-x; - -webkit-transform: translateY(-50%); - -moz-transform: translateY(-50%); - -ms-transform: translateY(-50%); - -o-transform: translateY(-50%); transform: translateY(-50%); &-eye-open:hover, @@ -87,6 +108,7 @@ body { .form-control { padding: $form-input-padding-y $form-input-padding-x $form-input-padding-y 45px; + width: 100%; } .form-control:focus ~ .glyphicon:before { @@ -95,7 +117,8 @@ body { } } } -// Divider - only on login-with-sso.html + +// Divider - only on login-with-mendixsso-button.html .loginpage-alternativelabel { display: flex; align-items: center; @@ -117,6 +140,14 @@ body { color: #555555; } +.loginpage-form .btn { + img { + vertical-align: middle; + top: -1px; + position: relative; + } +} + // Show only on wide screens @media screen and (min-width: $screen-xl) { .loginpage-logo { @@ -134,36 +165,9 @@ body { .loginpage-image { height: 100%; animation: makePointer 1s ease-out both; - background: left / cover no-repeat url('../../../resources/work-do-more.jpeg'); // Microsoft EDGE background: left / cover no-repeat linear-gradient(to right, rgba($brand-primary, 0.9) 0%, rgba($brand-primary, 0.6) 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -moz-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -webkit-gradient(linear, left bottom, right bottom, color-stop(0%, rgba($brand-primary, 0.9)), color-stop(100%, rgba($brand-primary, 0.6))), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -webkit-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -o-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); - background: left / cover no-repeat -ms-linear-gradient(left, rgba($brand-primary, 0.9) 0%, rgba( - $brand-primary, - 0.6 - ) - 100%), - left / cover no-repeat url('../../../resources/work-do-more.jpeg'); + left / cover no-repeat url("../../resources/work-do-more.jpeg"); -webkit-clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%); clip-path: polygon(0% 0%, 100% 0, 100% 50%, 100% 100%, 0% 100%); } diff --git a/test/theme/styles/web/sass/core/base/_reset.scss b/test/themesource/atlas_core/web/core/base/_reset.scss old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/web/sass/core/base/_reset.scss rename to test/themesource/atlas_core/web/core/base/_reset.scss diff --git a/test/themesource/atlas_core/web/core/base/_spacing.scss b/test/themesource/atlas_core/web/core/base/_spacing.scss new file mode 100644 index 0000000..ab2c663 --- /dev/null +++ b/test/themesource/atlas_core/web/core/base/_spacing.scss @@ -0,0 +1,449 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +/* ========================================================================== + Spacing + + Spacing classes +========================================================================== */ +$important-spacing-value: if($important-spacing, " !important", ""); + +// Spacing none +.spacing-inner-none { + padding: 0 #{$important-spacing-value}; +} + +.spacing-inner-top-none { + padding-top: 0 #{$important-spacing-value}; +} + +.spacing-inner-right-none { + padding-right: 0 #{$important-spacing-value}; +} + +.spacing-inner-bottom-none { + padding-bottom: 0 #{$important-spacing-value}; +} + +.spacing-inner-left-none { + padding-left: 0 #{$important-spacing-value}; +} + +.spacing-outer-none { + margin: 0 #{$important-spacing-value}; +} + +.spacing-outer-top-none { + margin-top: 0 #{$important-spacing-value}; +} + +.spacing-outer-right-none { + margin-right: 0 #{$important-spacing-value}; +} + +.spacing-outer-bottom-none { + margin-bottom: 0 #{$important-spacing-value}; +} + +.spacing-outer-left-none { + margin-left: 0 #{$important-spacing-value}; +} + +// Spacing small +.spacing-inner { + padding: $spacing-small #{$important-spacing-value}; +} + +.spacing-inner-top { + padding-top: $spacing-small #{$important-spacing-value}; +} + +.spacing-inner-right { + padding-right: $spacing-small #{$important-spacing-value}; +} + +.spacing-inner-bottom { + padding-bottom: $spacing-small #{$important-spacing-value}; +} + +.spacing-inner-left { + padding-left: $spacing-small #{$important-spacing-value}; +} + +.spacing-inner-vertical { + padding-top: $spacing-small #{$important-spacing-value}; + padding-bottom: $spacing-small #{$important-spacing-value}; +} + +.spacing-inner-horizontal { + padding-left: $spacing-small #{$important-spacing-value}; + padding-right: $spacing-small #{$important-spacing-value}; +} + +.spacing-outer { + margin: $spacing-small #{$important-spacing-value}; +} + +.spacing-outer-top { + margin-top: $spacing-small #{$important-spacing-value}; +} + +.spacing-outer-right { + margin-right: $spacing-small #{$important-spacing-value}; +} + +.spacing-outer-bottom { + margin-bottom: $spacing-small #{$important-spacing-value}; +} + +.spacing-outer-left { + margin-left: $spacing-small #{$important-spacing-value}; +} + +.spacing-outer-vertical { + margin-top: $spacing-small #{$important-spacing-value}; + margin-bottom: $spacing-small #{$important-spacing-value}; +} + +.spacing-outer-horizontal { + margin-left: $spacing-small #{$important-spacing-value}; + margin-right: $spacing-small #{$important-spacing-value}; +} + +// Spacing Medium +.spacing-inner-medium { + @include get-responsive-spacing-medium($type: padding, $direction: all, $is_important: #{$important-spacing-value}); +} + +.spacing-inner-top-medium { + @include get-responsive-spacing-medium($type: padding, $direction: top, $is_important: #{$important-spacing-value}); +} + +.spacing-inner-right-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: right, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-bottom-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-left-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: left, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-vertical-medium { + @include get-responsive-spacing-medium($type: padding, $direction: top, $is_important: #{$important-spacing-value}); + @include get-responsive-spacing-medium( + $type: padding, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-horizontal-medium { + @include get-responsive-spacing-medium( + $type: padding, + $direction: left, + $is_important: #{$important-spacing-value} + ); + @include get-responsive-spacing-medium( + $type: padding, + $direction: right, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-medium { + @include get-responsive-spacing-medium($type: margin, $direction: all, $is_important: #{$important-spacing-value}); +} + +.spacing-outer-top-medium { + @include get-responsive-spacing-medium($type: margin, $direction: top, $is_important: #{$important-spacing-value}); +} + +.spacing-outer-right-medium { + @include get-responsive-spacing-medium( + $type: margin, + $direction: right, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-bottom-medium { + @include get-responsive-spacing-medium( + $type: margin, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-left-medium { + @include get-responsive-spacing-medium($type: margin, $direction: left, $is_important: #{$important-spacing-value}); +} + +.spacing-outer-vertical-medium { + @include get-responsive-spacing-medium($type: margin, $direction: top, $is_important: #{$important-spacing-value}); + @include get-responsive-spacing-medium( + $type: margin, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-horizontal-medium { + @include get-responsive-spacing-medium($type: margin, $direction: left, $is_important: #{$important-spacing-value}); + @include get-responsive-spacing-medium( + $type: margin, + $direction: right, + $is_important: #{$important-spacing-value} + ); +} + +// Spacing Large +.spacing-inner-large { + @include get-responsive-spacing-large($type: padding, $direction: all, $is_important: #{$important-spacing-value}); +} + +.spacing-inner-top-large { + @include get-responsive-spacing-large($type: padding, $direction: top, $is_important: #{$important-spacing-value}); +} + +.spacing-inner-right-large { + @include get-responsive-spacing-large( + $type: padding, + $direction: right, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-bottom-large { + @include get-responsive-spacing-large( + $type: padding, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-left-large { + @include get-responsive-spacing-large($type: padding, $direction: left, $is_important: #{$important-spacing-value}); +} + +.spacing-inner-vertical-large { + @include get-responsive-spacing-large($type: padding, $direction: top, $is_important: #{$important-spacing-value}); + @include get-responsive-spacing-large( + $type: padding, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-horizontal-large { + @include get-responsive-spacing-large($type: padding, $direction: left, $is_important: #{$important-spacing-value}); + @include get-responsive-spacing-large( + $type: padding, + $direction: right, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-large { + @include get-responsive-spacing-large($type: margin, $direction: all, $is_important: #{$important-spacing-value}); +} + +.spacing-outer-top-large { + @include get-responsive-spacing-large($type: margin, $direction: top, $is_important: #{$important-spacing-value}); +} + +.spacing-outer-right-large { + @include get-responsive-spacing-large($type: margin, $direction: right, $is_important: #{$important-spacing-value}); +} + +.spacing-outer-bottom-large { + @include get-responsive-spacing-large( + $type: margin, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-left-large { + @include get-responsive-spacing-large($type: margin, $direction: left, $is_important: #{$important-spacing-value}); +} + +.spacing-outer-vertical-large { + @include get-responsive-spacing-large($type: margin, $direction: top, $is_important: #{$important-spacing-value}); + @include get-responsive-spacing-large( + $type: margin, + $direction: bottom, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-horizontal-large { + @include get-responsive-spacing-large($type: margin, $direction: left, $is_important: #{$important-spacing-value}); + @include get-responsive-spacing-large($type: margin, $direction: right, $is_important: #{$important-spacing-value}); +} + +// Spacing layouts +.spacing-inner-layout { + @include layout-spacing( + $type: padding, + $direction: all, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-top-layout { + @include layout-spacing( + $type: padding, + $direction: top, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-right-layout { + @include layout-spacing( + $type: padding, + $direction: right, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-bottom-layout { + @include layout-spacing( + $type: padding, + $direction: bottom, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-left-layout { + @include layout-spacing( + $type: padding, + $direction: left, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-inner-vertical-layout { + @include layout-spacing( + $type: padding, + $direction: top, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + @include layout-spacing( + $type: padding, + $direction: bottom, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} +.spacing-inner-horizontal-layout { + @include layout-spacing( + $type: padding, + $direction: left, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + @include layout-spacing( + $type: padding, + $direction: right, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-layout { + @include layout-spacing( + $type: margin, + $direction: all, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-top-layout { + @include layout-spacing( + $type: margin, + $direction: top, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-right-layout { + @include layout-spacing( + $type: margin, + $direction: right, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-bottom-layout { + @include layout-spacing( + $type: margin, + $direction: bottom, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-left-layout { + @include layout-spacing( + $type: margin, + $direction: left, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} + +.spacing-outer-vertical-layout { + @include layout-spacing( + $type: margin, + $direction: top, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + @include layout-spacing( + $type: margin, + $direction: bottom, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} +.spacing-outer-horizontal-layout { + @include layout-spacing( + $type: margin, + $direction: left, + $device: responsive, + $is_important: #{$important-spacing-value} + ); + @include layout-spacing( + $type: margin, + $direction: right, + $device: responsive, + $is_important: #{$important-spacing-value} + ); +} diff --git a/test/theme/styles/web/sass/core/base/mixins/_animations.scss b/test/themesource/atlas_core/web/core/base/mixins/_animations.scss old mode 100755 new mode 100644 similarity index 72% rename from test/theme/styles/web/sass/core/base/mixins/_animations.scss rename to test/themesource/atlas_core/web/core/base/mixins/_animations.scss index 93bca3b..9a117e4 --- a/test/theme/styles/web/sass/core/base/mixins/_animations.scss +++ b/test/themesource/atlas_core/web/core/base/mixins/_animations.scss @@ -12,9 +12,6 @@ $property: all, $timing-fucntion: cubic-bezier(0.4, 0, 0.2, 1) ) { - -webkit-transition: $property $duration $delay $timing-fucntion; - -moz-transition: $property $duration $delay $timing-fucntion; - -o-transition: $property $duration $delay $timing-fucntion; transition: $property $duration $delay $timing-fucntion; transform-style: $style; } @@ -25,7 +22,7 @@ transform: translate3d(0, 0, 0); &:after { - content: ''; + content: ""; display: block; position: absolute; width: 100%; @@ -36,17 +33,12 @@ background-image: radial-gradient(circle, $color $transparency, transparent $transparency); background-repeat: no-repeat; background-position: 50%; - -webkit-transform: scale($scale, $scale); transform: scale($scale, $scale); opacity: 0; - -webkit-transition: transform 0.5s, opacity 1s; - -moz-transition: transform 0.5s, opacity 1s; - -o-transition: transform 0.5s, opacity 1s; transition: transform 0.5s, opacity 1s; } &:active:after { - -webkit-transform: scale(0, 0); transform: scale(0, 0); opacity: 0.1; transition: 0s; diff --git a/test/theme/styles/web/sass/core/base/mixins/_buttons.scss b/test/themesource/atlas_core/web/core/base/mixins/_buttons.scss old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/web/sass/core/base/mixins/_buttons.scss rename to test/themesource/atlas_core/web/core/base/mixins/_buttons.scss diff --git a/test/theme/styles/web/sass/core/base/mixins/_groupbox.scss b/test/themesource/atlas_core/web/core/base/mixins/_groupbox.scss old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/web/sass/core/base/mixins/_groupbox.scss rename to test/themesource/atlas_core/web/core/base/mixins/_groupbox.scss diff --git a/test/theme/styles/web/sass/core/base/mixins/_layout-spacing.scss b/test/themesource/atlas_core/web/core/base/mixins/_layout-spacing.scss old mode 100755 new mode 100644 similarity index 98% rename from test/theme/styles/web/sass/core/base/mixins/_layout-spacing.scss rename to test/themesource/atlas_core/web/core/base/mixins/_layout-spacing.scss index 76aa983..70722f1 --- a/test/theme/styles/web/sass/core/base/mixins/_layout-spacing.scss +++ b/test/themesource/atlas_core/web/core/base/mixins/_layout-spacing.scss @@ -6,9 +6,9 @@ // @mixin layout-spacing($type: padding, $direction: all, $device: responsive, $is_important: false) { - $suffix: ''; + $suffix: ""; @if $is_important != false { - $suffix: ' !important'; + $suffix: " !important"; } @if $device==responsive { @if $direction==all { diff --git a/test/theme/styles/web/sass/core/base/mixins/_spacing.scss b/test/themesource/atlas_core/web/core/base/mixins/_spacing.scss old mode 100755 new mode 100644 similarity index 90% rename from test/theme/styles/web/sass/core/base/mixins/_spacing.scss rename to test/themesource/atlas_core/web/core/base/mixins/_spacing.scss index db1d055..ee365fa --- a/test/theme/styles/web/sass/core/base/mixins/_spacing.scss +++ b/test/themesource/atlas_core/web/core/base/mixins/_spacing.scss @@ -6,11 +6,11 @@ // @mixin get-responsive-spacing-large($type: padding, $direction: all, $is_important: false) { - $suffix: ''; - $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler) + $suffix: ""; + $dash: "-"; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler) @if $is_important != false { - $suffix: ' !important'; + $suffix: " !important"; } @if $direction==all { @media (max-width: $screen-sm-max) { @@ -36,11 +36,11 @@ } @mixin get-responsive-spacing-medium($type: padding, $direction: all, $is_important: false) { - $suffix: ''; - $dash: '-'; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler) + $suffix: ""; + $dash: "-"; // Otherwise it will be interpreted as a minus symbol. Needed for the Gonzales PE version: 3.4.7 compiler (used by the Webmodeler) @if $is_important != false { - $suffix: ' !important'; + $suffix: " !important"; } @if $direction==all { @media (max-width: $screen-sm-max) { diff --git a/test/themesource/atlas_core/web/core/helpers/_background.scss b/test/themesource/atlas_core/web/core/helpers/_background.scss new file mode 100644 index 0000000..9f75784 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_background.scss @@ -0,0 +1,188 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin background-helpers() { + /* ========================================================================== + Background + + Different background components, all managed by variables + ========================================================================== */ + + .background-main { + background-color: $bg-color !important; + } + + //Brand variations + + .background-primary { + background-color: $brand-primary !important; + } + + .background-primary-darker { + background-color: $color-primary-darker !important; + } + + .background-primary.background-dark, + .background-primary-dark { + background-color: $color-primary-dark !important; + } + + .background-primary.background-light, + .background-primary-light { + background-color: $color-primary-light !important; + } + + .background-primary-lighter { + background-color: $color-primary-lighter !important; + } + + .background-secondary { + background-color: $bg-color-secondary !important; + } + + .background-secondary.background-light { + background-color: $bg-color-secondary !important; + } + + .background-secondary.background-dark { + background-color: $bg-color-secondary !important; + } + + .background-brand-gradient { + background-image: $brand-gradient !important; + } + + //Semantic variations + + .background-success { + background-color: $brand-success !important; + } + + .background-success-darker { + background-color: $color-success-darker !important; + } + + .background-success.background-dark, + .background-success-dark { + background-color: $color-success-dark !important; + } + + .background-success.background-light, + .background-success-light { + background-color: $color-success-light !important; + } + + .background-success-lighter { + background-color: $color-success-lighter !important; + } + + .background-warning { + background-color: $brand-warning !important; + } + + .background-warning-darker { + background-color: $color-warning-darker !important; + } + + .background-warning.background-dark, + .background-warning-dark { + background-color: $color-warning-dark !important; + } + + .background-warning.background-light, + .background-warning-light { + background-color: $color-warning-light !important; + } + + .background-warning-lighter { + background-color: $color-warning-lighter !important; + } + + .background-danger { + background-color: $brand-danger !important; + } + + .background-danger-darker { + background-color: $color-danger-darker !important; + } + + .background-danger.background-dark, + .background-danger-dark { + background-color: $color-danger-dark !important; + } + + .background-danger.background-light, + .background-danger-light { + background-color: $color-danger-light !important; + } + + .background-danger-lighter { + background-color: $color-danger-lighter !important; + } + + //Bootstrap variations + + .background-default { + background-color: $brand-default !important; + } + + .background-default-darker { + background-color: $color-default-darker !important; + } + + .background-default-dark { + background-color: $color-default-dark !important; + } + + .background-default-light { + background-color: $color-default-light !important; + } + + .background-default-lighter { + background-color: $color-default-lighter !important; + } + + .background-inverse { + background-color: $brand-inverse !important; + } + + .background-inverse-darker { + background-color: $color-inverse-darker !important; + } + + .background-inverse-dark { + background-color: $color-inverse-dark !important; + } + + .background-inverse-light { + background-color: $color-inverse-light !important; + } + + .background-inverse-lighter { + background-color: $color-inverse-lighter !important; + } + + .background-info { + background-color: $brand-info !important; + } + + .background-info-darker { + background-color: $color-info-darker !important; + } + + .background-info-dark { + background-color: $color-info-dark !important; + } + + .background-info-light { + background-color: $color-info-light !important; + } + + .background-info-lighter { + background-color: $color-info-lighter !important; + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_badge-button.scss b/test/themesource/atlas_core/web/core/helpers/_badge-button.scss new file mode 100644 index 0000000..f08728d --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_badge-button.scss @@ -0,0 +1,103 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin badge-button-helpers() { + /* ========================================================================== + Badge button + + Different background components, all managed by variables + ========================================================================== */ + + //Badge button color variation + .btn-secondary, + .btn-default { + .badge { + color: $btn-default-bg; + background-color: $btn-primary-bg; + } + } + + .btn-success { + .badge { + color: $btn-success-bg; + } + } + + .btn-warning { + .badge { + color: $btn-warning-bg; + } + } + + .btn-danger { + .badge { + color: $btn-danger-bg; + } + } + + //Badge button bordered variation + + .btn-bordered.btn-primary { + .badge { + background: $btn-primary-bg; + color: $btn-primary-color; + } + + &:hover, + &:focus { + .badge { + background-color: $btn-primary-color; + color: $btn-primary-bg; + } + } + } + + .btn-bordered.btn-success { + .badge { + background: $btn-success-bg; + color: $btn-success-color; + } + + &:hover, + &:focus { + .badge { + background-color: $btn-success-color; + color: $btn-success-bg; + } + } + } + + .btn-bordered.btn-warning { + .badge { + background: $btn-warning-bg; + color: $btn-warning-color; + } + + &:hover, + &:focus { + .badge { + background-color: $btn-warning-color; + color: $btn-warning-bg; + } + } + } + + .btn-bordered.btn-danger { + .badge { + background: $btn-danger-bg; + color: $btn-danger-color; + } + + &:hover, + &:focus { + .badge { + background-color: $btn-danger-color; + color: $btn-danger-bg; + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_button.scss b/test/themesource/atlas_core/web/core/helpers/_button.scss new file mode 100644 index 0000000..d740a05 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_button.scss @@ -0,0 +1,126 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin button-helpers() { + /* ========================================================================== + Button + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Color variations + .btn, + .btn-default { + @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border-color, $btn-default-bg-hover); + } + + .btn-primary { + @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color, $btn-primary-bg-hover); + } + + .btn-inverse { + @include button-variant($btn-inverse-color, $btn-inverse-bg, $btn-inverse-border-color, $btn-inverse-bg-hover); + } + + .btn-success { + @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color, $btn-success-bg-hover); + } + + .btn-info { + @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color, $btn-info-bg-hover); + } + + .btn-warning { + @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color, $btn-warning-bg-hover); + } + + .btn-danger { + @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color, $btn-danger-bg-hover); + } + + // Button Sizes + .btn-lg { + font-size: $font-size-large; + + img { + height: calc(#{$font-size-small} + 4px); + } + } + + .btn-sm { + font-size: $font-size-small; + + img { + height: calc(#{$font-size-small} + 4px); + } + } + + // Button Image + .btn-image { + padding: 0; + vertical-align: middle; + border-style: none; + background-color: transparent; + + img { + display: block; // or else the button doesn't get a width + height: auto; // Image set height + } + + &:hover, + &:focus { + background-color: transparent; + } + } + + // Icon buttons + .btn-icon { + & > img, + & > .glyphicon { + margin: 0; + } + } + + .btn-icon-right { + display: inline-flex; + flex-direction: row-reverse; + align-items: center; + + & > img, + & > .glyphicon { + top: 0; + margin-left: 4px; + } + } + + .btn-icon-top { + padding-right: 0; + padding-left: 0; + + & > img, + & > .glyphicon { + display: block; + margin: 0 0 4px 0; + } + } + + .btn-icon-only { + @extend .btn-icon; + padding: 0; + color: $btn-default-icon-color; + border: none; + } + + .btn-block { + display: block; + width: 100%; + } + + .btn-block + .btn-block { + margin-top: 4px; + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_data-grid.scss b/test/themesource/atlas_core/web/core/helpers/_data-grid.scss new file mode 100644 index 0000000..f81e316 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_data-grid.scss @@ -0,0 +1,164 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin data-grid-helpers() { + /* ========================================================================== + Data grid default + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Striped style + .datagrid-striped.mx-datagrid { + table { + th { + border-width: 0; + } + + tbody tr { + td { + border-top-width: 0; + } + + &:nth-child(odd) td { + background-color: $grid-bg-striped; + } + } + } + } + + // Bordered style + .datagrid-bordered.mx-datagrid { + table { + border: 1px solid; + + th { + border: 1px solid $grid-border-color; + } + + tbody tr { + td { + border: 1px solid $grid-border-color; + } + } + } + + tfoot { + > tr > th { + border-width: 0; + background-color: $grid-footer-bg; + } + + > tr > td { + border-width: 1px; + } + } + } + + // Transparent style so you can see the background + .datagrid-transparent.mx-datagrid { + table { + background-color: transparent; + + tbody tr { + &:nth-of-type(odd) { + background-color: transparent; + } + + td { + background-color: transparent; + } + } + } + } + + // Hover style activated + .datagrid-hover.mx-datagrid { + table { + tbody tr { + &:hover td { + background-color: $grid-bg-hover !important; + } + + &.selected:hover td { + background-color: $grid-bg-selected-hover !important; + } + } + } + } + + // Datagrid Row Sizes + .datagrid-lg.mx-datagrid { + table { + th { + padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) + ($grid-padding-left * 2); + } + + tbody tr { + td { + padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) + ($grid-padding-left * 2); + } + } + } + } + + .datagrid-sm.mx-datagrid { + table { + th { + padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) + ($grid-padding-left / 2); + } + + tbody tr { + td { + padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) + ($grid-padding-left/ 2); + } + } + } + } + + // Datagrid Full Search + // Default Mendix Datagrid Widget with adjusted search field. Only 1 search field is allowed + .datagrid-fullsearch.mx-grid { + .mx-grid-search-button { + @extend .btn-primary; + } + + .mx-grid-reset-button { + display: none; + } + + .mx-grid-search-item { + display: block; + } + + .mx-grid-search-label { + display: none; + } + + .mx-grid-searchbar { + .mx-grid-search-controls { + position: absolute; + right: 0; + } + + .mx-grid-search-input { + width: 80%; + padding-left: 0; + + .btn, + .form-control { + height: 35px; + font-size: 12px; + } + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_group-box.scss b/test/themesource/atlas_core/web/core/helpers/_group-box.scss new file mode 100644 index 0000000..76bfbdf --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_group-box.scss @@ -0,0 +1,161 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin group-box-helpers() { + /* ========================================================================== + Group box + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Color variations + .groupbox-secondary, + .groupbox-default { + @include groupbox-variant($groupbox-default-color, $groupbox-default-bg); + } + + .groupbox-primary { + @include groupbox-variant($groupbox-primary-color, $groupbox-primary-bg); + } + + // Success appears as green + .groupbox-success { + @include groupbox-variant($groupbox-success-color, $groupbox-success-bg); + } + + // Warning appears as orange + .groupbox-warning { + @include groupbox-variant($groupbox-warning-color, $groupbox-warning-bg); + } + + // Danger and error appear as red + .groupbox-danger { + @include groupbox-variant($groupbox-danger-color, $groupbox-danger-bg); + } + + .groupbox-transparent { + > .mx-groupbox-header { + padding: $spacing-small * 1.5 0; + color: $gray-darker; + border-style: none; + background: transparent; + font-weight: $font-weight-semibold; + } + + .mx-groupbox-body { + padding: $spacing-small 0; + border-radius: 0; + border: 0; + border-bottom: 1px solid $groupbox-default-bg; + background-color: transparent; + } + + .mx-groupbox-collapse-icon { + color: $brand-primary; + } + } + + // Header options + .groupbox-h1 > .mx-groupbox-header { + font-size: $font-size-h1; + } + + .groupbox-h2 > .mx-groupbox-header { + font-size: $font-size-h2; + } + + .groupbox-h3 > .mx-groupbox-header { + font-size: $font-size-h3; + } + + .groupbox-h4 > .mx-groupbox-header { + font-size: $font-size-h4; + } + + .groupbox-h5 > .mx-groupbox-header { + font-size: $font-size-h5; + } + + .groupbox-h6 > .mx-groupbox-header { + font-size: $font-size-h6; + } + + // Callout Look and Feel + .groupbox-callout { + > .mx-groupbox-header, + > .mx-groupbox-body { + border: 0; + background-color: $callout-primary-bg; + } + + > .mx-groupbox-header { + color: $callout-primary-color; + } + + .mx-groupbox-header + .mx-groupbox-body { + padding-top: 0; + } + } + + .groupbox-success.groupbox-callout { + > .mx-groupbox-header, + > .mx-groupbox-body { + background-color: $callout-success-bg; + } + + > .mx-groupbox-header { + color: $callout-success-color; + } + } + + .groupbox-warning.groupbox-callout { + > .mx-groupbox-header, + > .mx-groupbox-body { + background-color: $callout-warning-bg; + } + + > .mx-groupbox-header { + color: $callout-warning-color; + } + } + + .groupbox-danger.groupbox-callout { + > .mx-groupbox-header, + > .mx-groupbox-body { + background-color: $callout-danger-bg; + } + + > .mx-groupbox-header { + color: $callout-danger-color; + } + } + + //Bootstrap variations + + .groupbox-info { + @include groupbox-variant($groupbox-info-color, $groupbox-info-bg); + } + + .groupbox-inverse { + @include groupbox-variant($groupbox-inverse-color, $groupbox-inverse-bg); + } + + .groupbox-white { + @include groupbox-variant($groupbox-white-color, $groupbox-white-bg); + } + + .groupbox-info.groupbox-callout { + > .mx-groupbox-header, + > .mx-groupbox-body { + background-color: $callout-info-bg; + } + + > .mx-groupbox-header { + color: $callout-info-color; + } + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_helper-classes.scss b/test/themesource/atlas_core/web/core/helpers/_helper-classes.scss new file mode 100644 index 0000000..28b73e1 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_helper-classes.scss @@ -0,0 +1,414 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin helper-classes() { + /* ========================================================================== + Helper + + Default Mendix helpers + ========================================================================== */ + $important-helpers-value: if($important-helpers, " !important", ""); + + // Display properties + .d-none { + display: none #{$important-helpers-value}; + } + + .d-flex { + display: flex #{$important-helpers-value}; + } + + .d-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + + .d-inline { + display: inline #{$important-helpers-value}; + } + + .d-inline-block { + display: inline-block #{$important-helpers-value}; + } + + .show, + .d-block { + display: block #{$important-helpers-value}; + } + + .table, + .d-table { + display: table #{$important-helpers-value}; + } + + .table-row, + .d-table-row { + display: table-row #{$important-helpers-value}; + } + + .table-cell, + .d-table-cell { + display: table-cell #{$important-helpers-value}; + } + + .hide, + .hidden { + display: none #{$important-helpers-value}; + visibility: hidden #{$important-helpers-value}; + } + + .invisible { + visibility: hidden #{$important-helpers-value}; + } + + .display-ie8-only:not([attr*=""]) { + display: none #{$important-helpers-value}; + padding: 0 #{$important-helpers-value}; + } + + .list-nostyle { + ul { + margin: 0 #{$important-helpers-value}; + padding: 0 #{$important-helpers-value}; + + li { + list-style-type: none #{$important-helpers-value}; + } + } + } + + .nowrap, + .nowrap * { + overflow: hidden #{$important-helpers-value}; + // Star for inside an element, IE8 span > a + white-space: nowrap #{$important-helpers-value}; + text-overflow: ellipsis #{$important-helpers-value}; + } + + // Render DIV as Table Cells + .table { + display: table #{$important-helpers-value}; + } + + .table-row { + display: table-row #{$important-helpers-value}; + } + + .table-cell { + display: table-cell #{$important-helpers-value}; + } + + // Quick floats + .pull-left { + float: left #{$important-helpers-value}; + } + + .pull-right { + float: right #{$important-helpers-value}; + } + + // Align options + .align-top { + vertical-align: top #{$important-helpers-value}; + } + + .align-middle { + vertical-align: middle #{$important-helpers-value}; + } + + .align-bottom { + vertical-align: bottom #{$important-helpers-value}; + } + + // Flex alignments + .row-left { + display: flex #{$important-helpers-value}; + align-items: center #{$important-helpers-value}; + flex-flow: row #{$important-helpers-value}; + justify-content: flex-start #{$important-helpers-value}; + } + + .row-center { + display: flex #{$important-helpers-value}; + align-items: center #{$important-helpers-value}; + flex-flow: row #{$important-helpers-value}; + justify-content: center #{$important-helpers-value}; + } + + .row-right { + display: flex #{$important-helpers-value}; + align-items: center #{$important-helpers-value}; + flex-flow: row #{$important-helpers-value}; + justify-content: flex-end #{$important-helpers-value}; + } + + .col-left { + display: flex #{$important-helpers-value}; + align-items: flex-start #{$important-helpers-value}; + flex-direction: column #{$important-helpers-value}; + justify-content: center #{$important-helpers-value}; + } + + .col-center { + display: flex #{$important-helpers-value}; + align-items: center #{$important-helpers-value}; + flex-direction: column #{$important-helpers-value}; + justify-content: center #{$important-helpers-value}; + } + + .col-right { + display: flex #{$important-helpers-value}; + align-items: flex-end #{$important-helpers-value}; + flex-direction: column #{$important-helpers-value}; + justify-content: center #{$important-helpers-value}; + } + + // Media + @media (max-width: $screen-sm-max) { + .hide-phone { + display: none #{$important-helpers-value}; + } + } + + @media (min-width: $screen-md) and (max-width: $screen-md-max) { + .hide-tablet { + display: none #{$important-helpers-value}; + } + } + + @media (min-width: $screen-lg) { + .hide-desktop { + display: none #{$important-helpers-value}; + } + } + + @media (max-width: $screen-xs-max) { + .hide-xs, + .hidden-xs, + .d-xs-none { + display: none #{$important-helpers-value}; + } + .d-xs-flex { + display: flex #{$important-helpers-value}; + } + .d-xs-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + .d-xs-inline { + display: inline #{$important-helpers-value}; + } + .d-xs-inline-block { + display: inline-block #{$important-helpers-value}; + } + .d-xs-block { + display: block #{$important-helpers-value}; + } + .d-xs-table { + display: table #{$important-helpers-value}; + } + .d-xs-table-row { + display: table-row #{$important-helpers-value}; + } + .d-xs-table-cell { + display: table-cell #{$important-helpers-value}; + } + } + + @media (min-width: $screen-sm) and (max-width: $screen-sm-max) { + .hide-sm, + .hidden-sm, + .d-sm-none { + display: none #{$important-helpers-value}; + } + .d-sm-flex { + display: flex #{$important-helpers-value}; + } + .d-sm-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + .d-sm-inline { + display: inline #{$important-helpers-value}; + } + .d-sm-inline-block { + display: inline-block #{$important-helpers-value}; + } + .d-sm-block { + display: block #{$important-helpers-value}; + } + .d-sm-table { + display: table #{$important-helpers-value}; + } + .d-sm-table-row { + display: table-row #{$important-helpers-value}; + } + .d-sm-table-cell { + display: table-cell #{$important-helpers-value}; + } + } + + @media (min-width: $screen-md) and (max-width: $screen-md-max) { + .hide-md, + .hidden-md, + .d-md-none { + display: none #{$important-helpers-value}; + } + .d-md-flex { + display: flex #{$important-helpers-value}; + } + .d-md-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + .d-md-inline { + display: inline #{$important-helpers-value}; + } + .d-md-inline-block { + display: inline-block #{$important-helpers-value}; + } + .d-md-block { + display: block #{$important-helpers-value}; + } + .d-md-table { + display: table #{$important-helpers-value}; + } + .d-md-table-row { + display: table-row #{$important-helpers-value}; + } + .d-md-table-cell { + display: table-cell #{$important-helpers-value}; + } + } + + @media (min-width: $screen-lg) and (max-width: $screen-xl) { + .hide-lg, + .hidden-lg, + .d-lg-none { + display: none #{$important-helpers-value}; + } + .d-lg-flex { + display: flex #{$important-helpers-value}; + } + .d-lg-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + .d-lg-inline { + display: inline #{$important-helpers-value}; + } + .d-lg-inline-block { + display: inline-block #{$important-helpers-value}; + } + .d-lg-block { + display: block #{$important-helpers-value}; + } + .d-lg-table { + display: table #{$important-helpers-value}; + } + .d-lg-table-row { + display: table-row #{$important-helpers-value}; + } + .d-lg-table-cell { + display: table-cell #{$important-helpers-value}; + } + } + + @media (min-width: $screen-xl) { + .hide-xl, + .hidden-xl, + .d-xl-none { + display: none #{$important-helpers-value}; + } + .d-xl-flex { + display: flex #{$important-helpers-value}; + } + .d-xl-inline-flex { + display: inline-flex #{$important-helpers-value}; + } + .d-xl-inline { + display: inline #{$important-helpers-value}; + } + .d-xl-inline-block { + display: inline-block #{$important-helpers-value}; + } + .d-xl-block { + display: block #{$important-helpers-value}; + } + .d-xl-table { + display: table #{$important-helpers-value}; + } + .d-xl-table-row { + display: table-row #{$important-helpers-value}; + } + .d-xl-table-cell { + display: table-cell #{$important-helpers-value}; + } + } + + //Box-shadow + + .shadow { + box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05) #{$important-helpers-value}; + } + + //Height helpers + + .h-25 { + height: 25% #{$important-helpers-value}; + } + + .h-50 { + height: 50% #{$important-helpers-value}; + } + + .h-75 { + height: 75% #{$important-helpers-value}; + } + + .h-100 { + height: 100% #{$important-helpers-value}; + } + + //Width helpers + + .w-25 { + width: 25% #{$important-helpers-value}; + } + + .w-50 { + width: 50% #{$important-helpers-value}; + } + + .w-75 { + width: 75% #{$important-helpers-value}; + } + + .w-100 { + width: 100% #{$important-helpers-value}; + } + + //Border helpers + .border { + border: 1px solid $border-color-default #{$important-helpers-value}; + } + + .border-top { + border-top: 1px solid $border-color-default #{$important-helpers-value}; + } + + .border-bottom { + border-bottom: 1px solid $border-color-default #{$important-helpers-value}; + } + + .border-left { + border-left: 1px solid $border-color-default #{$important-helpers-value}; + } + + .border-right { + border-right: 1px solid $border-color-default #{$important-helpers-value}; + } + + .border-rounded { + border-radius: $border-radius-default #{$important-helpers-value}; + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_image.scss b/test/themesource/atlas_core/web/core/helpers/_image.scss new file mode 100644 index 0000000..cc2bbc1 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_image.scss @@ -0,0 +1,78 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin image-helpers() { + /* ========================================================================== + Image + + Default Mendix image widgets + ========================================================================== */ + + img.img-rounded, + .img-rounded img { + border-radius: 6px; + } + + img.img-thumbnail, + .img-thumbnail img { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + transition: all 0.2s ease-in-out; + border: 1px solid $brand-default; + border-radius: 4px; + background-color: #ffffff; + line-height: $line-height-base; + } + + img.img-circle, + .img-circle img { + border-radius: 50%; + } + + img.img-auto, + .img-auto img { + width: auto !important; + max-width: 100% !important; + height: auto !important; + max-height: 100% !important; + } + + img.img-center, + .img-center img { + margin-right: auto !important; + margin-left: auto !important; + } + + img.img-icon { + width: 20px; + height: 20px; + padding: 2px; + border-radius: 50%; + } + + img.img-fill, + .img-fill img { + object-fit: fill; + } + + img.img-contain, + .img-contain img { + object-fit: contain; + } + + img.img-cover, + .img-cover img { + object-fit: cover; + } + + img.img-scale-down, + .img-scale-down img { + object-fit: scale-down; + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_label.scss b/test/themesource/atlas_core/web/core/helpers/_label.scss new file mode 100644 index 0000000..02663f0 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_label.scss @@ -0,0 +1,52 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin label-helpers() { + /* ========================================================================== + Label + + //== Design Properties + //## Helper classes to change the look and feel of the component including + badge widget + ========================================================================== */ + // Color variations + .label-secondary, + .label-default { + color: $label-default-color; + background-color: $label-default-bg; + } + + .label-primary { + color: $label-primary-color; + background-color: $label-primary-bg; + } + + .label-success { + color: $label-success-color; + background-color: $label-success-bg; + } + + .label-inverse { + color: $label-inverse-color; + background-color: $label-inverse-bg; + } + + .label-info { + color: $label-info-color; + background-color: $label-info-bg; + } + + .label-warning { + color: $label-warning-color; + background-color: $label-warning-bg; + } + + .label-danger { + color: $label-danger-color; + background-color: $label-danger-bg; + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_list-view.scss b/test/themesource/atlas_core/web/core/helpers/_list-view.scss new file mode 100644 index 0000000..9918f42 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_list-view.scss @@ -0,0 +1,320 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin list-view-helpers() { + /* ========================================================================== + List view + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + // List items lined + .listview-lined.mx-listview { + & > ul > li { + border-top: 1px solid $grid-border-color; + + &:first-child { + border-top: 1px solid $grid-border-color; + } + + &:last-child { + border-bottom: 1px solid $grid-border-color; + } + } + } + + //List items Bordered + .listview-bordered.mx-listview { + & > ul > li { + border: 1px solid $grid-border-color; + border-top: 0; + + &:first-child { + border-top: 1px solid $grid-border-color; + } + + &:last-child { + } + } + } + + // List items striped + .listview-striped.mx-listview { + & > ul > li:nth-child(2n + 1) { + background-color: $grid-bg-striped; + } + } + + // Items as seperated blocks + .listview-seperated.mx-listview { + & > ul > li { + margin-bottom: $spacing-medium; + border: 1px solid $grid-border-color; + border-radius: $border-radius-default; + } + } + + // Remove all styling - deprecated + .listview-stylingless.mx-listview { + & > ul > li { + padding: unset; + cursor: default; + border: unset; + background-color: transparent; + + &:hover, + &:focus, + &:active { + background-color: transparent; + } + + &.selected { + background-color: transparent !important; + + &:hover, + &:focus, + &:active { + background-color: transparent !important; + } + } + } + } + + // Hover style activated + .listview-hover.mx-listview { + & > ul > li { + cursor: pointer; + + &:hover, + &:focus, + &:active { + background-color: $grid-bg-hover; + } + + &.selected { + &:hover, + &:focus, + &:active { + background-color: $grid-bg-selected-hover; + } + } + } + } + + // Row Sizes + + .listview-sm.mx-listview { + & > ul > li { + padding: $spacing-small; + } + } + + .listview-lg.mx-listview { + & > ul > li { + padding: $spacing-large; + } + } + + // Bootstrap columns + .mx-listview[class*="lv-col"] { + overflow: hidden; // For if it is not in a layout, to prevent scrollbars + & > ul { + display: flex; // normal a table + flex-wrap: wrap; + margin-right: -1 * $gutter-size; + margin-left: -1 * $gutter-size; + + &::before, + &::after { + // clearfix + display: table; + clear: both; + content: " "; + } + + & > li { + // bootstrap col + position: relative; + min-height: 1px; + padding-right: $gutter-size; + padding-left: $gutter-size; + border: 0; + @media (max-width: $screen-md-max) { + width: 100% !important; + } + + & > .mx-dataview { + overflow: hidden; + } + } + } + + &.lv-col-xs-12 > ul > li { + width: 100% !important; + } + + &.lv-col-xs-11 > ul > li { + width: 91.66666667% !important; + } + + &.lv-col-xs-10 > ul > li { + width: 83.33333333% !important; + } + + &.lv-col-xs-9 > ul > li { + width: 75% !important; + } + + &.lv-col-xs-8 > ul > li { + width: 66.66666667% !important; + } + + &.lv-col-xs-7 > ul > li { + width: 58.33333333% !important; + } + + &.lv-col-xs-6 > ul > li { + width: 50% !important; + } + + &.lv-col-xs-5 > ul > li { + width: 41.66666667% !important; + } + + &.lv-col-xs-4 > ul > li { + width: 33.33333333% !important; + } + + &.lv-col-xs-3 > ul > li { + width: 25% !important; + } + + &.lv-col-xs-2 > ul > li { + width: 16.66666667% !important; + } + + &.lv-col-xs-1 > ul > li { + width: 8.33333333% !important; + } + + @media (min-width: $screen-md) { + &.lv-col-sm-12 > ul > li { + width: 100% !important; + } + &.lv-col-sm-11 > ul > li { + width: 91.66666667% !important; + } + &.lv-col-sm-10 > ul > li { + width: 83.33333333% !important; + } + &.lv-col-sm-9 > ul > li { + width: 75% !important; + } + &.lv-col-sm-8 > ul > li { + width: 66.66666667% !important; + } + &.lv-col-sm-7 > ul > li { + width: 58.33333333% !important; + } + &.lv-col-sm-6 > ul > li { + width: 50% !important; + } + &.lv-col-sm-5 > ul > li { + width: 41.66666667% !important; + } + &.lv-col-sm-4 > ul > li { + width: 33.33333333% !important; + } + &.lv-col-sm-3 > ul > li { + width: 25% !important; + } + &.lv-col-sm-2 > ul > li { + width: 16.66666667% !important; + } + &.lv-col-sm-1 > ul > li { + width: 8.33333333% !important; + } + } + @media (min-width: $screen-lg) { + &.lv-col-md-12 > ul > li { + width: 100% !important; + } + &.lv-col-md-11 > ul > li { + width: 91.66666667% !important; + } + &.lv-col-md-10 > ul > li { + width: 83.33333333% !important; + } + &.lv-col-md-9 > ul > li { + width: 75% !important; + } + &.lv-col-md-8 > ul > li { + width: 66.66666667% !important; + } + &.lv-col-md-7 > ul > li { + width: 58.33333333% !important; + } + &.lv-col-md-6 > ul > li { + width: 50% !important; + } + &.lv-col-md-5 > ul > li { + width: 41.66666667% !important; + } + &.lv-col-md-4 > ul > li { + width: 33.33333333% !important; + } + &.lv-col-md-3 > ul > li { + width: 25% !important; + } + &.lv-col-md-2 > ul > li { + width: 16.66666667% !important; + } + &.lv-col-md-1 > ul > li { + width: 16.66666667% !important; + } + } + @media (min-width: $screen-xl) { + &.lv-col-lg-12 > ul > li { + width: 100% !important; + } + &.lv-col-lg-11 > ul > li { + width: 91.66666667% !important; + } + &.lv-col-lg-10 > ul > li { + width: 83.33333333% !important; + } + &.lv-col-lg-9 > ul > li { + width: 75% !important; + } + &.lv-col-lg-8 > ul > li { + width: 66.66666667% !important; + } + &.lv-col-lg-7 > ul > li { + width: 58.33333333% !important; + } + &.lv-col-lg-6 > ul > li { + width: 50% !important; + } + &.lv-col-lg-5 > ul > li { + width: 41.66666667% !important; + } + &.lv-col-lg-4 > ul > li { + width: 33.33333333% !important; + } + &.lv-col-lg-3 > ul > li { + width: 25% !important; + } + &.lv-col-lg-2 > ul > li { + width: 16.66666667% !important; + } + &.lv-col-lg-1 > ul > li { + width: 8.33333333% !important; + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_navigation-bar.scss b/test/themesource/atlas_core/web/core/helpers/_navigation-bar.scss new file mode 100644 index 0000000..71047bb --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_navigation-bar.scss @@ -0,0 +1,219 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin navigation-bar-helpers() { + /* ========================================================================== + Navigation + + //== Regions + //## Behavior in the different regions + ========================================================================== */ + // When used in topbar + .region-topbar { + .mx-navbar { + background-color: $navtopbar-bg; + min-height: auto; + ul.nav { + > .mx-navbar-item { + margin-left: $spacing-small; + } + /* Navigation item */ + & > li.mx-navbar-item > a { + color: $navtopbar-color; + font-size: $navtopbar-font-size; + line-height: 1.2; + /* Dropdown arrow */ + .caret { + border-top-color: $navtopbar-color; + border-bottom-color: $navtopbar-color; + } + &:hover, + &:focus, + &.active { + color: $navtopbar-color-hover; + background-color: $navtopbar-bg-hover; + .caret { + border-top-color: $navtopbar-color-active; + border-bottom-color: $navtopbar-color-active; + } + } + &.active { + color: $navtopbar-color-active; + background-color: $navtopbar-bg-active; + } + + /* Dropdown */ + .mx-navbar-submenu::before { + border-color: transparent transparent $navtopbar-border-color transparent; + } + + // Image + .glyphicon { + font-size: $navtopbar-glyph-size; + } + } + + /* When hovering or the dropdown is open */ + & > .mx-navbar-item > a:hover, + & > .mx-navbar-item > a:focus, + & > .mx-navbar-item.active a, + & > .mx-navbar-item.open > a, + & > .mx-navbar-item.open > a:hover, + & > .mx-navbar-item.open > a:focus { + color: $navtopbar-color-hover; + background-color: $navtopbar-bg-hover; + .caret { + border-top-color: $navtopbar-color-hover; + border-bottom-color: $navtopbar-color-hover; + } + } + + & > .mx-navbar-item.open .dropdown-menu { + border-radius: $border-radius-default; + background-color: $navtopbar-sub-bg; + padding: $spacing-small $spacing-small 0; + margin: 0; + border: 0; + box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354); + & > li.mx-navbar-subitem a { + padding: $spacing-small; + color: $navtopbar-color; + border-radius: $border-radius-default; + margin-bottom: $spacing-small; + line-height: 1.2; + &:hover, + &:focus { + color: $navtopbar-color; + background-color: $navtopbar-sub-bg-hover; + } + } + } + & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { + color: $navtopbar-sub-color-active; + background-color: $navtopbar-sub-bg-active; + .caret { + border-top-color: $navtopbar-sub-color-active; + border-bottom-color: $navtopbar-sub-color-active; + } + } + } + @media (max-width: $screen-md) { + ul.nav > li.mx-navbar-item > a { + } + .mx-navbar-item.open .dropdown-menu { + background-color: $navtopbar-sub-bg; + & > li.mx-navbar-subitem > a { + color: $navtopbar-sub-color; + font-size: $navtopbar-sub-font-size; + &:hover, + &:focus { + color: $navtopbar-sub-color-hover; + background-color: $navtopbar-sub-bg-hover; + } + &.active { + color: $navtopbar-sub-color-active; + background-color: $navtopbar-sub-bg-active; + } + } + } + } + } + } + + // When used in sidebar + .region-sidebar { + .mx-navbar { + background-color: $navsidebar-bg; + ul.nav { + /* Navigation item */ + & > li.mx-navbar-item > a { + color: $navsidebar-color; + font-size: $navsidebar-font-size; + + /* Dropdown arrow */ + .caret { + border-top-color: $navsidebar-color; + border-bottom-color: $navsidebar-color; + } + &:hover, + &:focus, + &.active { + color: $navsidebar-color-hover; + background-color: $navsidebar-bg-hover; + .caret { + border-top-color: $navsidebar-color-active; + border-bottom-color: $navsidebar-color-active; + } + } + &.active { + color: $navsidebar-color-active; + background-color: $navsidebar-bg-active; + } + + /* Dropdown */ + .mx-navbar-submenu::before { + border-color: transparent transparent $navsidebar-border-color transparent; + } + + // Image + .glyphicon { + font-size: $navsidebar-glyph-size; + } + } + + /* When hovering or the dropdown is open */ + & > .mx-navbar-item > a:hover, + & > .mx-navbar-item > a:focus, + & > .mx-navbar-item.active a, + & > .mx-navbar-item.open > a, + & > .mx-navbar-item.open > a:hover, + & > .mx-navbar-item.open > a:focus { + color: $navsidebar-color-hover; + background-color: $navsidebar-bg-hover; + .caret { + border-top-color: $navsidebar-color-hover; + border-bottom-color: $navsidebar-color-hover; + } + } + & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { + color: $navsidebar-sub-color-active; + background-color: $navsidebar-sub-bg-active; + .caret { + border-top-color: $navsidebar-sub-color-active; + border-bottom-color: $navsidebar-sub-color-active; + } + } + } + @media (max-width: $screen-md) { + ul.nav > li.mx-navbar-item > a { + } + .mx-navbar-item.open .dropdown-menu { + background-color: $navtopbar-sub-bg; + & > li.mx-navbar-subitem > a { + color: $navsidebar-sub-color; + font-size: $navsidebar-sub-font-size; + &:hover, + &:focus { + color: $navsidebar-sub-color-hover; + background-color: $navsidebar-sub-bg-hover; + } + &.active { + color: $navsidebar-sub-color-active; + background-color: $navsidebar-sub-bg-active; + } + } + } + } + } + } + + .hide-icons.mx-navbar { + .glyphicon { + display: none; + } + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_navigation-tree.scss b/test/themesource/atlas_core/web/core/helpers/_navigation-tree.scss new file mode 100644 index 0000000..cc32c56 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_navigation-tree.scss @@ -0,0 +1,173 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin navigation-tree-helpers() { + /* ========================================================================== + Navigation + + //== Regions + //## Behavior in the different regions + ========================================================================== */ + // When used in topbar + .region-topbar { + .mx-navigationtree { + background-color: $navtopbar-bg; + .navbar-inner > ul { + & > li { + & > a { + color: $navtopbar-color; + border-color: $navtopbar-border-color; + background-color: $navtopbar-bg; + font-size: $navtopbar-font-size; + .caret { + border-top-color: $navtopbar-color; + border-bottom-color: $navtopbar-color; + } + + .glyphicon { + font-size: $navtopbar-glyph-size; + } + } + a:hover, + a:focus, + a.active { + color: $navtopbar-color-hover; + background-color: $navtopbar-bg-hover; + .caret { + border-top-color: $navtopbar-color-active; + border-bottom-color: $navtopbar-color-active; + } + } + a.active { + color: $navtopbar-color-active; + border-left-color: $navtopbar-color-active; + background-color: $navtopbar-bg-active; + } + } + } + + /* Sub navigation item specific */ + li.mx-navigationtree-has-items { + & > ul { + background-color: $navtopbar-sub-bg; + li { + a { + color: $navtopbar-sub-color; + background-color: $navtopbar-sub-bg; + font-size: $navtopbar-sub-font-size; + &:hover, + &:focus, + &.active { + color: $navtopbar-sub-color-hover; + background-color: $navtopbar-sub-bg-hover; + } + &.active { + color: $navtopbar-sub-color-active; + background-color: $navtopbar-sub-bg-active; + } + } + } + } + } + } + } + + // When used in sidebar + .region-sidebar { + .mx-navigationtree { + background-color: $navsidebar-bg; + .navbar-inner > ul { + & > li { + & > a { + color: $navsidebar-color; + border-color: $navsidebar-border-color; + background-color: $navsidebar-bg; + font-size: $navsidebar-font-size; + .caret { + border-top-color: $navsidebar-color; + border-bottom-color: $navsidebar-color; + } + + .glyphicon { + font-size: $navsidebar-glyph-size; + } + } + a:hover, + a:focus, + a.active { + color: $navsidebar-color-hover; + background-color: $navsidebar-bg-hover; + .caret { + border-top-color: $navsidebar-color-active; + border-bottom-color: $navsidebar-color-active; + } + } + a.active { + color: $navsidebar-color-active; + border-left-color: $navsidebar-color-active; + background-color: $navsidebar-bg-active; + } + } + } + + /* Sub navigation item specific */ + li.mx-navigationtree-has-items { + & > ul { + background-color: $navsidebar-sub-bg; + li { + a { + color: $navsidebar-sub-color; + background-color: $navsidebar-sub-bg; + font-size: $navsidebar-sub-font-size; + &:hover, + &:focus, + &.active { + color: $navsidebar-sub-color-hover; + background-color: $navsidebar-sub-bg-hover; + } + &.active { + color: $navsidebar-sub-color-active; + background-color: $navsidebar-sub-bg-active; + } + } + } + } + } + } + } + + //== Design Properties + //## Helper classes to change the look and feel of the component + //-------------------------------------------------------------------------------------------------------------------// + // Content Centerd text and icons + .nav-content-center-text-icons.mx-navigationtree { + .navbar-inner ul { + a { + flex-direction: column; + justify-content: center; + .glyphicon { + margin: 0 0 5px 0; + } + } + } + } + + // Content Centerd icons only + .nav-content-center.mx-navigationtree { + .navbar-inner ul { + a { + justify-content: center; + } + } + } + + .hide-icons.mx-navigationtree { + .glyphicon { + display: none; + } + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_progress-bar.scss b/test/themesource/atlas_core/web/core/helpers/_progress-bar.scss new file mode 100644 index 0000000..b461b41 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_progress-bar.scss @@ -0,0 +1,87 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin progress-bar-helpers() { + /* ========================================================================== + Progress Bar + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + .widget-progress-bar { + width: 100%; + + .progress { + border-radius: $border-radius-default; + background-color: $bg-color; + } + } + + .progress-bar-medium .progress, + .progress-bar-medium .progress-bar { + height: 16px; + line-height: 16px; + font-size: $font-size-small; + } + + .progress-bar-small .progress, + .progress-bar-small .progress-bar { + height: 8px; + line-height: 8px; + font-size: 0px; + } + + .progress-bar-small .progress-bar > * { + // Specifically to hide custom labels. + display: none; + } + + .progress-bar-large .progress, + .progress-bar-large .progress-bar { + height: 24px; + line-height: 24px; + font-size: $font-size-default; + } + + .widget-progress-bar-clickable:hover { + cursor: pointer; + } + + .widget-progress-bar.progress-bar-primary .progress-bar { + background-color: $brand-primary; + } + + .widget-progress-bar.progress-bar-success .progress-bar { + background-color: $brand-success; + } + + .widget-progress-bar.progress-bar-warning .progress-bar { + background-color: $brand-warning; + } + + .widget-progress-bar.progress-bar-danger .progress-bar { + background-color: $brand-danger; + } + + .widget-progress-bar-alert.widget-progress-bar-text-contrast .progress-bar { + color: $color-danger-darker; + } + + .widget-progress-bar-text-contrast .progress-bar { + color: $font-color-default; + } + + .widget-progress-bar-negative { + float: right; + display: block; + } + + .widget-progress-bar > .alert { + margin-top: 24px; + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_progress-circle.scss b/test/themesource/atlas_core/web/core/helpers/_progress-circle.scss new file mode 100644 index 0000000..860bad2 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_progress-circle.scss @@ -0,0 +1,115 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin progress-circle-helpers() { + /* ========================================================================== + Progress Circle + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + //== Progress circle and label colors + .widget-progress-circle-primary { + .widget-progress-circle-path { + stroke: $brand-primary; + } + + .progressbar-text { + color: $brand-primary !important; + } + } + + .widget-progress-circle-success { + .widget-progress-circle-path { + stroke: $brand-success; + } + + .progressbar-text { + color: $brand-success !important; + } + } + + .widget-progress-circle-warning { + .widget-progress-circle-path { + stroke: $brand-warning; + } + + .progressbar-text { + color: $brand-warning !important; + } + } + + .widget-progress-circle-danger { + .widget-progress-circle-path { + stroke: $brand-danger; + } + + .progressbar-text { + color: $brand-danger !important; + } + } + + //== Sizes + .widget-progress-circle-thickness-medium { + .widget-progress-circle-trail-path, + .widget-progress-circle-path { + stroke-width: 8px; + } + } + + .widget-progress-circle-thickness-small { + .widget-progress-circle-trail-path, + .widget-progress-circle-path { + stroke-width: 4px; + } + } + + .widget-progress-circle-thickness-large { + .widget-progress-circle-trail-path, + .widget-progress-circle-path { + stroke-width: 16px; + } + } + + //== Progress label container + .progress-circle-label-container { + position: relative; + margin: 0; + + .progressbar-text { + position: absolute; + left: 50%; + top: 50%; + padding: 0px; + margin: 0px; + transform: translate(-50%, -50%); + // Original default from the `progressbar.js` library + color: rgb(85, 85, 85); + } + } + + .widget-progress-circle-clickable { + cursor: pointer; + } + + @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { + .widget-progress-circle > div { + height: 0; + padding: 0; + width: 100%; + padding-bottom: 100%; + + & > svg { + top: 0; + left: 0; + height: 100%; + position: absolute; + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_range-slider.scss b/test/themesource/atlas_core/web/core/helpers/_range-slider.scss new file mode 100644 index 0000000..34b338e --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_range-slider.scss @@ -0,0 +1,39 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin range-slider-helpers() { + /* ========================================================================== + Range Slider + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + .widget-range-slider-primary .rc-slider-track { + background-color: $brand-primary; + } + + .widget-range-slider-info .rc-slider-track { + background-color: $brand-info; + } + + .widget-range-slider-success .rc-slider-track { + background-color: $brand-success; + } + + .widget-range-slider-warning .rc-slider-track { + background-color: $brand-warning; + } + + .widget-range-slider-danger .rc-slider-track { + background-color: $brand-danger; + } + + .widget-range-slider-inverse .rc-slider-track { + background-color: $brand-inverse; + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_rating.scss b/test/themesource/atlas_core/web/core/helpers/_rating.scss new file mode 100644 index 0000000..3544a68 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_rating.scss @@ -0,0 +1,39 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin rating-helpers() { + /* ========================================================================== + Rating + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + .widget-star-rating-full-primary { + color: $brand-primary; + } + + .widget-star-rating-full-success { + color: $brand-success; + } + + .widget-star-rating-full-info { + color: $brand-info; + } + + .widget-star-rating-full-warning { + color: $brand-warning; + } + + .widget-star-rating-full-danger { + color: $brand-danger; + } + + .widget-star-rating-full-inverse { + color: $brand-inverse; + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_simple-menu-bar.scss b/test/themesource/atlas_core/web/core/helpers/_simple-menu-bar.scss new file mode 100644 index 0000000..90cd79f --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_simple-menu-bar.scss @@ -0,0 +1,45 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin simple-menu-bar-helpers() { + /* ========================================================================== + Navigation + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Center text and icons + .bottom-nav-text-icons.mx-menubar { + ul.mx-menubar-list { + li.mx-menubar-item { + flex: 1; + a { + flex-direction: column; + padding: $spacing-small $spacing-small $spacing-small/2; + line-height: normal; + font-size: $font-size-small; + .glyphicon { + display: block; + margin: 0 0 $spacing-small/2 0; + font-size: $font-size-large; + } + img { + display: block; + height: $font-size-large; + margin: 0 0 $spacing-small/2 0; + } + } + } + } + } + + .hide-icons.mx-menubar { + .glyphicon { + display: none; + } + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_slider.scss b/test/themesource/atlas_core/web/core/helpers/_slider.scss new file mode 100644 index 0000000..38a50dd --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_slider.scss @@ -0,0 +1,39 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin slider-helpers() { + /* ========================================================================== + Slider + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + + .widget-slider-primary .rc-slider-track { + background-color: $brand-primary; + } + + .widget-slider-info .rc-slider-track { + background-color: $brand-info; + } + + .widget-slider-success .rc-slider-track { + background-color: $brand-success; + } + + .widget-slider-warning .rc-slider-track { + background-color: $brand-warning; + } + + .widget-slider-danger .rc-slider-track { + background-color: $brand-danger; + } + + .widget-slider-inverse .rc-slider-track { + background-color: $brand-inverse; + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_tab-container.scss b/test/themesource/atlas_core/web/core/helpers/_tab-container.scss new file mode 100644 index 0000000..f4c99f1 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_tab-container.scss @@ -0,0 +1,202 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin tab-container-helpers() { + /* ========================================================================== + Tab container + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Style as pills + .tab-pills.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + border: 0; + + & > li { + margin-bottom: $spacing-small; + } + + & > li > a { + margin-right: $spacing-small; + color: $tabs-color; + border-radius: $border-radius-default; + background-color: $tabs-bg-pills; + + &:hover, + &:focus { + background-color: $tabs-bg-hover; + } + } + + & > li.active > a, + & > li.active > a:hover, + & > li.active > a:focus { + color: #ffffff; + border-color: $tabs-bg-active; + background-color: $tabs-bg-active; + } + } + } + + // Style with lines + .tab-lined.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + border-width: 1px; + + li { + margin-right: $spacing-large; + + & > a { + padding: $spacing-medium 0 ($spacing-medium - $tabs-lined-border-width) 0; // border is 3px + color: $tabs-color; + border: 0; + border-bottom: $tabs-lined-border-width solid transparent; + border-radius: 0; + + &:hover, + &:focus { + color: $tabs-color; + border: 0; + border-color: transparent; + background: transparent; + } + } + + &.active > a, + &.active > a:hover, + &.active > a:focus { + color: $tabs-lined-color-active; + border: 0; + border-bottom: $tabs-lined-border-width solid $tabs-lined-border-color; + background-color: transparent; + } + } + } + } + + // Justified style + // Lets your tabs take 100% of the width + .tab-justified.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + width: 100%; + border-bottom: 0; + + & > li { + flex: 1; + float: none; // reset bootstrap + margin: 0; + @media (max-width: $screen-sm-max) { + display: block; + width: 100%; + } + + & > a { + text-align: center; + } + } + } + } + + // Bordered + .tab-bordered.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + margin: 0; + } + + & > .mx-tabcontainer-content { + padding: $spacing-small; + border-width: 0 1px 1px 1px; + border-style: solid; + border-color: $tabs-border-color; + background-color: transparent; + } + } + + // Wizard + .tab-wizard.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + position: relative; + display: flex; + justify-content: space-between; + border-style: none; + + &::before { + position: absolute; + top: $spacing-medium; + display: block; + width: 100%; + height: 1px; + content: ""; + background-color: $tabs-border-color; + } + + & > li { + position: relative; + float: none; // reset bootstrap + width: 100%; + text-align: center; + + & > a { + width: ($spacing-medium * 2) + 1; + height: ($spacing-medium * 2) + 1; + margin: auto; + padding: 0; + text-align: center; + color: $brand-primary; + border: 1px solid $tabs-border-color; + border-radius: 100%; + background-color: $bg-color; + font-size: $font-size-large; + font-weight: bold; + display: flex; + justify-content: center; + align-items: center; + } + + &.active { + & > a, + & > a:hover, + & > a:focus { + color: #ffffff; + border-color: $tabs-bg-active; + background-color: $tabs-bg-active; + } + } + } + } + } + + //add tabcontainer flex classes + + .tab-center.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + display: flex; + align-items: center; + flex-flow: wrap; + justify-content: center; + } + } + + .tab-left.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + display: flex; + align-items: center; + flex-flow: wrap; + justify-content: flex-start; + } + } + + .tab-right.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + display: flex; + align-items: center; + flex-flow: wrap; + justify-content: flex-end; + } + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_table.scss b/test/themesource/atlas_core/web/core/helpers/_table.scss new file mode 100644 index 0000000..ce575a4 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_table.scss @@ -0,0 +1,177 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin table-helpers() { + /* ========================================================================== + Table + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Lined + table.table-lined.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > td { + border-width: 1px 0; + border-style: solid; + border-color: $grid-border-color; + } + } + } + } + + // Bordered + table.table-bordered.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + border-width: 1px; + border-style: solid; + border-color: $grid-border-color; + } + } + } + } + + // Makes table compact + table.table-compact.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + padding-top: 2px; + padding-bottom: 2px; + } + } + } + } + + // Tables Vertical + // Will remove unwanted paddings + table.table-vertical.mx-table { + > tbody { + // Table row + > tr { + // Table header + > th { + padding-bottom: 0; + + > label { + padding: 0; + } + + > div > label { + padding: 0; + } + } + } + } + } + + // Align content in middle + table.table-align-vertical-middle.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + vertical-align: middle; + } + } + } + } + + // Compact labels + table.table-label-compact.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + > label { + margin: 0; + padding: 0; + } + + > div > label, + .mx-referenceselector-input-wrapper label { + margin: 0; + padding: 0; + } + } + } + } + } + + $height-row-s: 55px; + $height-row-m: 70px; + $height-row-l: 120px; + // Small rows + table.table-row-s.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + height: $height-row-s; + } + } + } + } + + // Medium rows + table.table-row-m.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + height: $height-row-m; + } + } + } + } + + // Large rows + table.table-row-l.mx-table { + > tbody { + // Table row + > tr { + // Table header + // Table data + > th, + > td { + height: $height-row-l; + } + } + } + } + + // Makes the columns fixed + table.table-fixed { + table-layout: fixed; + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_template-grid.scss b/test/themesource/atlas_core/web/core/helpers/_template-grid.scss new file mode 100644 index 0000000..71db23e --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_template-grid.scss @@ -0,0 +1,309 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin template-grid-helpers() { + /* ========================================================================== + Template grid + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Make sure your content looks selectable + .templategrid-selectable.mx-templategrid { + .mx-templategrid-item { + cursor: pointer; + } + } + + // Lined + .templategrid-lined.mx-templategrid { + .mx-grid-content { + border-top-width: 2px; + border-top-style: solid; + border-top-color: $grid-border-color; + } + + .mx-templategrid-item { + border-top: 1px solid $grid-border-color; + border-right: none; + border-bottom: 1px solid $grid-border-color; + border-left: none; + } + } + + // Striped + .templategrid-striped.mx-templategrid { + .mx-templategrid-row:nth-child(odd) .mx-templategrid-item { + background-color: #f9f9f9; + } + } + + // Stylingless + .templategrid-stylingless.mx-templategrid { + .mx-templategrid-item { + padding: 0; + cursor: default; + border: 0; + background-color: transparent; + + &:hover { + background-color: transparent; + } + + &.selected { + background-color: transparent !important; + + &:hover { + background-color: transparent !important; + } + } + } + } + + // Transparent items + .templategrid-transparent.mx-templategrid { + .mx-templategrid-item { + border: 0; + background-color: transparent; + } + } + + // Hover + .templategrid-hover.mx-templategrid { + .mx-templategrid-item { + &:hover { + background-color: $grid-bg-hover !important; + } + + &.selected { + background-color: $grid-bg-selected !important; + + &:hover { + background-color: $grid-bg-selected-hover !important; + } + } + } + } + + // Templategrid Row Sizes + .templategrid-lg.mx-templategrid { + .mx-templategrid-item { + padding: ($grid-padding-top * 2) ($grid-padding-right * 2) ($grid-padding-bottom * 2) + ($grid-padding-left * 2); + } + } + + .templategrid-sm.mx-templategrid { + .mx-templategrid-item { + padding: ($grid-padding-top / 2) ($grid-padding-right / 2) ($grid-padding-bottom / 2) + ($grid-padding-left / 2); + } + } + + // Templategrid Layoutgrid styles + .mx-templategrid[class*="tg-col"] { + overflow: hidden; // For if it is not in a layout, to prevent scrollbars + .mx-templategrid-content-wrapper { + display: block; + } + + .mx-templategrid-row { + display: block; + margin-right: -1 * $gutter-size; + margin-left: -1 * $gutter-size; + + &::before, + &::after { + // clearfix + display: table; + clear: both; + content: " "; + } + } + + .mx-templategrid-item { + // bootstrap col + position: relative; + display: block; + float: left; + min-height: 1px; + padding-right: $gutter-size; + padding-left: $gutter-size; + border: 0; + @media (max-width: 992px) { + width: 100% !important; + } + + .mx-dataview { + overflow: hidden; + } + } + + &.tg-col-xs-12 .mx-templategrid-item { + width: 100% !important; + } + + &.tg-col-xs-11 .mx-templategrid-item { + width: 91.66666667% !important; + } + + &.tg-col-xs-10 .mx-templategrid-item { + width: 83.33333333% !important; + } + + &.tg-col-xs-9 .mx-templategrid-item { + width: 75% !important; + } + + &.tg-col-xs-8 .mx-templategrid-item { + width: 66.66666667% !important; + } + + &.tg-col-xs-7 .mx-templategrid-item { + width: 58.33333333% !important; + } + + &.tg-col-xs-6 .mx-templategrid-item { + width: 50% !important; + } + + &.tg-col-xs-5 .mx-templategrid-item { + width: 41.66666667% !important; + } + + &.tg-col-xs-4 .mx-templategrid-item { + width: 33.33333333% !important; + } + + &.tg-col-xs-3 .mx-templategrid-item { + width: 25% !important; + } + + &.tg-col-xs-2 .mx-templategrid-item { + width: 16.66666667% !important; + } + + &.tg-col-xs-1 .mx-templategrid-item { + width: 8.33333333% !important; + } + + @media (min-width: 768px) { + &.tg-col-sm-12 .mx-templategrid-item { + width: 100% !important; + } + &.tg-col-sm-11 .mx-templategrid-item { + width: 91.66666667% !important; + } + &.tg-col-sm-10 .mx-templategrid-item { + width: 83.33333333% !important; + } + &.tg-col-sm-9 .mx-templategrid-item { + width: 75% !important; + } + &.tg-col-sm-8 .mx-templategrid-item { + width: 66.66666667% !important; + } + &.tg-col-sm-7 .mx-templategrid-item { + width: 58.33333333% !important; + } + &.tg-col-sm-6 .mx-templategrid-item { + width: 50% !important; + } + &.tg-col-sm-5 .mx-templategrid-item { + width: 41.66666667% !important; + } + &.tg-col-sm-4 .mx-templategrid-item { + width: 33.33333333% !important; + } + &.tg-col-sm-3 .mx-templategrid-item { + width: 25% !important; + } + &.tg-col-sm-2 .mx-templategrid-item { + width: 16.66666667% !important; + } + &.tg-col-sm-1 .mx-templategrid-item { + width: 8.33333333% !important; + } + } + @media (min-width: 992px) { + &.tg-col-md-12 .mx-templategrid-item { + width: 100% !important; + } + &.tg-col-md-11 .mx-templategrid-item { + width: 91.66666667% !important; + } + &.tg-col-md-10 .mx-templategrid-item { + width: 83.33333333% !important; + } + &.tg-col-md-9 .mx-templategrid-item { + width: 75% !important; + } + &.tg-col-md-8 .mx-templategrid-item { + width: 66.66666667% !important; + } + &.tg-col-md-7 .mx-templategrid-item { + width: 58.33333333% !important; + } + &.tg-col-md-6 .mx-templategrid-item { + width: 50% !important; + } + &.tg-col-md-5 .mx-templategrid-item { + width: 41.66666667% !important; + } + &.tg-col-md-4 .mx-templategrid-item { + width: 33.33333333% !important; + } + &.tg-col-md-3 .mx-templategrid-item { + width: 25% !important; + } + &.tg-col-md-2 .mx-templategrid-item { + width: 16.66666667% !important; + } + &.tg-col-md-1 .mx-templategrid-item { + width: 8.33333333% !important; + } + } + @media (min-width: 1200px) { + &.tg-col-lg-12 .mx-templategrid-item { + width: 100% !important; + } + &.tg-col-lg-11 .mx-templategrid-item { + width: 91.66666667% !important; + } + &.tg-col-lg-10 .mx-templategrid-item { + width: 83.33333333% !important; + } + &.tg-col-lg-9 .mx-templategrid-item { + width: 75% !important; + } + &.tg-col-lg-8 .mx-templategrid-item { + width: 66.66666667% !important; + } + &.tg-col-lg-7 .mx-templategrid-item { + width: 58.33333333% !important; + } + &.tg-col-lg-6 .mx-templategrid-item { + width: 50% !important; + } + &.tg-col-lg-5 .mx-templategrid-item { + width: 41.66666667% !important; + } + &.tg-col-lg-4 .mx-templategrid-item { + width: 33.33333333% !important; + } + &.tg-col-lg-3 .mx-templategrid-item { + width: 25% !important; + } + &.tg-col-lg-2 .mx-templategrid-item { + width: 16.66666667% !important; + } + &.tg-col-lg-1 .mx-templategrid-item { + width: 8.33333333% !important; + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/helpers/_typography.scss b/test/themesource/atlas_core/web/core/helpers/_typography.scss new file mode 100644 index 0000000..f8c9f20 --- /dev/null +++ b/test/themesource/atlas_core/web/core/helpers/_typography.scss @@ -0,0 +1,137 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin typography-helpers() { + /* ========================================================================== + Typography + + //== Design Properties + //## Helper classes to change the look and feel of the component + ========================================================================== */ + // Text size + .text-small { + font-size: $font-size-small !important; + } + + .text-large { + font-size: $font-size-large !important; + } + + // Text Weights + .text-light, + .text-light > *, + .text-light label { + font-weight: $font-weight-light !important; + } + + .text-normal, + .text-normal > *, + .text-normal label { + font-weight: $font-weight-normal !important; + } + + .text-semibold, + .text-semibold > *, + .text-semibold label { + font-weight: $font-weight-semibold !important; + } + + .text-bold, + .text-bold > *, + .text-bold label { + font-weight: $font-weight-bold !important; + } + + // Color variations + .text-secondary, + .text-secondary:hover, + .text-default, + .text-default:hover { + color: $font-color-default !important; + } + + .text-primary, + .text-primary:hover { + color: $brand-primary !important; + } + + .text-info, + .text-info:hover { + color: $brand-info !important; + } + + .text-success, + .text-success:hover { + color: $brand-success !important; + } + + .text-warning, + .text-warning:hover { + color: $brand-warning !important; + } + + .text-danger, + .text-danger:hover { + color: $brand-danger !important; + } + + .text-header { + color: $font-color-header !important; + } + + .text-detail { + color: $font-color-detail !important; + } + + .text-white { + color: #ffffff; + } + + // Alignment options + .text-left { + text-align: left !important; + } + .text-center { + text-align: center !important; + } + .text-right { + text-align: right !important; + } + .text-justify { + text-align: justify !important; + } + + // Transform options + .text-lowercase { + text-transform: lowercase !important; + } + .text-uppercase { + text-transform: uppercase !important; + } + .text-capitalize { + text-transform: capitalize !important; + } + + // Wrap options + .text-break { + word-break: break-all !important; + word-break: break-word !important; + -webkit-hyphens: auto !important; + hyphens: auto !important; + } + + .text-nowrap { + white-space: nowrap !important; + } + + .text-nowrap { + overflow: hidden !important; + max-width: 100% !important; + white-space: nowrap !important; + text-overflow: ellipsis !important; + } +} diff --git a/test/theme/styles/web/sass/core/manifest.json b/test/themesource/atlas_core/web/core/manifest.json old mode 100755 new mode 100644 similarity index 59% rename from test/theme/styles/web/sass/core/manifest.json rename to test/themesource/atlas_core/web/core/manifest.json index ddbcaa1..b6b47f5 --- a/test/theme/styles/web/sass/core/manifest.json +++ b/test/themesource/atlas_core/web/core/manifest.json @@ -1,4 +1,4 @@ { "name": "Atlas-UI-Framework", - "version": "2.5.5" -} \ No newline at end of file + "version": "3.0.0" +} diff --git a/test/themesource/atlas_core/web/core/widgets/_badge-button.scss b/test/themesource/atlas_core/web/core/widgets/_badge-button.scss new file mode 100644 index 0000000..8033948 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_badge-button.scss @@ -0,0 +1,36 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin badge-button() { + /* ========================================================================== + Badge button + + Widget styles + ========================================================================== */ + .widget-badge-button { + display: inline-block; + + .widget-badge-button-text { + white-space: nowrap; + padding-right: 5px; + } + + .badge { + top: unset; + display: inline-block; + margin: 0; + padding: $spacing-smaller $spacing-small; + text-align: center; + vertical-align: baseline; + white-space: nowrap; + background-color: $btn-primary-color; + color: $btn-primary-bg; + font-size: 100%; + line-height: 1; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_badge.scss b/test/themesource/atlas_core/web/core/widgets/_badge.scss new file mode 100644 index 0000000..43779aa --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_badge.scss @@ -0,0 +1,58 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin badge() { + /* ========================================================================== + Badge + + Override of default Bootstrap badge style + ========================================================================== */ + + .badge { + display: inline-block; + margin: 0; + padding: $spacing-smaller $spacing-small; + text-align: center; + vertical-align: baseline; + white-space: nowrap; + color: #ffffff; + font-size: 100%; + line-height: 1; + + .form-control-static { + font-weight: $font-weight-normal; + all: unset; + } + } + + /* ========================================================================== + Badge-web + + Widget styles + ========================================================================== */ + + .widget-badge { + color: $label-primary-color; + background-color: $label-primary-bg; + } + + .widget-badge-clickable { + cursor: pointer; + } + + .widget-badge.badge:empty { + display: initial; + /* Fix padding to stay round */ + padding: $spacing-smaller ($spacing-small + 2px); + } + + .widget-badge.label:empty { + display: initial; + /* Fix padding to stay square */ + padding: $spacing-smaller ($spacing-small + 2px); + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_button.scss b/test/themesource/atlas_core/web/core/widgets/_button.scss new file mode 100644 index 0000000..fae3010 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_button.scss @@ -0,0 +1,98 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin button() { + /* ========================================================================== + Button + + Default Bootstrap and Mendix button + ========================================================================== */ + + .btn, + .mx-button { + display: inline-block; + margin-bottom: 0; + padding: 0.6em 1em; + cursor: pointer; + -webkit-user-select: none; + user-select: none; + transition: all 0.2s ease-in-out; + text-align: center; + vertical-align: middle; + white-space: nowrap; + color: $btn-default-color; + border: 1px solid $btn-default-border-color; + border-radius: $btn-border-radius; + background-color: $btn-default-bg; + background-image: none; + box-shadow: none; + text-shadow: none; + font-size: $btn-font-size; + line-height: $line-height-base; + + &:hover, + &:focus, + &:active, + &:active:focus { + outline: none; + box-shadow: none; + } + + &[aria-disabled] { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + } + + @if $btn-bordered != false { + @extend .btn-bordered; + } + } + + // Mendix button link + .mx-link { + padding: 0; + color: $link-color; + + &[aria-disabled="true"] { + cursor: not-allowed; + pointer-events: none; + opacity: 0.65; + } + } + + .link-back { + color: $font-color-detail; + + .glyphicon { + top: 2px; + } + } + + // Images and icons in buttons + .btn, + .mx-button, + .mx-link { + img { + //height: auto; // MXUI override who set the height on 16px default + height: $font-size-default + 4px; + margin-right: 4px; + vertical-align: text-top; + } + } + + //== Phone specific + //-------------------------------------------------------------------------------------------------------------------// + .profile-phone { + .btn, + .mx-link { + &:active { + transform: translateY(1px); + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_check-box.scss b/test/themesource/atlas_core/web/core/widgets/_check-box.scss new file mode 100644 index 0000000..6d2f89e --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_check-box.scss @@ -0,0 +1,98 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin check-box() { + /* ========================================================================== + Check box + + Default Mendix check box widget + ========================================================================== */ + + .mx-checkbox.label-after { + flex-wrap: wrap; + + .control-label { + display: flex; + align-items: center; + padding: 0; + } + } + + input[type="checkbox"] { + position: relative !important; //Remove after mxui merge + width: 16px; + height: 16px; + margin: 0 !important; // Remove after mxui merge + cursor: pointer; + -webkit-user-select: none; + user-select: none; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + + &:before, + &:after { + position: absolute; + display: block; + transition: all 0.3s ease; + } + + &:before { + // Checkbox + width: 100%; + height: 100%; + content: ""; + border: 1px solid $form-input-border-color; + border-radius: $form-input-border-radius; + background-color: transparent; + } + + &:after { + // Checkmark + width: 8px; + height: 4px; + margin: 5px 4px; + transform: rotate(-45deg); + pointer-events: none; + border: 2px solid #ffffff; + border-top: 0; + border-right: 0; + } + + &:not(:disabled):not(:checked):hover:after { + content: ""; + border-color: $form-input-bg-hover; // color of checkmark on hover + } + + &:checked:before { + border-color: $form-input-border-focus-color; + background-color: $form-input-border-focus-color; + } + + &:checked:after { + content: ""; + } + + &:disabled:before { + background-color: $form-input-bg-disabled; + } + + &:checked:disabled:before { + border-color: transparent; + background-color: rgba($form-input-border-focus-color, 0.4); + } + + &:disabled:after, + &:checked:disabled:after { + border-color: $form-input-bg-disabled; + } + + & + .control-label { + margin-left: $form-label-gutter; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_data-grid.scss b/test/themesource/atlas_core/web/core/widgets/_data-grid.scss new file mode 100644 index 0000000..b6b08e6 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_data-grid.scss @@ -0,0 +1,86 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin data-grid() { + /* ========================================================================== + Data grid default + + Default Mendix data grid widget. The data grid shows a list of objects in a grid + ========================================================================== */ + + .mx-datagrid { + table { + border-width: 0; + background-color: transparent; + /* Table header */ + th { + border-style: solid; + border-color: $grid-border-color; + border-top-width: 0; + border-right: 0; + border-bottom-width: 1px; + border-left: 0; + background-color: $grid-bg-header; + padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; + vertical-align: middle; + + .mx-datagrid-head-caption { + white-space: normal; + } + } + + /* Table Body */ + tbody tr { + td { + @include transition(); + padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; + vertical-align: middle; + border-width: 0; + border-color: $grid-border-color; + border-bottom-width: 1px; + border-bottom-style: solid; + background-color: $grid-bg; + + &:focus { + outline: none; + } + + /* Text without spaces */ + .mx-datagrid-data-wrapper { + text-overflow: ellipsis; + } + } + + &.selected td, + &.selected:hover td { + color: $grid-selected-color; + background-color: $grid-bg-selected !important; + } + } + + /* Table Footer */ + tfoot { + > tr > th { + padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; + border-width: 0; + background-color: $grid-footer-bg; + } + + > tr > td { + padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; + border-width: 0; + background-color: $grid-bg; + font-weight: $font-weight-bold; + } + } + + & *:focus { + outline: 0; + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_data-view.scss b/test/themesource/atlas_core/web/core/widgets/_data-view.scss new file mode 100644 index 0000000..7404814 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_data-view.scss @@ -0,0 +1,49 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin data-view() { + /* ========================================================================== + Data view + + Default Mendix data view widget. The data view is used for showing the contents of exactly one object + ========================================================================== */ + + .mx-dataview { + /* Dataview-content gives problems for nexted layout grid containers */ + > .mx-dataview-content > .mx-container-nested { + > .row { + margin-right: 0; + margin-left: 0; + } + } + + /* Dataview empty message */ + .mx-dataview-message { + color: $dataview-emptymessage-color; + background: $dataview-emptymessage-bg; + } + } + + .mx-dataview-controls { + margin-top: $spacing-medium; + padding: $spacing-medium 0 0; + border-top: 1px solid $dataview-controls-border-color; + border-radius: 0; + background-color: $dataview-controls-bg; + /* Buttons */ + .mx-button { + margin-right: $spacing-small; + margin-bottom: 0; + + &:last-child { + margin-right: 0; + } + } + + background-color: inherit; + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_date-picker.scss b/test/themesource/atlas_core/web/core/widgets/_date-picker.scss new file mode 100644 index 0000000..8af5964 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_date-picker.scss @@ -0,0 +1,133 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin date-picker() { + /* ========================================================================== + Date picker + + Default Mendix date picker widget + ========================================================================== */ + + .mx-calendar { + /* (must be higher than popup z-index) */ + z-index: 10010 !important; + padding: 8px; + font-size: 12px; + background: $bg-color; + border-radius: $border-radius-default; + border: 1px solid $border-color-default; + box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.06); + + .mx-calendar-month-header { + display: flex; + flex-direction: row; + justify-content: space-between; + margin: 0 3px 10px 3px; + } + + .mx-calendar-month-next, + .mx-calendar-month-previous, + .mx-calendar-month-dropdown { + border: 0; + cursor: pointer; + background: transparent; + } + + .mx-calendar-month-next, + .mx-calendar-month-previous { + &:hover { + color: $brand-primary; + } + } + + .mx-calendar-month-dropdown { + display: flex; + align-items: center; + justify-content: center; + position: relative; + + .mx-calendar-month-current:first-child { + margin-right: 10px; + } + } + + th { + color: $brand-primary; + } + + th, + td { + width: 35px; + height: 35px; + text-align: center; + } + + td { + color: $font-color-default; + + &:hover { + cursor: pointer; + border-radius: 50%; + color: $brand-primary; + background-color: $brand-default; + } + } + + .mx-calendar-day-month-next, + .mx-calendar-day-month-previous { + color: lighten($font-color-default, 45%); + } + + .mx-calendar-day-selected, + .mx-calendar-day-selected:hover { + color: #fff; + border-radius: 50%; + background: $brand-primary; + } + + // + + .mx-calendar-year-switcher { + text-align: center; + margin-top: 10px; + color: lighten($brand-primary, 30%); + + span.mx-calendar-year-selected { + color: $brand-primary; + margin-left: 10px; + margin-right: 10px; + } + + span:hover { + cursor: pointer; + text-decoration: underline; + background-color: transparent; + } + } + } + + .mx-calendar-month-dropdown-options { + /* (must be higher than popup z-index) */ + z-index: 10020 !important; + position: absolute; + top: 25px; + padding: 2px 10px; + border-radius: $border-radius-default; + background-color: $bg-color; + + div { + cursor: pointer; + font-size: 12px; + padding: 2px 0; + + &:hover, + &:focus { + color: $brand-primary; + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_glyphicon.scss b/test/themesource/atlas_core/web/core/widgets/_glyphicon.scss new file mode 100644 index 0000000..37ec807 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_glyphicon.scss @@ -0,0 +1,29 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin glyphicon() { + /* ========================================================================== + Glyphicon + + Default Mendix glyphicon + ========================================================================== */ + + .mx-glyphicon { + &:before { + display: inline-block; + margin-top: -0.2em; + margin-right: 0.4555555em; + vertical-align: middle; + font-family: "Glyphicons Halflings"; + font-weight: $font-weight-normal; + font-style: normal; + line-height: inherit; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_grid.scss b/test/themesource/atlas_core/web/core/widgets/_grid.scss new file mode 100644 index 0000000..047b4e2 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_grid.scss @@ -0,0 +1,84 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin grid() { + /* ========================================================================== + Grid + + Default Mendix grid (used for Mendix data grid) + ========================================================================== */ + + .mx-grid { + padding: 0px; + border: 0; + border-radius: 0; + + .mx-grid-controlbar { + margin: 10px 0; + /* Paging */ + .mx-grid-pagingbar { + /* Buttons */ + .mx-button { + padding: 8px; + color: $grid-paging-color; + border-color: $grid-paging-border-color; + background-color: $grid-paging-bg; + + &:hover { + color: $grid-paging-color-hover; + border-color: $grid-paging-border-color-hover; + background-color: $grid-paging-bg-hover; + } + } + + /* Text Paging .. to .. to .. */ + .mx-grid-paging-status { + padding: 0 8px 8px; + } + } + } + + .mx-grid-searchbar { + margin: 10px 0; + + .mx-grid-search-item { + .mx-grid-search-label { + vertical-align: middle; + + label { + padding-top: 5px; + } + } + + .mx-grid-search-input { + display: inline-flex; + + .form-control { + height: 28px; + font-size: 11px; + } + + select.form-control { + padding: 3px; + vertical-align: middle; + } + + .mx-button { + height: 28px; + padding-top: 2px; + padding-bottom: 2px; + } + } + } + } + } + + // Remove default border from grid inside a Mendix Dataview + .mx-dataview .mx-grid { + border: 0; + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_group-box.scss b/test/themesource/atlas_core/web/core/widgets/_group-box.scss new file mode 100644 index 0000000..2d8be87 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_group-box.scss @@ -0,0 +1,55 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin group-box() { + /* ========================================================================== + Group box + + Default Mendix group box + ========================================================================== */ + + .mx-groupbox { + margin: 0; + + > .mx-groupbox-header { + margin: 0; + color: $groupbox-default-color; + border-width: 1px 1px 0 1px; + border-style: solid; + border-color: $groupbox-default-bg; + background: $groupbox-default-bg; + font-size: $font-size-h5; + border-radius: $border-radius-default $border-radius-default 0 0; + padding: $spacing-small * 1.5 $spacing-medium; + + .mx-groupbox-collapse-icon { + margin-top: 0.1em; + } + } + + > .mx-groupbox-body { + padding: $spacing-small * 1.5 $spacing-medium; + border-width: 1px; + border-style: solid; + border-color: $groupbox-default-bg; + background-color: #ffffff; + border-radius: $border-radius-default; + } + + .mx-groupbox-header + .mx-groupbox-body { + border-top: none; + } + + &.collapsed > .mx-groupbox-header { + } + } + + //With header + .mx-groupbox-header ~ .mx-groupbox-body { + border-radius: 0 0 $border-radius-default $border-radius-default; + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_header.scss b/test/themesource/atlas_core/web/core/widgets/_header.scss new file mode 100644 index 0000000..07e2f2a --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_header.scss @@ -0,0 +1,123 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin header() { + /* ========================================================================== + Header + + Default Mendix mobile header + ========================================================================== */ + + .mx-header { + z-index: 100; + display: flex; + width: 100%; + height: $m-header-height; + padding: 0; + text-align: initial; + color: $m-header-color; + background-color: $m-header-bg; + box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354); + + // Reset mxui + div.mx-header-left, + div.mx-header-right { + position: relative; + top: initial; + right: initial; + left: initial; + display: flex; + align-items: center; + width: 25%; + height: 100%; + + .mx-placeholder { + display: flex; + align-items: center; + height: 100%; + } + } + + div.mx-header-left .mx-placeholder { + order: 1; + + .mx-placeholder { + justify-content: flex-start; + } + } + + div.mx-header-center { + overflow: hidden; + flex: 1; + order: 2; + text-align: center; + + .mx-title { + overflow: hidden; + width: 100%; + margin: 0; + text-overflow: ellipsis; + color: $m-header-color; + font-size: $m-header-title-size; + line-height: $m-header-height; + } + } + + div.mx-header-right { + order: 3; + + .mx-placeholder { + justify-content: flex-end; + } + } + + // Content magic + .mx-link { + display: flex; + align-items: center; + height: 100%; + transition: all 0.2s; + text-decoration: none; + + .glyphicon { + top: 0; + font-size: 23px; + } + + &:active { + transform: translateY(1px); + color: $link-hover-color; + } + } + + .mx-link, + .btn, + img { + padding: 0 $spacing-medium; + } + + .mx-sidebartoggle { + font-size: 24px; + line-height: $m-header-height; + + img { + height: 20px; + } + } + } + + // RTL support + body[dir="rtl"] { + .mx-header-left { + order: 3; + } + + .mx-header-right { + order: 1; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_input.scss b/test/themesource/atlas_core/web/core/widgets/_input.scss new file mode 100644 index 0000000..f18bf50 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_input.scss @@ -0,0 +1,273 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin input() { + /* ========================================================================== + Input + + The form-control class style all inputs + ========================================================================== */ + .form-control { + display: flex; + flex: 1; + min-width: 50px; + height: $form-input-height; + padding: $form-input-padding-y $form-input-padding-x; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + color: $form-input-color; + border: 1px solid $form-input-border-color; + border-radius: $form-input-border-radius; + background-color: $form-input-bg; + background-image: none; + box-shadow: none; + font-size: $form-input-font-size; + line-height: $form-input-line-height; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + @if $form-input-style==lined { + @extend .form-control-lined; + } + + &::placeholder { + color: $form-input-placeholder-color; + } + } + + .form-control:not([readonly]):focus { + border-color: $form-input-border-focus-color; + outline: 0; + background-color: $form-input-bg-focus; + box-shadow: none; + } + + .form-control[disabled], + .form-control[readonly], + fieldset[disabled] .form-control { + opacity: 1; + background-color: $form-input-bg-disabled; + } + + .form-control[disabled], + fieldset[disabled] .form-control { + cursor: not-allowed; + } + + // Lined + .form-control-lined { + border: 0; + border-bottom: 1px solid $form-input-border-color; + border-radius: 0; + background-color: transparent; + + &:focus { + background-color: transparent; + } + } + + // Read only form control class + .form-control-static { + overflow: hidden; + flex: 1; + min-height: auto; + padding: $form-input-static-padding-y $form-input-static-padding-x; + //border-bottom: 1px solid $form-input-static-border-color; + font-size: $form-input-font-size; + line-height: $form-input-line-height; + + & + .control-label { + margin-left: $form-label-gutter; + } + } + + // Dropdown input widget + select.form-control { + $arrow: "data:image/svg+xml;utf8,"; + padding-right: 30px; + background-image: url($arrow); + background-repeat: no-repeat; + background-position: calc(100% - #{$form-input-padding-x}) center; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + } + + .form-control.mx-selectbox { + align-items: center; + flex-direction: row-reverse; + justify-content: space-between; + } + + // Not editable textarea, textarea will be rendered as a label + .mx-textarea .control-label { + height: auto; + } + + .mx-textarea-counter { + display: block; + width: 100%; + text-align: right; + margin-top: $spacing-small; + } + + textarea.form-control { + flex-basis: auto; + } + + .mx-compound-control { + display: flex; + flex: 1; + flex-wrap: wrap; + max-width: 100%; + + .btn { + margin-left: $spacing-small; + } + + .mx-validation-message { + flex-basis: 100%; + margin-top: 4px; + } + } + + .has-error .mx-validation-message { + margin-top: $spacing-small; + margin-bottom: 0; + padding: $spacing-small; + color: $alert-danger-color; + border-color: $alert-danger-border-color; + background-color: $alert-danger-bg; + } + + // Form Group + .form-group { + display: flex; + flex-direction: row; + margin-bottom: $form-group-margin-bottom; + + & > div[class*="col-"] { + display: flex; + align-items: center; + flex-wrap: wrap; + } + + & > [class*="col-"] { + padding-right: $form-group-gutter; + padding-left: $form-group-gutter; + } + + // Alignment content + div[class*="textBox"] > .control-label, + div[class*="textArea"] > .control-label, + div[class*="datePicker"] > .control-label { + @extend .form-control-static; + } + + // Label + .control-label { + overflow: hidden; + margin-bottom: 4px; + text-align: left; + text-overflow: ellipsis; + color: $form-label-color; + font-size: $form-label-size; + font-weight: $form-label-weight; + } + + .mx-validation-message { + flex-basis: 100%; + } + + &.no-columns:not(.label-after) { + flex-direction: column; + } + } + + .form-group.label-after { + .form-control-static { + flex: unset; + } + + .control-label { + margin-bottom: 0; + } + } + + .mx-dateinput, + .mx-referenceselector, + .mx-referencesetselector { + flex: 1; + } + + // Targets only webkit iOS devices + .dj_webkit.dj_ios .form-control { + transform: translateZ(0); + } + + @media only screen and (min-width: $screen-md) { + .form-horizontal { + .control-label { + margin-bottom: 0; + padding-top: $form-input-padding-y; + padding-bottom: $form-input-padding-y; + line-height: $form-input-line-height; + } + } + } + + @media only screen and (max-width: $screen-sm-max) { + .form-group { + flex-direction: column; + } + } + + @media only screen and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 0) { + // Fixes alignment bug on iPads / iPhones where datefield is not aligned vertically + input[type="date"], + input[type="time"], + input[type="datetime-local"], + input[type="month"] { + line-height: 1; + } + // Fix shrinking of date inputs because inability of setting a placeholder + input[type="time"]:not(.has-value):before, + input[type="date"]:not(.has-value):before, + input[type="month"]:not(.has-value):before, + input[type="datetime-local"]:not(.has-value):before { + margin-right: 0.5em; + content: attr(placeholder) !important; + color: #aaaaaa; + } + input[type="time"].has-value:before, + input[type="date"].has-value:before, + input[type="month"].has-value:before, + input[type="datetime-local"].has-value:before { + content: "" !important; + } + } + + @media (-ms-high-contrast: none), (-ms-high-contrast: active) { + // Target IE10+ + .form-group { + display: block; + } + } + + [dir="rtl"] { + // Dropdown input widget + select.form-control { + padding-right: 30px; + padding-left: 0; + background-position: #{$form-input-padding-x} center; + } + + .mx-compound-control .btn { + margin-right: $spacing-small; + margin-left: 0; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_label.scss b/test/themesource/atlas_core/web/core/widgets/_label.scss new file mode 100644 index 0000000..af9469d --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_label.scss @@ -0,0 +1,32 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin label() { + /* ========================================================================== + Label + + Default label combined with Bootstrap label + ========================================================================== */ + + .label { + display: inline-block; + margin: 0; + padding: $spacing-smaller $spacing-small; + text-align: center; + vertical-align: baseline; + white-space: nowrap; + color: #ffffff; + border-radius: 0.25em; + font-size: 100%; + line-height: 1; + + .form-control-static { + font-weight: $font-weight-normal; + all: unset; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_layout-grid.scss b/test/themesource/atlas_core/web/core/widgets/_layout-grid.scss new file mode 100644 index 0000000..3aa3819 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_layout-grid.scss @@ -0,0 +1,950 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin layout-grid() { + /* ========================================================================== + Layout grid + + Default Bootstrap containers + ========================================================================== */ + .mx-layoutgrid { + width: 100%; + margin-right: auto; + margin-left: auto; + padding-right: $gutter-size; + padding-left: $gutter-size; + } + + // Row + .row { + display: flex; + flex-wrap: wrap; + margin-right: -$gutter-size; + margin-left: -$gutter-size; + + &::before, + &::after { + content: normal; + } + } + + .no-gutters { + margin-right: 0; + margin-left: 0; + } + + .no-gutters > .col, + .no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; + } + + // Columns + .col-1, + .col-2, + .col-3, + .col-4, + .col-5, + .col-6, + .col-7, + .col-8, + .col-9, + .col-10, + .col-11, + .col-12, + .col, + .col-auto, + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12, + .col-sm, + .col-sm-auto, + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12, + .col-md, + .col-md-auto, + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12, + .col-lg, + .col-lg-auto, + .col-xl-1, + .col-xl-2, + .col-xl-3, + .col-xl-4, + .col-xl-5, + .col-xl-6, + .col-xl-7, + .col-xl-8, + .col-xl-9, + .col-xl-10, + .col-xl-11, + .col-xl-12, + .col-xl, + .col-xl-auto { + position: relative; + width: 100%; + padding-right: $gutter-size; + padding-left: $gutter-size; + } + + .col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + + .col-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + + .col-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .col-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-3 { + flex: 0 0 25%; + max-width: 25%; + } + + .col-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .col-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .col-6 { + flex: 0 0 50%; + max-width: 50%; + } + + .col-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .col-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .col-9 { + flex: 0 0 75%; + max-width: 75%; + } + + .col-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .col-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .col-12 { + flex: 0 0 100%; + max-width: 100%; + } + + .order-first { + order: -1; + } + + .order-last { + order: 13; + } + + .order-0 { + order: 0; + } + + .order-1 { + order: 1; + } + + .order-2 { + order: 2; + } + + .order-3 { + order: 3; + } + + .order-4 { + order: 4; + } + + .order-5 { + order: 5; + } + + .order-6 { + order: 6; + } + + .order-7 { + order: 7; + } + + .order-8 { + order: 8; + } + + .order-9 { + order: 9; + } + + .order-10 { + order: 10; + } + + .order-11 { + order: 11; + } + + .order-12 { + order: 12; + } + + .offset-1, + .col-offset-1 { + margin-left: 8.333333%; + } + + .offset-2, + .col-offset-2 { + margin-left: 16.666667%; + } + + .offset-3, + .col-offset-3 { + margin-left: 25%; + } + + .offset-4, + .col-offset-4 { + margin-left: 33.333333%; + } + + .offset-5, + .col-offset-5 { + margin-left: 41.666667%; + } + + .offset-6, + .col-offset-6 { + margin-left: 50%; + } + + .offset-7, + .col-offset-7 { + margin-left: 58.333333%; + } + + .offset-8, + .col-offset-8 { + margin-left: 66.666667%; + } + + .offset-9, + .col-offset-9 { + margin-left: 75%; + } + + .offset-10, + .col-offset-10 { + margin-left: 83.333333%; + } + + .offset-11, + .col-offset-11 { + margin-left: 91.666667%; + } + + // Responsiveness + @media (min-width: $screen-sm) { + .mx-layoutgrid-fixed { + max-width: 540px; + } + } + + @media (min-width: $screen-md) { + .mx-layoutgrid-fixed { + max-width: 720px; + } + } + + @media (min-width: $screen-lg) { + .mx-layoutgrid-fixed { + max-width: 960px; + } + } + + @media (min-width: $screen-xl) { + .mx-layoutgrid-fixed { + max-width: 1140px; + } + } + + @media (min-width: $screen-sm) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + order: -1; + } + .order-sm-last { + order: 13; + } + .order-sm-0 { + order: 0; + } + .order-sm-1 { + order: 1; + } + .order-sm-2 { + order: 2; + } + .order-sm-3 { + order: 3; + } + .order-sm-4 { + order: 4; + } + .order-sm-5 { + order: 5; + } + .order-sm-6 { + order: 6; + } + .order-sm-7 { + order: 7; + } + .order-sm-8 { + order: 8; + } + .order-sm-9 { + order: 9; + } + .order-sm-10 { + order: 10; + } + .order-sm-11 { + order: 11; + } + .order-sm-12 { + order: 12; + } + .offset-sm-0, + .col-sm-offset-0 { + margin-left: 0; + } + .offset-sm-1, + .col-sm-offset-1 { + margin-left: 8.333333%; + } + .offset-sm-2, + .col-sm-offset-2 { + margin-left: 16.666667%; + } + .offset-sm-3, + .col-sm-offset-3 { + margin-left: 25%; + } + .offset-sm-4, + .col-sm-offset-4 { + margin-left: 33.333333%; + } + .offset-sm-5, + .col-sm-offset-5 { + margin-left: 41.666667%; + } + .offset-sm-6, + .col-sm-offset-6 { + margin-left: 50%; + } + .offset-sm-7, + .col-sm-offset-7 { + margin-left: 58.333333%; + } + .offset-sm-8, + .col-sm-offset-8 { + margin-left: 66.666667%; + } + .offset-sm-9, + .col-sm-offset-9 { + margin-left: 75%; + } + .offset-sm-10, + .col-sm-offset-10 { + margin-left: 83.333333%; + } + .offset-sm-11, + .col-sm-offset-11 { + margin-left: 91.666667%; + } + } + + @media (min-width: $screen-md) { + .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + order: -1; + } + .order-md-last { + order: 13; + } + .order-md-0 { + order: 0; + } + .order-md-1 { + order: 1; + } + .order-md-2 { + order: 2; + } + .order-md-3 { + order: 3; + } + .order-md-4 { + order: 4; + } + .order-md-5 { + order: 5; + } + .order-md-6 { + order: 6; + } + .order-md-7 { + order: 7; + } + .order-md-8 { + order: 8; + } + .order-md-9 { + order: 9; + } + .order-md-10 { + order: 10; + } + .order-md-11 { + order: 11; + } + .order-md-12 { + order: 12; + } + .offset-md-0, + .col-md-offset-0 { + margin-left: 0; + } + .offset-md-1, + .col-md-offset-1 { + margin-left: 8.333333%; + } + .offset-md-2, + .col-md-offset-2 { + margin-left: 16.666667%; + } + .offset-md-3, + .col-md-offset-3 { + margin-left: 25%; + } + .offset-md-4, + .col-md-offset-4 { + margin-left: 33.333333%; + } + .offset-md-5, + .col-md-offset-5 { + margin-left: 41.666667%; + } + .offset-md-6, + .col-md-offset-6 { + margin-left: 50%; + } + .offset-md-7, + .col-md-offset-7 { + margin-left: 58.333333%; + } + .offset-md-8, + .col-md-offset-8 { + margin-left: 66.666667%; + } + .offset-md-9, + .col-md-offset-9 { + margin-left: 75%; + } + .offset-md-10, + .col-md-offset-10 { + margin-left: 83.333333%; + } + .offset-md-11, + .col-md-offset-11 { + margin-left: 91.666667%; + } + } + + @media (min-width: $screen-lg) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + order: -1; + } + .order-lg-last { + order: 13; + } + .order-lg-0 { + order: 0; + } + .order-lg-1 { + order: 1; + } + .order-lg-2 { + order: 2; + } + .order-lg-3 { + order: 3; + } + .order-lg-4 { + order: 4; + } + .order-lg-5 { + order: 5; + } + .order-lg-6 { + order: 6; + } + .order-lg-7 { + order: 7; + } + .order-lg-8 { + order: 8; + } + .order-lg-9 { + order: 9; + } + .order-lg-10 { + order: 10; + } + .order-lg-11 { + order: 11; + } + .order-lg-12 { + order: 12; + } + .offset-lg-0, + .col-lg-offset-0 { + margin-left: 0; + } + .offset-lg-1, + .col-lg-offset-1 { + margin-left: 8.333333%; + } + .offset-lg-2, + .col-lg-offset-2 { + margin-left: 16.666667%; + } + .offset-lg-3, + .col-lg-offset-3 { + margin-left: 25%; + } + .offset-lg-4, + .col-lg-offset-4 { + margin-left: 33.333333%; + } + .offset-lg-5, + .col-lg-offset-5 { + margin-left: 41.666667%; + } + .offset-lg-6, + .col-lg-offset-6 { + margin-left: 50%; + } + .offset-lg-7, + .col-lg-offset-7 { + margin-left: 58.333333%; + } + .offset-lg-8, + .col-lg-offset-8 { + margin-left: 66.666667%; + } + .offset-lg-9, + .col-lg-offset-9 { + margin-left: 75%; + } + .offset-lg-10, + .col-lg-offset-10 { + margin-left: 83.333333%; + } + .offset-lg-11, + .col-lg-offset-11 { + margin-left: 91.666667%; + } + } + + @media (min-width: $screen-xl) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + order: -1; + } + .order-xl-last { + order: 13; + } + .order-xl-0 { + order: 0; + } + .order-xl-1 { + order: 1; + } + .order-xl-2 { + order: 2; + } + .order-xl-3 { + order: 3; + } + .order-xl-4 { + order: 4; + } + .order-xl-5 { + order: 5; + } + .order-xl-6 { + order: 6; + } + .order-xl-7 { + order: 7; + } + .order-xl-8 { + order: 8; + } + .order-xl-9 { + order: 9; + } + .order-xl-10 { + order: 10; + } + .order-xl-11 { + order: 11; + } + .order-xl-12 { + order: 12; + } + .offset-xl-0, + .col-xl-offset-0 { + margin-left: 0; + } + .offset-xl-1, + .col-xl-offset-1 { + margin-left: 8.333333%; + } + .offset-xl-2, + .col-xl-offset-2 { + margin-left: 16.666667%; + } + .offset-xl-3, + .col-xl-offset-3 { + margin-left: 25%; + } + .offset-xl-4, + .col-xl-offset-4 { + margin-left: 33.333333%; + } + .offset-xl-5, + .col-xl-offset-5 { + margin-left: 41.666667%; + } + .offset-xl-6, + .col-xl-offset-6 { + margin-left: 50%; + } + .offset-xl-7, + .col-xl-offset-7 { + margin-left: 58.333333%; + } + .offset-xl-8, + .col-xl-offset-8 { + margin-left: 66.666667%; + } + .offset-xl-9, + .col-xl-offset-9 { + margin-left: 75%; + } + .offset-xl-10, + .col-xl-offset-10 { + margin-left: 83.333333%; + } + .offset-xl-11, + .col-xl-offset-11 { + margin-left: 91.666667%; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_list-view.scss b/test/themesource/atlas_core/web/core/widgets/_list-view.scss new file mode 100644 index 0000000..efef338 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_list-view.scss @@ -0,0 +1,96 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin list-view() { + /* ========================================================================== + List view + + Default Mendix list view widget. The list view shows a list of objects arranged vertically. Each object is shown using a template + ========================================================================== */ + .mx-listview { + // Remove widget padding + padding: 0; + /* Clear search button (overrides load more button stying) */ + & > ul { + margin: 0 0 $spacing-medium; + + .mx-listview-empty { + border-style: none; + background-color: transparent; + } + + & > li { + @include transition(); + background-color: #fff; + padding: $spacing-medium; + border-top: 1px solid $grid-border-color; + + &:last-child { + border-bottom: 1px solid $grid-border-color; + } + + &:focus, + &:active { + outline: 0; + } + } + } + + .selected { + background: $color-primary-light; + } + + .mx-layoutgrid { + padding: 0 !important; + } + } + + // Search bar + .mx-listview-searchbar { + margin-bottom: $spacing-medium; + + .btn { + width: auto; + } + } + + /* Load more button */ + .btn.mx-listview-loadMore { + width: 100%; + margin: 0 0 $spacing-medium; + } + + //== Phone specific + //-------------------------------------------------------------------------------------------------------------------// + .profile-phone .mx-listview { + .mx-listview-searchbar { + margin-bottom: 3px; + background: #ffffff; + box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); + + input { + padding: 14px 15px; + color: #555555; + border-style: none; + border-radius: 0; + box-shadow: none; + } + + .btn { + padding: 14px 15px; + color: inherit; + border-style: none; + } + } + + & > ul > li { + &:first-child { + border-top: none; + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_modal.scss b/test/themesource/atlas_core/web/core/widgets/_modal.scss new file mode 100644 index 0000000..6130c36 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_modal.scss @@ -0,0 +1,128 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin modal() { + /* ========================================================================== + Modal + + Default Mendix modals. Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults + ========================================================================== */ + .modal-dialog { + .modal-content { + border: 1px solid $modal-header-border-color; + border-radius: 4px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + + .modal-header { + padding: 15px 20px; + border-bottom-color: $modal-header-border-color; + border-radius: 0; // Because of the class .mx-window-active in mxui.css + background-color: $modal-header-bg; + + h4 { + margin: 0; + color: $modal-header-color; + font-size: 16px; + font-weight: $font-weight-bold; + } + + .close { + margin-top: -3px; + opacity: 1; + /* For IE8 and earlier */ + color: $modal-header-color; + text-shadow: none; + } + } + + .modal-body { + } + + .modal-footer { + display: flex; + justify-content: flex-end; + margin-top: 0; + padding: 20px; + border-style: none; + } + } + } + + // Default Mendix Window Modal + .mx-window { + // If popup direct child is a dataview it gets the class mx-window-view + &.mx-window-view .mx-window-body { + overflow: hidden; // hide second scrollbar in edit page + padding: 0; + // Dataview in popup + > .mx-dataview > .mx-dataview-content, + > .mx-placeholder > .mx-dataview > .mx-dataview-content { + padding: 20px; + } + + > .mx-dataview > .mx-dataview-controls, + > .mx-placeholder > .mx-dataview > .mx-dataview-controls { + display: flex; + justify-content: flex-end; + margin: 0; + padding: 20px; + text-align: left; + border-top: 1px solid $modal-header-border-color; + } + } + + .mx-dataview-controls { + padding-bottom: 0; + } + + .mx-layoutgrid { + padding-right: 0; + padding-left: 0; + } + } + + .mx-dialog .modal-body { + padding: 24px; + } + + // Login modal + .mx-login { + .modal-body { + padding: 0 15px; + } + + .modal-content { + input { + height: 56px; + padding: 12px 12px; + border: 1px solid #eeeeee; + background: #eeeeee; + box-shadow: none; + font-size: 16px; + + &:focus { + border-color: #66afe9; + } + } + } + + .modal-header, + .modal-footer { + border: 0; + } + + button { + font-size: 16px; + } + + h4 { + color: #aaaaaa; + font-size: 20px; + font-weight: $font-weight-bold; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_navigation-bar.scss b/test/themesource/atlas_core/web/core/widgets/_navigation-bar.scss new file mode 100644 index 0000000..fbf84d3 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_navigation-bar.scss @@ -0,0 +1,153 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin navigation-bar() { + /* ========================================================================== + Navigation + + Default Mendix navigation bar + ========================================================================== */ + .mx-navbar { + margin: 0; + border-style: none; + border-radius: 0; + background-color: $navigation-bg; + + ul.nav { + margin: 0; // weird -margin if screen gets small (bootstrap) + /* Navigation item */ + & > li.mx-navbar-item > a { + display: flex; + align-items: center; + padding: $navigation-item-padding; + vertical-align: middle; + color: $navigation-color; + border-radius: 0; + font-size: $navigation-font-size; + font-weight: $font-weight-normal; + border-radius: $border-radius-default; + + /* Dropdown arrow */ + .caret { + border-top-color: $navigation-color; + border-bottom-color: $navigation-color; + } + + &:hover, + &:focus, + &.active { + text-decoration: none; + color: $navigation-color-hover; + background-color: $navigation-bg-hover; + + .caret { + border-top-color: $navigation-color-active; + border-bottom-color: $navigation-color-active; + } + } + + &.active { + color: $navigation-color-active; + background-color: $navigation-bg-active; + opacity: 1; + } + + /* Dropdown */ + .mx-navbar-submenu::before { + position: absolute; + top: -9px; + left: 15px; + width: 0; + height: 0; + content: ""; + transform: rotate(360deg); + border-width: 0 9px 9px 9px; + border-style: solid; + border-color: transparent transparent $navigation-border-color transparent; + } + + // Image + img { + width: 20px; // Default size (so it looks good) + height: auto; + margin-right: 0.5em; + } + + .glyphicon { + top: 0; + margin-right: 0.5em; + vertical-align: middle; + font-size: $navigation-glyph-size; + } + } + + & > .mx-navbar-item.active a { + color: $navigation-color-active; + } + + /* When hovering or the dropdown is open */ + & > .mx-navbar-item > a:hover, + & > .mx-navbar-item > a:focus, + & > .mx-navbar-item.open > a, + & > .mx-navbar-item.open > a:hover, + & > .mx-navbar-item.open > a:focus { + text-decoration: none; + color: $navigation-color-hover; + background-color: $navigation-bg-hover; + + .caret { + border-top-color: $navigation-color-hover; + border-bottom-color: $navigation-color-hover; + } + } + + & > .mx-navbar-item.open .dropdown-menu > li.mx-navbar-subitem.active a { + color: $navigation-sub-color-active; + background-color: $navigation-sub-bg-active; + + .caret { + border-top-color: $navigation-sub-color-active; + border-bottom-color: $navigation-sub-color-active; + } + } + } + @media (max-width: $screen-md) { + ul.nav > li.mx-navbar-item > a { + padding: 10px 24px; + } + .mx-navbar-item.open .dropdown-menu { + padding: 0; + border-radius: 0; + background-color: $navigation-sub-bg; + + & > li.mx-navbar-subitem > a { + padding: 10px 24px; + color: $navigation-sub-color; + border-radius: 0; + font-size: $navigation-sub-font-size; + font-weight: $font-weight-normal; + + &:hover, + &:focus { + color: $navigation-sub-color-hover; + background-color: $navigation-sub-bg-hover; + } + + &.active { + color: $navigation-sub-color-active; + background-color: $navigation-sub-bg-active; + } + } + } + } + + /* remove focus */ + &:focus { + outline: 0; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_navigation-list.scss b/test/themesource/atlas_core/web/core/widgets/_navigation-list.scss new file mode 100644 index 0000000..9dd9788 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_navigation-list.scss @@ -0,0 +1,40 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin navigation-list() { + /* ========================================================================== + Navigation list + + Default Mendix navigation list widget. A navigation list can be used to attach an action to an entire row. Such a row is called a navigation list item + ========================================================================== */ + .mx-navigationlist { + margin: 0; + padding: 0; + list-style: none; + + li.mx-navigationlist-item { + @include transition(); + padding: $spacing-medium; + border-width: 1px; + border-style: none none solid none; + border-color: $grid-border-color; + border-radius: 0; + background-color: $grid-bg; + + &:hover, + &:focus { + color: inherit; + background-color: $grid-bg-hover; + } + + &.active { + color: inherit; + background-color: $grid-bg-selected; + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_navigation-tree.scss b/test/themesource/atlas_core/web/core/widgets/_navigation-tree.scss new file mode 100644 index 0000000..5eb54dc --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_navigation-tree.scss @@ -0,0 +1,127 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin navigation-tree() { + /* ========================================================================== + Navigation + + Default Mendix navigation tree + ========================================================================== */ + .mx-navigationtree { + background-color: $navigation-bg; + + /* Every navigation item */ + .navbar-inner > ul { + margin: 0; + padding-left: 0; + + & > li { + padding: 0; + border-style: none; + + & > a { + display: flex; + align-items: center; + height: $navigation-item-height; + padding: $navigation-item-padding; + color: $navigation-color; + //border-bottom: 1px solid $navigation-border-color; + //border-radius: 0; + background-color: $navigation-bg; + text-shadow: none; + font-size: $navigation-font-size; + font-weight: $font-weight-normal; + + .caret { + border-top-color: $navigation-color; + border-bottom-color: $navigation-color; + } + + img { + width: 20px; // Default size + height: auto; + margin-right: 0.5em; + } + + .glyphicon { + top: 0; + margin-right: 0.5em; + vertical-align: middle; + font-size: $navigation-glyph-size; + } + } + + a:hover, + a:focus, + a.active { + text-decoration: none; + color: $navigation-color-hover; + background-color: $navigation-bg-hover; + + .caret { + border-top-color: $navigation-color-active; + border-bottom-color: $navigation-color-active; + } + } + + a.active { + color: $navigation-color-active; + border-left-color: $navigation-color-active; + background-color: $navigation-bg-active; + } + } + } + + /* Sub navigation item specific */ + li.mx-navigationtree-has-items { + & > ul { + margin: 0; + padding-left: 0; + background-color: $navigation-sub-bg; + + li { + margin: 0; + padding: 0; + border: 0; + + a { + padding: $spacing-medium; + text-decoration: none; + color: $navigation-sub-color; + border: 0; + background-color: $navigation-sub-bg; + text-shadow: none; + font-size: $navigation-sub-font-size; + font-weight: $font-weight-normal; + .glyphicon { + margin-right: $spacing-small; + } + + &:hover, + &:focus, + &.active { + color: $navigation-sub-color-hover; + outline: 0; + background-color: $navigation-sub-bg-hover; + } + + &.active { + color: $navigation-sub-color-active; + border: 0; + background-color: $navigation-sub-bg-active; + } + } + } + } + } + + /* remove focus */ + &:focus { + outline: 0; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_pagination.scss b/test/themesource/atlas_core/web/core/widgets/_pagination.scss new file mode 100644 index 0000000..1a60d75 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_pagination.scss @@ -0,0 +1,80 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin pagination() { + /* ========================================================================== + Pagination + + Default Mendix pagination widget. + ========================================================================== */ + + .widget-pagination { + overflow: unset; + + .pagination { + overflow: unset; + + .btn { + &:hover { + color: $btn-default-color; + background-color: $btn-default-bg-hover; + } + + &:focus { + outline: unset; + outline-offset: unset; + box-shadow: 0 0 0 0.3rem $color-primary-light; + } + } + + ul { + margin-top: unset; + margin-bottom: unset; + + li { + display: inline-flex; + align-items: center; + width: unset; + min-width: 24px; + min-height: 24px; + margin-right: 16px; + padding: 4px 8px; + transition: all 0.2s ease-in-out; + color: $font-color-default; + border-radius: $border-radius-default; + + &:last-child { + margin-right: 0; + } + + &:not(.break-view) { + &:hover { + color: $btn-default-color; + background-color: $btn-default-bg-hover; + } + + &:focus { + outline: unset; + outline-offset: unset; + box-shadow: 0 0 0 0.3rem $color-primary-light; + } + + &.active { + color: $btn-primary-color; + background-color: $btn-primary-bg; + } + + &.active:hover { + color: $btn-primary-color; + background-color: $btn-primary-bg-hover; + } + } + } + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_pop-up-menu.scss b/test/themesource/atlas_core/web/core/widgets/_pop-up-menu.scss new file mode 100644 index 0000000..c042877 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_pop-up-menu.scss @@ -0,0 +1,121 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin pop-up-menu() { + /* ========================================================================== + Pop-up menu + + Default Mendix pop-up menu + ========================================================================== */ + .popupmenu { + position: relative; + display: inline-flex; + } + + .popupmenu-trigger { + cursor: pointer; + } + + .popupmenu-menu { + position: absolute; + z-index: 999; + display: none; + flex-direction: column; + width: max-content; + border-radius: 8px; + background-color: $bg-color; + box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08); + + &.popupmenu-position-left { + top: 0; + left: 0; + transform: translateX(-100%); + } + + &.popupmenu-position-right { + top: 0; + right: 0; + transform: translateX(100%); + } + + &.popupmenu-position-top { + top: 0; + transform: translateY(-100%); + } + + &.popupmenu-position-bottom { + bottom: 0; + transform: translateY(100%); + } + + .popupmenu-basic-item:first-child, + .popupmenu-custom-item:first-child { + border-top-left-radius: 8px; + border-top-right-radius: 8px; + } + + .popupmenu-basic-item:last-child, + .popupmenu-custom-item:last-child { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + } + } + + .popupmenu-basic-divider { + width: 100%; + height: 1px; + background-color: $brand-default; + } + + .popupmenu-basic-item { + padding: 12px 16px; + color: $font-color-default; + font-size: 14px; + + &:hover, + &:focus, + &:active { + cursor: pointer; + border-color: $bg-color-secondary; + background-color: $bg-color-secondary; + } + + &-inverse { + color: $brand-inverse; + } + + &-primary { + color: $brand-primary; + } + + &-info { + color: $brand-info; + } + + &-success { + color: $brand-success; + } + + &-warning { + color: $brand-warning; + } + + &-danger { + color: $brand-danger; + } + } + + .popupmenu-custom-item { + &:hover, + &:focus, + &:active { + cursor: pointer; + border-color: $bg-color-secondary; + background-color: $bg-color-secondary; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_progress-bar.scss b/test/themesource/atlas_core/web/core/widgets/_progress-bar.scss new file mode 100644 index 0000000..474fb70 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_progress-bar.scss @@ -0,0 +1,61 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin progress-bar() { + /* ========================================================================== + Progress bar + + Default Mendix progress bar widget. + ========================================================================== */ + + .progress { + overflow: hidden; + display: flex; + flex-direction: row; + } + + .progress-bar { + align-self: flex-start; + width: 0; + height: 100%; + transition: width 0.6s ease; + text-align: center; + color: #ffffff; + border-radius: $border-radius-default; + font-weight: $font-weight-semibold; + } + + .progress-striped .progress-bar, + .progress-bar-striped { + background-image: linear-gradient( + 45deg, + rgba(255, 255, 255, 0.15) 25%, + transparent 25%, + transparent 50%, + rgba(255, 255, 255, 0.15) 50%, + rgba(255, 255, 255, 0.15) 75%, + transparent 75%, + transparent + ); + background-size: 40px 40px; + } + + .widget-progress-bar.active .progress-bar, + .progress.active .progress-bar, + .progress-bar.active { + animation: progress-bar-stripes 2s linear infinite; + } + + @keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_progress-circle.scss b/test/themesource/atlas_core/web/core/widgets/_progress-circle.scss new file mode 100644 index 0000000..86b28b5 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_progress-circle.scss @@ -0,0 +1,22 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin progress-circle() { + /* ========================================================================== + Progress Circle + + Default Mendix progress circle widget. + ========================================================================== */ + + .widget-progress-circle { + display: inline-block; + } + + .widget-progress-circle-trail-path { + stroke: $bg-color; + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_progress.scss b/test/themesource/atlas_core/web/core/widgets/_progress.scss new file mode 100644 index 0000000..fc87d33 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_progress.scss @@ -0,0 +1,65 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin progress() { + /* ========================================================================== + Progress + + Default Mendix progress widget. + ========================================================================== */ + + .mx-progress { + color: $font-color-default; + background: $bg-color-secondary; + + .mx-progress-message { + color: $font-color-default; + } + + .mx-progress-indicator { + position: relative; + overflow: hidden; + width: 100%; + max-width: 100%; + height: 2px; + margin: auto; + padding: 0; + border-radius: 0; + background: $gray-lighter; + + &:before, + &:after { + position: absolute; + top: 0; + left: 0; + display: block; + width: 50%; + height: 2px; + content: ""; + transform: translate3d(-100%, 0, 0); + background: $brand-primary; + } + + &::before { + animation: loader 2s infinite; + } + + &::after { + animation: loader 2s -2s infinite; + } + } + } + + @keyframes loader { + 0% { + transform: translate3d(-100%, 0, 0); + } + 100% { + transform: translate3d(200%, 0, 0); + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_radio-button.scss b/test/themesource/atlas_core/web/core/widgets/_radio-button.scss new file mode 100644 index 0000000..ad2771a --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_radio-button.scss @@ -0,0 +1,108 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin radio-button() { + /* ========================================================================== + Radio button + + Default Mendix radio button widget + ========================================================================== */ + .mx-radiobuttons.inline .mx-radiogroup { + display: flex; + flex-direction: row; + + .radio { + margin: 0 20px 0 0; + } + } + + .mx-radiobuttons .radio:last-child { + margin-bottom: 0; + } + + .radio { + display: flex !important; // Remove after mxui merge + align-items: center; + margin-top: 0; + } + + input[type="radio"] { + position: relative !important; // Remove after mxui merge + width: 16px; + height: 16px; + margin: 0; + cursor: pointer; + -webkit-user-select: none; + user-select: none; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + + &:before, + &:after { + position: absolute; + display: block; + transition: all 0.3s ease-in-out; + border-radius: 50%; + } + + &:before { + width: 100%; + height: 100%; + content: ""; + border: 1px solid $form-input-border-color; + background-color: transparent; + } + + &:after { + top: 50%; + left: 50%; + width: 50%; + height: 50%; + transform: translate(-50%, -50%); + pointer-events: none; + background-color: $form-input-border-focus-color; + } + + &:not(:checked):after { + transform: translate(-50%, -50%) scale(0); + opacity: 0; + } + + &:not(:disabled):not(:checked):hover:after { + background-color: $form-input-bg-hover; + } + + &:checked:after, + &:not(:disabled):not(:checked):hover:after { + content: ""; + transform: translate(-50%, -50%) scale(1); + opacity: 1; + } + + &:checked:before { + border-color: $form-input-border-focus-color; + background-color: $form-input-bg; + } + + &:disabled:before { + background-color: $form-input-bg-disabled; + } + + &:checked:disabled:before { + border-color: rgba($form-input-border-focus-color, 0.4); + } + + &:checked:disabled:after { + background-color: rgba($form-input-border-focus-color, 0.4); + } + + & + label { + margin-left: $form-label-gutter; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_range-slider.scss b/test/themesource/atlas_core/web/core/widgets/_range-slider.scss new file mode 100644 index 0000000..ee482d5 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_range-slider.scss @@ -0,0 +1,121 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin range-slider() { + /* ========================================================================== + Range slider + + Default Mendix range slider widget. + ========================================================================== */ + + .widget-range-slider { + margin-bottom: 16px; + padding: 4px 12px; + + .rc-slider-handle, + .rc-slider-dot-active { + border-color: #dddddd; + } + + .rc-slider.rc-slider-disabled { + background-color: transparent; + } + + .rc-slider.rc-slider-with-marks { + padding-bottom: 25px; + } + + &.has-error { + .rc-slider-track, + .rc-slider-rail { + background-color: $brand-danger; + } + } + } + + .rc-slider { + position: relative; + box-sizing: border-box; + width: 100%; + height: 14px; + padding: 4px 0; + border-radius: 6px; + touch-action: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + } + + .rc-slider-rail { + position: absolute; + width: 100%; + height: 4px; + border-radius: 6px; + background-color: #e9e9e9; + } + + .rc-slider-track { + position: absolute; + left: 0; + height: 4px; + border-radius: 6px; + } + + .rc-slider-step { + position: absolute; + width: 100%; + height: 4px; + background: transparent; + } + + .rc-slider-handle, + .rc-slider-dot-active { + position: absolute; + width: 14px; + height: 14px; + margin-top: -5px; + margin-left: -7px; + cursor: grab; + border: 2px solid $brand-default; + border-radius: 50%; + background-color: #ffffff; + touch-action: pan-x; + + &:focus { + border-color: #57c5f7; + outline: none; + box-shadow: 0 0 0 5px #96dbfa; + } + + &:active { + border-color: $brand-default; + box-shadow: none; + } + + &:hover { + border-color: $brand-default; + } + } + + .rc-slider-mark { + position: absolute; + top: 18px; + left: 0; + width: 100%; + font-size: 12px; + } + + .rc-slider-disabled .rc-slider-handle, + .rc-slider-disabled .rc-slider-dot { + cursor: not-allowed; + border-color: #cccccc; + background-color: #ffffff; + box-shadow: none; + } + + .rc-slider-tooltip { + z-index: 999; + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_rating.scss b/test/themesource/atlas_core/web/core/widgets/_rating.scss new file mode 100644 index 0000000..1bb5b45 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_rating.scss @@ -0,0 +1,30 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin rating() { + /* ========================================================================== + Rating + + Default Mendix rating widget. + ========================================================================== */ + + .widget-star-rating-empty { + color: #cccccc; + } + + .widget-star-rating-full-widget { + color: #ffa611; + } + + .widget-star-rating-full-default { + color: #ced0d3; + } + + .widget-star-rating-font-medium { + font-size: 30px; + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_simple-menu-bar.scss b/test/themesource/atlas_core/web/core/widgets/_simple-menu-bar.scss new file mode 100644 index 0000000..1f84b66 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_simple-menu-bar.scss @@ -0,0 +1,229 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// +@mixin simple-menu-bar() { + /* ========================================================================== + Navigation + + Default Mendix simple menu bar + ========================================================================== */ + .mx-menubar { + padding: 0; + background-color: $navigation-bg; + + ul.mx-menubar-list { + display: flex; + width: 100%; + min-height: 58px; + + li.mx-menubar-item { + margin: 0; + + > a { + display: flex; + overflow: hidden; + align-items: center; + justify-content: center; + height: 100%; + padding: $navigation-item-padding; + white-space: nowrap; + color: $navigation-color; + border-radius: 0; + font-size: $navigation-font-size; + font-weight: $font-weight-normal; + + img { + margin-right: 0.5em; + } + + .glyphicon { + top: -1px; + margin-right: 0.5em; + vertical-align: middle; + font-size: $navigation-glyph-size; + } + } + + a:hover, + a:focus, + &:hover a, + &:focus a, + &.active a { + text-decoration: none; + color: $navigation-color-hover; + background-color: $navigation-bg-hover; + } + + &.active a { + color: $navigation-color-active; + background-color: $navigation-bg-active; + } + } + } + + /* remove focus */ + &:focus { + outline: 0; + } + } + + // Vertical variation specifics + .mx-menubar-vertical { + background-color: $navigation-bg; + + ul.mx-menubar-list { + display: flex; + flex-direction: column; + + li.mx-menubar-item { + display: block; + + a { + border-bottom: 1px solid $navigation-border-color; + } + } + } + } + + // Horizontal variation specifics + .mx-menubar-horizontal { + box-shadow: 2px 0 4px 0 rgba(0, 0, 0, 0.14); + + ul.mx-menubar-list { + li.mx-menubar-item { + width: auto; + + a { + width: 100%; + } + } + } + + /* Two menu items */ + &.menubar-col-6 ul.mx-menubar-list li.mx-menubar-item { + width: 50%; + } + + /* Three menu items */ + &.menubar-col-4 ul.mx-menubar-list li.mx-menubar-item { + width: 33.33333333%; + } + + /* Four menu items */ + &.menubar-col-3 ul.mx-menubar-list li.mx-menubar-item { + width: 25%; + } + + /* Five menu items */ + &.menubar-col-2 ul.mx-menubar-list li.mx-menubar-item { + width: 20%; + } + } + + //== Regions + //## Behavior in the different regions + //-------------------------------------------------------------------------------------------------------------------// + // When used in topbar + .region-topbar { + .mx-menubar { + background-color: $navtopbar-bg; + + ul.mx-menubar-list { + li.mx-menubar-item { + a { + color: $navtopbar-color; + font-size: $navtopbar-font-size; + + .glyphicon { + font-size: $navtopbar-glyph-size; + } + } + + a:hover, + a:focus, + &:hover a, + &:focus a, + &.active a { + color: $navtopbar-color-hover; + background-color: $navtopbar-bg-hover; + } + + &.active a { + color: $navtopbar-color-active; + background-color: $navtopbar-bg-active; + } + } + } + } + + // Vertical variation specifics + .mx-menubar-vertical { + background-color: $navtopbar-bg; + + ul.mx-menubar-list { + li.mx-menubar-item { + a { + height: $navigation-item-height; + border-color: $navtopbar-border-color; + } + } + } + } + } + + // When used in sidebar + .region-sidebar { + .mx-menubar { + background-color: $navsidebar-bg; + + ul.mx-menubar-list { + li.mx-menubar-item { + a { + color: $navsidebar-color; + font-size: $navsidebar-font-size; + + .glyphicon { + font-size: $navsidebar-glyph-size; + } + } + + a:hover, + a:focus, + &:hover a, + &:focus a, + &.active a { + color: $navsidebar-color-hover; + background-color: $navsidebar-bg-hover; + } + + &.active a { + color: $navsidebar-color-active; + background-color: $navsidebar-bg-active; + } + } + } + } + + // Vertical variation specifics + .mx-menubar-vertical { + background-color: $navsidebar-bg; + + ul.mx-menubar-list { + li.mx-menubar-item { + a { + border-color: $navsidebar-border-color; + } + } + } + } + } + + @supports (padding-bottom: env(safe-area-inset-bottom)) { + .mx-menubar { + padding-bottom: env(safe-area-inset-bottom); + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_slider.scss b/test/themesource/atlas_core/web/core/widgets/_slider.scss new file mode 100644 index 0000000..4a23a5c --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_slider.scss @@ -0,0 +1,35 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin slider() { + /* ========================================================================== + Slider + + Default Mendix slider widget. + ========================================================================== */ + + .widget-slider { + margin-bottom: 16px; + padding: 5px 10px; + + .rc-slider-handle, + .rc-slider-dot-active { + border-color: #dddddd; + } + + .rc-slider.rc-slider-with-marks { + padding-bottom: 25px; + } + + &.has-error { + .rc-slider-track, + .rc-slider-rail { + background-color: $brand-danger; + } + } + } +} diff --git a/test/theme/styles/web/sass/core/widgetscustom/_switchwidget.scss b/test/themesource/atlas_core/web/core/widgets/_switch.scss old mode 100755 new mode 100644 similarity index 66% rename from test/theme/styles/web/sass/core/widgetscustom/_switchwidget.scss rename to test/themesource/atlas_core/web/core/widgets/_switch.scss index b818c6f..01b89c4 --- a/test/theme/styles/web/sass/core/widgetscustom/_switchwidget.scss +++ b/test/themesource/atlas_core/web/core/widgets/_switch.scss @@ -5,7 +5,7 @@ // To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. // -$default-android-color: #6FBEB5; +$default-android-color: #6fbeb5; $default-ios-color: rgb(100, 189, 99); @mixin bootstrap-style-ios($brand-style) { @@ -18,6 +18,32 @@ $default-ios-color: rgb(100, 189, 99); background-color: lighten($brand-style, 10%); } +@mixin style($brand-key, $brand-variable) { + div.widget-switch-brand-#{$brand-key} { + .widget-switch { + .widget-switch-btn-wrapper { + &.checked { + @include bootstrap-style-ios($brand-variable); + } + } + } + &.android { + .widget-switch { + .widget-switch-btn-wrapper { + &.checked { + @include bootstrap-style-android($brand-variable); + + .widget-switch-btn { + background: $brand-variable; + } + } + } + } + } + } +} + +// maintained for backwards compatibility prior to Switch 3.0.0. @mixin ios { .widget-switch-btn-wrapper { &.checked { @@ -52,6 +78,7 @@ $default-ios-color: rgb(100, 189, 99); } } +// maintained for backwards compatibility prior to Switch 3.0.0. @mixin android { .widget-switch-btn-wrapper { &.checked { @@ -114,36 +141,51 @@ $default-ios-color: rgb(100, 189, 99); } } -div { - &.widget-switch { - &.iOS { - @include ios; +@mixin switch() { + .widget-switch-btn-wrapper { + &:focus { + outline: 1px solid $brand-primary; } + } - &.android { - @include android; - } + @include style("primary", $brand-primary); + @include style("secondary", $brand-default); + @include style("success", $brand-success); + @include style("warning", $brand-warning); + @include style("danger", $brand-danger); + + // below is maintained for backwards compatibility prior to Switch 3.0.0. + div { + &.widget-switch { + &.iOS { + @include ios; + } + + &.android { + @include android; + } - &.auto { - @include ios; + &.auto { + @include ios; + } } } -} -html { - div { - &.dj_android { - .widget-switch { - &.auto { - @include android; + html { + div { + &.dj_android { + .widget-switch { + &.auto { + @include android; + } } } - } - &.dj_ios { - .widget-switch { - &.auto { - @include ios; + &.dj_ios { + .widget-switch { + &.auto { + @include ios; + } } } } diff --git a/test/themesource/atlas_core/web/core/widgets/_tab-container.scss b/test/themesource/atlas_core/web/core/widgets/_tab-container.scss new file mode 100644 index 0000000..6720d8d --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_tab-container.scss @@ -0,0 +1,110 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin tab-container() { + /* ========================================================================== + Tab Container + + Default Mendix Tab Container Widget. Tab containers are used to show information categorized into multiple tab pages. + This can be very useful if the amount of information that has to be displayed is larger than the amount of space on the screen + ========================================================================== */ + + .mx-tabcontainer { + .mx-tabcontainer-tabs { + margin-bottom: $spacing-medium; + border-color: $tabs-border-color; + display: flex; + + > li { + float: none; + } + + & > li > a { + margin-right: 0; + transition: all 0.2s ease-in-out; + color: $tabs-color; + font-weight: $font-weight-normal; + border-radius: $border-radius-default $border-radius-default 0 0; + + &:hover, + &:focus { + background-color: $tabs-bg-hover; + } + } + + & > li.active > a, + & > li.active > a:hover, + & > li.active > a:focus { + color: $tabs-color-active; + border: 1px solid $tabs-border-color; + border-bottom-color: #fff; + background-color: $tabs-bg; + } + } + } + + // Tab Styling Specific for mobile + .tab-mobile.mx-tabcontainer { + & > .mx-tabcontainer-tabs { + margin: 0; + text-align: center; + border-style: none; + background-color: $brand-primary; + + li { + display: table-cell; + float: none; // reset bootstrap + width: 1%; + margin: 0; + text-align: center; + border-style: none; + border-radius: 0; + + a { + padding: 16px; + text-transform: uppercase; + color: #ffffff; + border-width: 0 1px 0 0; + border-style: solid; + border-color: rgba(255, 255, 255, 0.3); + border-radius: 0; + font-size: 12px; + font-weight: $font-weight-normal; + + &:hover, + &:focus { + background-color: inherit; + } + } + + &:last-child a { + border-right: none; + } + + &.active > a, + &.active > a:hover, + &.active > a:focus { + color: #ffffff; + border-style: none; + border-radius: 0; + background-color: mix($brand-primary, #000000, 80%); + } + } + } + } + + .mx-tabcontainer-badge { + margin-left: $spacing-small; + border-radius: $font-size-small; + background-color: $label-primary-bg; + color: $label-primary-color; + font-size: $font-size-small; + font-weight: $font-weight-bold; + line-height: 1; + padding: $spacing-small/2 $spacing-small; + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_table.scss b/test/themesource/atlas_core/web/core/widgets/_table.scss new file mode 100644 index 0000000..0e8aa2c --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_table.scss @@ -0,0 +1,89 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin table() { + /* ========================================================================== + Table + + Default Mendix table widget. Tables can be used to lend structure to a page. They contain a number of rows (tr) and columns, the intersection of which is called a cell (td). Each cell can contain widgets + ========================================================================== */ + + th { + font-weight: $font-weight-bold; + } + + html body .mx-page table.mx-table { + th, + td { + &.nopadding { + padding: 0; + } + } + } + + table.mx-table { + > tbody { + /* Table row */ + > tr { + /* Table header */ + > th { + padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom + $padding-table-cell-left; + + s * { + color: $form-label-color; + font-weight: $font-weight-bold; + font-weight: $form-label-weight; + } + + > label { + padding-top: 8px; + padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it. + } + } + + /* Table cells */ + > td { + padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom + $padding-table-cell-left; + + > div > label, + .mx-referenceselector-input-wrapper label { + padding-top: 8px; + padding-bottom: 6px; // Aligns label in the middle if there is no input field next to it. + } + } + } + } + } + + // Default Mendix Table Widget inside TemplateGrid + .mx-templategrid table.mx-table { + > tbody { + > tr { + > th, + > td { + padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom + $padding-table-cell-left; + } + } + } + } + + // Default Mendix Table Widget inside Listview + .mx-list table.mx-table { + > tbody { + > tr { + > th, + > td { + padding: $padding-table-cell-top $padding-table-cell-right $padding-table-cell-bottom + $padding-table-cell-left; + } + } + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_template-grid.scss b/test/themesource/atlas_core/web/core/widgets/_template-grid.scss new file mode 100644 index 0000000..7c9ecdb --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_template-grid.scss @@ -0,0 +1,39 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin template-grid() { + /* ========================================================================== + Template grid + + Default Mendix template grid Widget. The template grid shows a list of objects in a tile view. For example, a template grid can show a list of products. The template grid has a lot in common with the data grid. The main difference is that the objects are shown in templates (a sort of small data view) instead of rows + ========================================================================== */ + + .mx-templategrid { + .mx-templategrid-content-wrapper { + table-layout: fixed; + } + + .mx-templategrid-item { + padding: $grid-padding-top $grid-padding-right $grid-padding-bottom $grid-padding-left; + cursor: default; + background-color: $grid-bg; + + &:hover { + background-color: transparent; + } + + &.selected { + background-color: $grid-bg-selected !important; + } + } + + .mx-layoutgrid { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_timeline.scss b/test/themesource/atlas_core/web/core/widgets/_timeline.scss new file mode 100644 index 0000000..4d83fe8 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_timeline.scss @@ -0,0 +1,141 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin timeline() { + /* ========================================================================== + Timeline + + Widget styles + ========================================================================== */ + + //Timeline grouping + .widget-timeline-date-header { + display: flex; + justify-content: center; + width: $timeline-grouping-size; + overflow-wrap: break-word; + padding: $spacing-small; + border: 1px solid $timeline-grouping-border-color; + border-radius: $timeline-grouping-border-radius; + } + + //Timeline entries + .widget-timeline-events-wrapper { + display: flex; + flex: 1; + margin-left: $timeline-grouping-size/2; + padding: $spacing-large 0 0 0; + border-left: 1px solid $timeline-border-color; + + ul { + flex: 1; + padding: 0; + list-style: none; + margin-bottom: 0; + } + } + + //Timeline entry + .widget-timeline-event { + flex: 1; + position: relative; + margin-left: -1px; + padding: 0 $spacing-large $spacing-large $spacing-large; + margin-bottom: $spacing-medium; + + &.clickable { + cursor: pointer; + transition: background 0.8s; + + &:hover { + .widget-timeline-title { + } + } + } + } + + //Timeline entry content wrapper + .widget-timeline-icon-wrapper { + position: absolute; + top: 0; + left: 0; + display: flex; + justify-content: center; + align-items: center; + transform: translateX(-50%); + + .glyphicon { + font-size: $timeline-icon-size; + } + + img { + max-width: 100%; + max-height: 100%; + } + } + + .widget-timeline-content-wrapper { + display: flex; + + .widget-timeline-date-time-wrapper { + order: 2; + margin-right: 0; + } + + .widget-timeline-info-wrapper { + flex: 1; + order: 1; + margin-right: $spacing-medium; + } + } + + .timeline-with-image .widget-timeline-content-wrapper { + display: flex; + + .widget-timeline-date-time-wrapper { + order: 1; + margin-right: $spacing-medium; + } + + .widget-timeline-info-wrapper { + flex: 1; + order: 2; + } + } + + //Timeline entry components + .widget-timeline-icon-circle { + width: $timeline-icon-size; + height: $timeline-icon-size; + border-radius: 50%; + background-color: $timeline-icon-color; + } + + .widget-timeline-title { + @extend h5; + } + + .widget-timeline-description { + } + + .widget-timeline-no-divider { + } + + .widget-eventTime { + @extend h5; + color: $timeline-event-time-color; + } + + .timeline-entry-image { + display: flex; + justify-content: center; + align-content: center; + border-radius: $border-radius-default; + height: $timeline-image-size; + width: $timeline-image-size; + } +} diff --git a/test/themesource/atlas_core/web/core/widgets/_typography.scss b/test/themesource/atlas_core/web/core/widgets/_typography.scss new file mode 100644 index 0000000..2b001f3 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgets/_typography.scss @@ -0,0 +1,78 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin typography() { + /* ========================================================================== + Typography + ========================================================================== */ + + p { + line-height: $line-height-base * 1.25; + margin: 0 0 $spacing-small; + } + + .mx-title { + margin: $font-header-margin; + color: $font-color-header; + font-size: $font-size-h1; + font-weight: $font-weight-header; + } + + h1, + .h1, + .h1 > * { + font-size: $font-size-h1; + } + + h2, + .h2, + .h2 > * { + font-size: $font-size-h2; + } + + h3, + .h3, + .h3 > * { + font-size: $font-size-h3; + } + + h4, + .h4, + .h4 > * { + font-size: $font-size-h4; + } + + h5, + .h5, + .h5 > * { + font-size: $font-size-h5; + } + + h6, + .h6, + .h6 > * { + font-size: $font-size-h6; + } + + h1, + h2, + h3, + h4, + h5, + h6, + .h1, + .h2, + .h3, + .h4, + .h5, + .h6 { + margin: $font-header-margin; + color: $font-color-header; + font-weight: $font-weight-header; + line-height: 1.3; + } +} diff --git a/test/themesource/atlas_core/web/core/widgetscustom/_dijit-widget.scss b/test/themesource/atlas_core/web/core/widgetscustom/_dijit-widget.scss new file mode 100644 index 0000000..8e338f7 --- /dev/null +++ b/test/themesource/atlas_core/web/core/widgetscustom/_dijit-widget.scss @@ -0,0 +1,206 @@ +// +// DISCLAIMER: +// Do not change this file because it is core styling. +// Customizing core files will make updating Atlas much more difficult in the future. +// To customize any core styling, copy the part you want to customize to styles/web/sass/app/ so the core styling is overwritten. +// + +@mixin dijit-widget() { + /* + * Mendix Documentation + * Special styles for presenting components + */ + + /* + * Dijit Widgets + * + * Default Dojo Dijit Widgets + */ + + /* + * Dijit Tooltip Widget + * + * Default tooltip used for Mendix widgets + */ + + .mx-tooltip { + .dijitTooltipContainer { + border-width: 1px; + border-color: $gray-light; + border-radius: 4px; + background: #ffffff; + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + + .mx-tooltip-content { + padding: 12px; + } + + .form-group { + margin-bottom: 4px; + } + } + + .dijitTooltipConnector { + width: 0; + height: 0; + margin-left: -8px; + border-width: 10px 10px 10px 0; + border-style: solid; + border-color: transparent; + border-right-color: $gray-light; + } + } + + /* + * Dijit Border Container + * + * Used in Mendix as split pane containers + */ + + .dijitBorderContainer { + padding: 8px; + background-color: #fcfcfc; + + .dijitSplitterV, + .dijitGutterV { + width: 5px; + border: 0; + background: #fcfcfc; + } + + .dijitSplitterH, + .dijitGutterH { + height: 5px; + border: 0; + background: #fcfcfc; + } + + .dijitSplitterH { + .dijitSplitterThumb { + top: 2px; + width: 19px; + height: 1px; + background: #b0b0b0; + } + } + + .dijitSplitterV { + .dijitSplitterThumb { + left: 2px; + width: 1px; + height: 19px; + background: #b0b0b0; + } + } + + .dijitSplitContainer-child, + .dijitBorderContainer-child { + border: 1px solid #cccccc; + } + + .dijitBorderContainer-dijitTabContainerTop, + .dijitBorderContainer-dijitTabContainerBottom, + .dijitBorderContainer-dijitTabContainerLeft, + .dijitBorderContainer-dijitTabContainerRight { + border: none; + } + + .dijitBorderContainer-dijitBorderContainer { + padding: 0; + border: none; + } + + .dijitSplitterActive { + /* For IE8 and earlier */ + margin: 0; + opacity: 0.6; + background-color: #aaaaaa; + background-image: none; + font-size: 1px; + } + + .dijitSplitContainer-dijitContentPane, + .dijitBorderContainer-dijitContentPane { + padding: 8px; + background-color: #ffffff; + } + } + + /* + * Dijit Menu Popup + * + * Used in datepickers and calendar widgets + */ + + .dijitMenuPopup { + margin-top: 8px; + + .dijitMenu { + display: block; + width: 200px !important; + margin-top: 0; // No top margin because there is no parent with margin bottom + padding: 12px 8px; + border-radius: 3px; + background: $brand-inverse; + + &:after { + position: absolute; + bottom: 100%; + left: 20px; + width: 0; + height: 0; + margin-left: -8px; + content: " "; + pointer-events: none; + border: medium solid transparent; + border-width: 8px; + border-bottom-color: $brand-inverse; + } + + // Menu item + .dijitMenuItem { + background: transparent; + + .dijitMenuItemLabel { + display: block; + overflow: hidden; + width: 180px !important; + padding: 8px; + text-overflow: ellipsis; + color: #ffffff; + border-radius: 3px; + } + + // Hover + &.dijitMenuItemHover { + background: none; + + .dijitMenuItemLabel { + background: $brand-primary; + } + } + } + + // New label + .tg_newlabelmenuitem { + .dijitMenuItemLabel { + font-weight: $font-weight-bold; + } + } + + // Seperator + .dijitMenuSeparator { + td { + padding: 0; + border-bottom-width: 3px; + } + + .dijitMenuSeparatorIconCell { + > div { + margin: 0; //override dijit styling + } + } + } + } + } +} diff --git a/test/themesource/atlas_core/web/design-properties.json b/test/themesource/atlas_core/web/design-properties.json new file mode 100644 index 0000000..2cf5c8c --- /dev/null +++ b/test/themesource/atlas_core/web/design-properties.json @@ -0,0 +1,1114 @@ +{ + "Widget": [ + { + "name": "Spacing top", + "type": "Dropdown", + "description": "The spacing above this element.", + "options": [ + { + "name": "Outer none", + "oldNames": ["None"], + "class": "spacing-outer-top-none" + }, + { + "name": "Outer small", + "oldNames": ["Small"], + "class": "spacing-outer-top" + }, + { + "name": "Outer medium", + "oldNames": ["Medium"], + "class": "spacing-outer-top-medium" + }, + { + "name": "Outer large", + "oldNames": ["Large"], + "class": "spacing-outer-top-large" + }, + { + "name": "Inner none", + "class": "spacing-inner-top-none" + }, + { + "name": "Inner small", + "class": "spacing-inner-top" + }, + { + "name": "Inner medium", + "class": "spacing-inner-top-medium" + }, + { + "name": "Inner large", + "class": "spacing-inner-top-large" + } + ] + }, + { + "name": "Spacing bottom", + "type": "Dropdown", + "description": "The spacing below this element.", + "options": [ + { + "name": "Outer none", + "oldNames": ["None"], + "class": "spacing-outer-bottom-none" + }, + { + "name": "Outer small", + "oldNames": ["Small"], + "class": "spacing-outer-bottom" + }, + { + "name": "Outer medium", + "oldNames": ["Medium"], + "class": "spacing-outer-bottom-medium" + }, + { + "name": "Outer large", + "oldNames": ["Large"], + "class": "spacing-outer-bottom-large" + }, + { + "name": "Inner none", + "class": "spacing-inner-bottom-none" + }, + { + "name": "Inner small", + "class": "spacing-inner-bottom" + }, + { + "name": "Inner medium", + "class": "spacing-inner-bottom-medium" + }, + { + "name": "Inner large", + "class": "spacing-inner-bottom-large" + } + ] + }, + { + "name": "Spacing left", + "type": "Dropdown", + "description": "The spacing to the left of this element.", + "options": [ + { + "name": "Outer none", + "oldNames": ["None"], + "class": "spacing-outer-left-none" + }, + { + "name": "Outer small", + "oldNames": ["Small"], + "class": "spacing-outer-left" + }, + { + "name": "Outer medium", + "oldNames": ["Medium"], + "class": "spacing-outer-left-medium" + }, + { + "name": "Outer large", + "oldNames": ["Large"], + "class": "spacing-outer-left-large" + }, + { + "name": "Inner none", + "class": "spacing-inner-left-none" + }, + { + "name": "Inner small", + "class": "spacing-inner-left" + }, + { + "name": "Inner medium", + "class": "spacing-inner-left-medium" + }, + { + "name": "Inner large", + "class": "spacing-inner-left-large" + } + ] + }, + { + "name": "Spacing right", + "type": "Dropdown", + "description": "The spacing to the right of this element.", + "options": [ + { + "name": "Outer none", + "oldNames": ["None"], + "class": "spacing-outer-right-none" + }, + { + "name": "Outer small", + "oldNames": ["Small"], + "class": "spacing-outer-right" + }, + { + "name": "Outer medium", + "oldNames": ["Medium"], + "class": "spacing-outer-right-medium" + }, + { + "name": "Outer large", + "oldNames": ["Large"], + "class": "spacing-outer-right-large" + }, + { + "name": "Inner none", + "class": "spacing-inner-right-none" + }, + { + "name": "Inner small", + "class": "spacing-inner-right" + }, + { + "name": "Inner medium", + "class": "spacing-inner-right-medium" + }, + { + "name": "Inner large", + "class": "spacing-inner-right-large" + } + ] + }, + { + "name": "Align self", + "oldNames": ["Align Self"], + "type": "Dropdown", + "description": "Float the element to the left or to the right.", + "options": [ + { + "name": "Left", + "class": "pull-left" + }, + { + "name": "Right", + "class": "pull-right" + } + ] + }, + { + "name": "Hide on phone", + "oldNames": ["Hide On Phone"], + "type": "Toggle", + "description": "Hide element on phone.", + "class": "hide-phone" + }, + { + "name": "Hide on tablet", + "oldNames": ["Hide On Tablet"], + "type": "Toggle", + "description": "Hide element on tablet.", + "class": "hide-tablet" + }, + { + "name": "Hide on desktop", + "oldNames": ["Hide On Desktop"], + "type": "Toggle", + "description": "Hide element on desktop.", + "class": "hide-desktop" + } + ], + "DivContainer": [ + { + "name": "Align content", + "type": "Dropdown", + "description": "Align content of this element left, right or center it. Align elements inside the container as a row or as a column.", + "options": [ + { + "name": "Left align as a row", + "oldNames": ["Left align as row"], + "class": "row-left" + }, + { + "name": "Center align as a row", + "oldNames": ["Center align as row"], + "class": "row-center" + }, + { + "name": "Right align as a row", + "oldNames": ["Right align as row"], + "class": "row-right" + }, + { + "name": "Left align as a column", + "oldNames": ["Left align as column"], + "class": "col-left" + }, + { + "name": "Center align as a column", + "oldNames": ["Center align as column"], + "class": "col-center" + }, + { + "name": "Right align as a column", + "oldNames": ["Right align as column"], + "class": "col-right" + } + ] + }, + { + "name": "Background color", + "type": "Dropdown", + "description": "Change the background color of the container.", + "options": [ + { + "name": "Background Primary", + "oldNames": ["Background Default"], + "class": "background-main" + }, + { + "name": "Background Secondary", + "oldNames": ["Background Dashboard"], + "class": "background-secondary" + }, + { + "name": "Brand Primary", + "oldNames": ["Primary"], + "class": "background-primary" + }, + { + "name": "Brand Secondary", + "oldNames": ["Default", "Brand Default"], + "class": "background-default" + }, + { + "name": "Brand Success", + "oldNames": ["Success"], + "class": "background-success" + }, + { + "name": "Brand Warning", + "oldNames": ["Warning"], + "class": "background-warning" + }, + { + "name": "Brand Danger", + "oldNames": ["Danger"], + "class": "background-danger" + }, + { + "name": "Brand Gradient", + "class": "background-brand-gradient" + } + ] + }, + { + "name": "Shade", + "type": "Dropdown", + "description": "Apply a shade to your background color", + "options": [ + { + "name": "Light", + "class": "background-light" + }, + { + "name": "Dark", + "class": "background-dark" + } + ] + } + ], + "Button": [ + { + "name": "Size", + "type": "Dropdown", + "description": "Size of the buttons", + "options": [ + { + "name": "Small", + "class": "btn-sm" + }, + { + "name": "Large", + "class": "btn-lg" + } + ] + }, + { + "name": "Full width", + "type": "Toggle", + "description": "Extend the button to the full width of the container it is placed in.", + "class": "btn-block" + }, + { + "name": "Border", + "oldNames": ["Bordered"], + "type": "Toggle", + "description": "Style the button with a transparent background, a colored border, and colored text.", + "class": "btn-bordered" + }, + { + "name": "Align icon", + "type": "Dropdown", + "description": "Place the icon to the right or on top of the button.", + "options": [ + { + "name": "Right", + "class": "btn-icon-right" + }, + { + "name": "Top", + "class": "btn-icon-top" + } + ] + } + ], + "ListView": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Change the appearance of rows in the list view.", + "options": [ + { + "name": "Lined", + "class": "listview-lined" + }, + { + "name": "Striped", + "class": "listview-striped" + }, + { + "name": "Bordered", + "class": "listview-bordered" + }, + { + "name": "No Styling", + "class": "listview-stylingless" + } + ] + }, + { + "name": "Hover style", + "type": "Toggle", + "description": "Highlight a row when hovering over it. Only useful when the row is clickable.", + "class": "listview-hover" + }, + { + "name": "Row Size", + "type": "Dropdown", + "description": "Change the row spacing of the list view.", + "options": [ + { + "name": "Small", + "class": "listview-sm" + }, + { + "name": "Large", + "class": "listview-lg" + } + ] + } + ], + "DataGrid": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Choose one of the following styles to change the appearance of the data grid.", + "options": [ + { + "name": "Striped", + "class": "datagrid-striped" + }, + { + "name": "Bordered", + "class": "datagrid-bordered" + }, + { + "name": "Lined", + "class": "datagrid-lined" + } + ] + }, + { + "name": "Hover style", + "type": "Toggle", + "description": "Enable data grid hover to make the rows hoverable.", + "class": "datagrid-hover" + }, + { + "name": "Row size", + "type": "Dropdown", + "description": "Increase or decrease the row spacing of the data grid row.", + "options": [ + { + "name": "Small", + "class": "datagrid-sm" + }, + { + "name": "Large", + "class": "datagrid-lg" + } + ] + } + ], + "TemplateGrid": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Choose one of the following styles to change the appearance of the template grid.", + "options": [ + { + "name": "Striped", + "class": "templategrid-striped" + }, + { + "name": "Bordered", + "class": "templategrid-bordered" + }, + { + "name": "Lined", + "class": "templategrid-lined" + }, + { + "name": "No styling", + "class": "templategrid-stylingless" + } + ] + }, + { + "name": "Hover style", + "type": "Toggle", + "description": "Enable template grid hover to make the rows hoverable.", + "class": "templategrid-hover" + } + ], + "GroupBox": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Choose one of the following styles to change the appearance of the groupbox.", + "options": [ + { + "name": "Brand Primary", + "oldNames": ["Primary"], + "class": "groupbox-primary" + }, + { + "name": "Brand Secondary", + "oldNames": ["Default", "Brand Default"], + "class": "groupbox-secondary" + }, + { + "name": "Brand Success", + "oldNames": ["Success"], + "class": "groupbox-success" + }, + { + "name": "Brand Warning", + "oldNames": ["Warning"], + "class": "groupbox-warning" + }, + { + "name": "Brand Danger", + "oldNames": ["Danger"], + "class": "groupbox-danger" + }, + { + "name": "Transparent", + "class": "groupbox-transparent" + } + ] + }, + { + "name": "Callout style", + "type": "Toggle", + "description": "Enable the groupbox callout functionality to highlight the importance of the groupbox.", + "class": "groupbox-callout" + } + ], + "StaticImageViewer": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Choose the style of your image.", + "options": [ + { + "name": "Rounded", + "class": "img-rounded" + }, + { + "name": "Thumbnail", + "class": "img-thumbnail" + }, + { + "name": "Circle", + "class": "img-circle" + } + ] + }, + { + "name": "Center", + "type": "Toggle", + "description": "Align the image in the center of an element.", + "class": "img-center" + }, + { + "name": "Fit", + "type": "Dropdown", + "description": "Choose the image fit.", + "options": [ + { + "name": "Fill", + "class": "img-fill" + }, + { + "name": "Contain", + "class": "img-contain" + }, + { + "name": "Cover", + "class": "img-cover" + }, + { + "name": "Scale-down", + "class": "img-scale-down" + } + ] + } + ], + "DynamicImageViewer": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Choose the style of your image.", + "options": [ + { + "name": "Rounded", + "class": "img-rounded" + }, + { + "name": "Thumbnail", + "class": "img-thumbnail" + }, + { + "name": "Circle", + "class": "img-circle" + } + ] + }, + { + "name": "Center", + "type": "Toggle", + "description": "Align the image in the center of an element.", + "class": "img-center" + }, + { + "name": "Fit", + "type": "Dropdown", + "description": "Choose the image fit.", + "options": [ + { + "name": "Fill", + "class": "img-fill" + }, + { + "name": "Contain", + "class": "img-contain" + }, + { + "name": "Cover", + "class": "img-cover" + }, + { + "name": "Scale-down", + "class": "img-scale-down" + } + ] + } + ], + "Label": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Change the appearance of a label.", + "options": [ + { + "name": "Brand Primary", + "oldNames": ["Primary"], + "class": "label-primary" + }, + { + "name": "Brand Secondary", + "oldNames": ["Default", "Brand Default"], + "class": "label-secondary" + }, + { + "name": "Brand Success", + "oldNames": ["Success"], + "class": "label-success" + }, + { + "name": "Brand Warning", + "oldNames": ["Warning"], + "class": "label-warning" + }, + { + "name": "Brand Danger", + "oldNames": ["Danger"], + "class": "label-danger" + } + ] + } + ], + "TabContainer": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Change the appearance of the tab container", + "options": [ + { + "name": "Pills", + "class": "tab-pills" + }, + { + "name": "Lined", + "class": "tab-lined" + }, + { + "name": "Bordered", + "class": "tab-bordered" + }, + { + "name": "Wizard", + "class": "tab-wizard" + } + ] + }, + { + "name": "Tab Position", + "type": "Dropdown", + "description": "Change the position of the tabs", + "options": [ + { + "name": "Left", + "class": "tab-left" + }, + { + "name": "Center", + "class": "tab-center" + }, + { + "name": "Right", + "class": "tab-right" + } + ] + }, + { + "name": "Justify", + "type": "Toggle", + "description": "Justify the tabs to 100%", + "class": "tab-justified" + } + ], + "DynamicText": [ + { + "name": "Size", + "type": "Dropdown", + "description": "Make the text smaller or larger.", + "options": [ + { + "name": "Small", + "class": "text-small" + }, + { + "name": "Large", + "class": "text-large" + } + ] + }, + { + "name": "Weight", + "oldNames": ["Font Weight"], + "type": "Dropdown", + "description": "Emphasize the text with a heavier or lighter font weight", + "options": [ + { + "name": "Light", + "class": "text-light" + }, + { + "name": "Normal", + "class": "text-normal" + }, + { + "name": "Semibold", + "class": "text-semibold" + }, + { + "name": "Bold", + "class": "text-bold" + } + ] + }, + { + "name": "Color", + "type": "Dropdown", + "description": "Change the color of text.", + "options": [ + { + "name": "Header color", + "class": "text-header" + }, + { + "name": "Detail color", + "class": "text-detail" + }, + { + "name": "Brand Primary", + "oldNames": ["Primary"], + "class": "text-primary" + }, + { + "name": "Brand Secondary", + "oldNames": ["Default", "Brand Default"], + "class": "text-secondary" + }, + { + "name": "Brand Success", + "oldNames": ["Success"], + "class": "text-success" + }, + { + "name": "Brand Warning", + "oldNames": ["Warning"], + "class": "text-warning" + }, + { + "name": "Brand Danger", + "oldNames": ["Danger"], + "class": "text-danger" + }, + { + "name": "White", + "class": "text-white" + } + ] + }, + { + "name": "Alignment", + "type": "Dropdown", + "description": "Align the text.", + "options": [ + { + "name": "Left", + "class": "text-left d-block" + }, + { + "name": "Center", + "class": "text-center d-block" + }, + { + "name": "Right", + "class": "text-right d-block" + } + ] + }, + { + "name": "Transform", + "type": "Dropdown", + "description": "Change the letter case of the text.", + "options": [ + { + "name": "Lowercase", + "class": "text-lowercase" + }, + { + "name": "Uppercase", + "class": "text-uppercase" + }, + { + "name": "Capitalize", + "class": "text-capitalize" + } + ] + }, + { + "name": "Wrap options", + "type": "Dropdown", + "description": "Break long words and sentences into multiple lines.", + "options": [ + { + "name": "Wrap", + "class": "text-break" + }, + { + "name": "No Wrap", + "class": "text-nowrap" + } + ] + } + ], + "Table": [ + { + "name": "Style", + "type": "Dropdown", + "description": "Change the appearance of cells in the table.", + "options": [ + { + "name": "Bordered", + "class": "table-bordered" + }, + { + "name": "Lined", + "class": "table-lined" + } + ] + }, + { + "name": "Compact", + "type": "Toggle", + "description": "Change the spacing between cells to be compact.", + "class": "table-compact" + } + ], + "com.mendix.widget.custom.badge.Badge": [ + { + "name": "Style", + "type": "Dropdown", + "description": "The brand style affecting this element's appearance.", + "options": [ + { + "name": "Brand Primary", + "class": "label-primary" + }, + { + "name": "Brand Secondary", + "class": "label-secondary" + }, + { + "name": "Brand Success", + "class": "label-success" + }, + { + "name": "Brand Warning", + "class": "label-warning" + }, + { + "name": "Brand Danger", + "class": "label-danger" + } + ] + } + ], + "com.mendix.widget.custom.progressbar.ProgressBar": [ + { + "name": "Striped bar", + "type": "Toggle", + "description": "Striped progress bar", + "class": "progress-striped" + }, + { + "name": "Bar color", + "type": "Dropdown", + "description": "Color of the progress bar", + "options": [ + { + "name": "Primary", + "class": "progress-bar-primary" + }, + { + "name": "Success", + "class": "progress-bar-success" + }, + { + "name": "Warning", + "class": "progress-bar-warning" + }, + { + "name": "Danger", + "class": "progress-bar-danger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Size of the progress bar", + "options": [ + { + "name": "Small", + "class": "progress-bar-small" + }, + { + "name": "Medium", + "class": "progress-bar-medium" + }, + { + "name": "Large", + "class": "progress-bar-large" + } + ] + } + ], + "com.mendix.widget.custom.badgebutton.BadgeButton": [ + { + "name": "Style", + "type": "Dropdown", + "description": "The brand style affecting this element's appearance.", + "options": [ + { + "name": "Brand Primary", + "class": "btn-primary" + }, + { + "name": "Brand Secondary", + "class": "btn-secondary" + }, + { + "name": "Brand Success", + "class": "btn-success" + }, + { + "name": "Brand Warning", + "class": "btn-warning" + }, + { + "name": "Brand Danger", + "class": "btn-danger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Size of the buttons", + "options": [ + { + "name": "Small", + "class": "btn-sm" + }, + { + "name": "Large", + "class": "btn-lg" + } + ] + }, + { + "name": "Full width", + "type": "Toggle", + "description": "Extend the button to the full width of the container it is placed in.", + "class": "btn-block" + }, + { + "name": "Border", + "oldNames": ["Bordered"], + "type": "Toggle", + "description": "Style the button with a transparent background, a colored border, and colored text.", + "class": "btn-bordered" + } + ], + "com.mendix.widget.custom.progresscircle.ProgressCircle": [ + { + "name": "Bar color", + "type": "Dropdown", + "description": "Color of the progress bar", + "options": [ + { + "name": "Primary", + "class": "widget-progress-circle-primary" + }, + { + "name": "Success", + "class": "widget-progress-circle-success" + }, + { + "name": "Warning", + "class": "widget-progress-circle-warning" + }, + { + "name": "Danger", + "class": "widget-progress-circle-danger" + } + ] + }, + { + "name": "Size", + "type": "Dropdown", + "description": "Thickness of the progress circle", + "options": [ + { + "name": "Small", + "class": "widget-progress-circle-thickness-small" + }, + { + "name": "Medium", + "class": "widget-progress-circle-thickness-medium" + }, + { + "name": "Large", + "class": "widget-progress-circle-thickness-large" + } + ] + } + ], + "com.mendix.widget.custom.switch.Switch": [ + { + "name": "Style", + "type": "Dropdown", + "description": "The brand style affecting this element's appearance.", + "options": [ + { + "name": "Brand Primary", + "class": "widget-switch-brand-primary" + }, + { + "name": "Brand Secondary", + "class": "widget-switch-brand-secondary" + }, + { + "name": "Brand Success", + "class": "widget-switch-brand-success" + }, + { + "name": "Brand Warning", + "class": "widget-switch-brand-warning" + }, + { + "name": "Brand Danger", + "class": "widget-switch-brand-danger" + } + ] + }, + { + "name": "Device style", + "type": "Dropdown", + "description": "The general appearance of the switch. When no option selected iOS styles are applied", + "options": [ + { + "name": "iOS", + "class": "iOS" + }, + { + "name": "Android", + "class": "android" + } + ] + } + ], + "MenuBar": [ + { + "name": "Hide icons", + "type": "Toggle", + "description": "Hide the navigation items icon", + "class": "hide-icons" + } + ], + "NavigationTree": [ + { + "name": "Hide icons", + "type": "Toggle", + "description": "Hide the navigation items icon", + "class": "hide-icons" + } + ], + "SimpleMenuBar": [ + { + "name": "Hide icons", + "type": "Toggle", + "description": "Hide the navigation items icon", + "class": "hide-icons" + } + ] +} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss b/test/themesource/atlas_core/web/layouts/_layout-atlas-phone.scss old mode 100755 new mode 100644 similarity index 74% rename from test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss rename to test/themesource/atlas_core/web/layouts/_layout-atlas-phone.scss index f9d6e9d..5ee3089 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-phone.scss +++ b/test/themesource/atlas_core/web/layouts/_layout-atlas-phone.scss @@ -8,9 +8,13 @@ min-height: $m-header-height; border-style: none; background-color: $m-header-bg; - &::before { display: none; } } + .region-sidebar { + .mx-navigationtree .navbar-inner > ul > li > a .glyphicon { + margin-right: $spacing-medium; + } + } } diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss b/test/themesource/atlas_core/web/layouts/_layout-atlas-responsive.scss old mode 100755 new mode 100644 similarity index 61% rename from test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss rename to test/themesource/atlas_core/web/layouts/_layout-atlas-responsive.scss index 670ec9f..1ed8b66 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas-responsive.scss +++ b/test/themesource/atlas_core/web/layouts/_layout-atlas-responsive.scss @@ -3,29 +3,32 @@ Extra styling for responsive layouts ========================================================================== */ +$sidebar-width: 232px; +$sidebar-icon-height: 52px; +$sidebar-icon-width: 52px; + +.layout-atlas-responsive, .layout-atlas-responsive-default { - $sidebar-width: 60px; + $sidebar-width: 232px; @media (min-width: $screen-md) { - .mx-scrollcontainer:not(.mx-scrollcontainer-open) > .region-sidebar { + .mx-scrollcontainer-shrink:not(.mx-scrollcontainer-open) > .region-sidebar, + .mx-scrollcontainer-push:not(.mx-scrollcontainer-open) > .region-sidebar, + .mx-scrollcontainer-slide:not(.mx-scrollcontainer-open) > .region-sidebar { width: $sidebar-width !important; .mx-scrollcontainer-wrapper > .mx-navigationtree ul li { &.mx-navigationtree-has-items:hover { - a { - background-color: $navsidebar-sub-bg; - } - ul { position: absolute; z-index: 100; top: 0; bottom: 0; - left: $sidebar-width; + left: $sidebar-icon-width; display: block; overflow-y: auto; - min-width: 200px; - padding-top: 10px; + min-width: auto; + padding: $spacing-small 0; } } @@ -39,7 +42,6 @@ } } - .mx-scrollcontainer-slide { &:not(.mx-scrollcontainer-open) > .region-sidebar { overflow: hidden; @@ -70,44 +72,51 @@ display: inline-block !important; } } - - .mx-scrollcontainer-slide, - .mx-scrollcontainer-push { - &:not(.mx-scrollcontainer-open) > .region-sidebar { - visibility: hidden; - } - } // Sidebar .region-sidebar { .toggle-btn { - width: $sidebar-width; - height: 60px; + width: $sidebar-icon-width; border-color: transparent; border-radius: 0; background: transparent; } - .mx-scrollcontainer-wrapper > .mx-navigationtree { - .navbar-inner > ul > li { + .mx-scrollcontainer-wrapper { + .toggle-btn-wrapper { + display: flex; + padding: $spacing-small; + align-items: center; + min-height: $topbar-minimalheight + 4px; + background: $navsidebar-sub-bg; + } + .toggle-btn { + padding: $spacing-medium; + + img { + width: 24px; + height: 24px; + } + } + .toggle-text { + color: #fff; + font-weight: bold; + } + & > .mx-navigationtree .navbar-inner > ul > li { & > a { - height: $sidebar-width; + height: $sidebar-icon-height; + padding: $spacing-small 0; + white-space: nowrap; + overflow: hidden; // Glyph icon .glyphicon { display: flex; align-items: center; justify-content: center; - width: 40px; - height: 40px; - margin-left: -5px; - padding: 10px; - border-radius: 3px; - } - - &.active { - .glyphicon { - background: $brand-primary; - } + width: $sidebar-icon-width; + height: $sidebar-icon-height; + padding: $spacing-small $spacing-medium; + border-radius: $border-radius-default; } } } @@ -116,14 +125,22 @@ // Topbar .region-topbar { + padding: 0 $spacing-small; } } // Topbar variant .layout-atlas-responsive-topbar { + .region-topbar { + padding: 0 $spacing-medium; + @media (max-width: $screen-sm-max) { + padding: 0 $spacing-small; + } + } } // All responsive layouts +.layout-atlas-responsive, .layout-atlas-responsive-default, .layout-atlas-responsive-topbar { // Topbar diff --git a/test/themesource/atlas_core/web/layouts/_layout-atlas-tablet.scss b/test/themesource/atlas_core/web/layouts/_layout-atlas-tablet.scss new file mode 100644 index 0000000..19b8b0f --- /dev/null +++ b/test/themesource/atlas_core/web/layouts/_layout-atlas-tablet.scss @@ -0,0 +1,20 @@ +/* ========================================================================== + Atlas layout + + Extra styling for tablet layouts +========================================================================== */ +.layout-atlas-tablet { + .region-topbar { + min-height: $m-header-height; + border-style: none; + background-color: $m-header-bg; + &::before { + display: none; + } + } + .region-sidebar { + .mx-navigationtree .navbar-inner > ul > li > a .glyphicon { + margin-right: $spacing-medium; + } + } +} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss b/test/themesource/atlas_core/web/layouts/_layout-atlas.scss old mode 100755 new mode 100644 similarity index 66% rename from test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss rename to test/themesource/atlas_core/web/layouts/_layout-atlas.scss index 150f73d..a25ba07 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/layouts/_layout-atlas.scss +++ b/test/themesource/atlas_core/web/layouts/_layout-atlas.scss @@ -1,29 +1,46 @@ /* ========================================================================== Atlas layout - + The core stucture of all atlas layouts ========================================================================== */ .layout-atlas { // Toggle button + .toggle-btn > img, .toggle-btn > .glyphicon { margin: 0; } + .mx-scrollcontainer-open { + .expand-btn > img { + transform: rotate(180deg); + } + } // Sidebar .region-sidebar { background-color: $navsidebar-bg; - + z-index: 101; + position: relative; + box-shadow: 0 0 4px rgb(0 0 0 / 14%), 2px 4px 8px rgb(0 0 0 / 28%); + .mx-scrollcontainer-wrapper { + display: flex; + flex-direction: column; + padding: $spacing-small 0; + } .mx-navigationtree .navbar-inner > ul > li > a { - padding: 0 15px; - + padding: $spacing-medium; .glyphicon { - margin-right: 10px; + margin-right: $spacing-small; } } + .sidebar-heading { + background: $navsidebar-sub-bg; + } .toggle-btn { + margin-right: $spacing-small; border-color: transparent; border-radius: 0; background: transparent; + padding: $spacing-medium; } } @@ -32,18 +49,9 @@ position: relative; z-index: 1; // Show dropshadow min-height: $topbar-minimalheight; - border-bottom: 1px solid $navtopbar-border-color; background-color: $navtopbar-bg; - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14); + box-shadow: 0px 2px 2px rgba(194, 196, 201, 0.30354); - &::before { - z-index: 1; - display: block; - width: 100%; - height: 4px; - content: ""; - background-color: $brand-primary; - } // Topbar Content .topbar-content { display: flex; @@ -53,21 +61,22 @@ // Toggle btn .toggle-btn { - margin-right: 15px; - padding: 5px; + margin-right: $spacing-medium; } // For your company, product, or project name .navbar-brand { display: inline-block; - // reset bootstrap - float: none; + float: none; // reset bootstrap height: auto; padding: 0; line-height: inherit; + font-size: 16px; + margin-right: $spacing-small; img { display: inline-block; + margin-right: $spacing-small; @if $brand-logo !=false { width: 0; height: 0; @@ -83,7 +92,7 @@ } a { - margin-left: 5px; + margin-left: $spacing-small; color: $navbar-brand-name; font-size: 20px; @@ -93,12 +102,12 @@ } } } - .mx-navbar { - display: inline-block; - margin-left: $gutter-size; + display: inline-flex; vertical-align: middle; background: transparent; + justify-content: center; + align-items: center; & > .mx-navbar-item { & > a { @@ -108,4 +117,9 @@ } } } + .mx-scrollcontainer-slide { + &:not(.mx-scrollcontainer-open) > .region-sidebar { + overflow: hidden; + } + } } diff --git a/test/themesource/atlas_core/web/main.scss b/test/themesource/atlas_core/web/main.scss new file mode 100644 index 0000000..2e69faa --- /dev/null +++ b/test/themesource/atlas_core/web/main.scss @@ -0,0 +1,325 @@ +// Utilities +@import "core/_legacy/bootstrap/bootstrap"; +@import "core/_legacy/bootstrap/bootstrap-rtl"; +@import "core/_legacy/mxui"; + +//================================== CORE ==================================\\ + +// Default variables +@import "exclusion-variables"; +@import "../../../theme/web/exclusion-variables"; +@import "variables"; +@import "../../../theme/web/custom-variables"; + +// Font Family Import +@if $font-family-import != false { + @import url($font-family-import); +} + +// Base +@import "core/base/mixins/animations"; +@import "core/base/mixins/spacing"; +@import "core/base/mixins/layout-spacing"; +@import "core/base/mixins/buttons"; +@import "core/base/mixins/groupbox"; +@import "core/base/animation"; +@import "core/base/flex"; +@import "core/base/spacing"; +@import "core/base/reset"; +@import "core/base/base"; +@import "core/base/login"; + +// Widgets +@import "core/widgets/input"; +@if not $exclude-input { + @include input(); +} + +@import "core/helpers/background"; +@if not $exclude-background-helpers { + @include background-helpers(); +} + +@import "core/widgets/label"; +@if not $exclude-label { + @include label(); +} + +@import "core/widgets/badge"; +@if not $exclude-badge { + @include badge(); +} + +@import "core/helpers/label"; +@if not $exclude-label and not $exclude-label-helpers { + @include label-helpers(); +} + +@import "core/widgets/badge-button"; +@if not $exclude-badge-button { + @include badge-button(); +} + +@import "core/helpers/badge-button"; +@if not $exclude-badge-button and not $exclude-badge-button-helpers { + @include badge-button-helpers(); +} + +@import "core/widgets/button"; +@if not $exclude-button { + @include button(); +} + +@import "core/helpers/button"; +@if not $exclude-button and not $exclude-button-helpers { + @include button-helpers(); +} + +@import "core/widgets/check-box"; +@if not $exclude-check-box { + @include check-box(); +} + +@import "core/widgets/grid"; +@if not $exclude-grid { + @include grid(); +} + +@import "core/widgets/data-grid"; +@if not $exclude-data-grid { + @include data-grid(); +} + +@import "core/helpers/data-grid"; +@if not $exclude-data-grid and not $exclude-data-grid-helpers { + @include data-grid-helpers(); +} + +@import "core/widgets/data-view"; +@if not $exclude-data-view { + @include data-view(); +} + +@import "core/widgets/date-picker"; +@if not $exclude-data-picker { + @include date-picker(); +} + +@import "core/widgets/header"; +@if not $exclude-header { + @include header(); +} + +@import "core/widgets/glyphicon"; +@if not $exclude-glyphicon { + @include glyphicon(); +} + +@import "core/widgets/group-box"; +@if not $exclude-group-box { + @include group-box(); +} + +@import "core/helpers/group-box"; +@if not $exclude-group-box and not $exclude-group-box-helpers { + @include group-box-helpers(); +} + +@import "core/helpers/image"; +@if not $exclude-image-helpers { + @include image-helpers(); +} + +@import "core/widgets/list-view"; +@if not $exclude-list-view { + @include list-view(); +} + +@import "core/helpers/list-view"; +@if not $exclude-list-view and not $exclude-list-view-helpers { + @include list-view-helpers(); +} + +@import "core/widgets/modal"; +@if not $exclude-modal { + @include modal(); +} + +@import "core/widgets/navigation-bar"; +@if not $exclude-navigation-bar { + @include navigation-bar(); +} + +@import "core/helpers/navigation-bar"; +@if not $exclude-navigation-bar and not $exclude-navigation-bar-helpers { + @include navigation-bar-helpers(); +} + +@import "core/widgets/navigation-list"; +@if not $exclude-navigation-list { + @include navigation-list(); +} + +@import "core/widgets/navigation-tree"; +@if not $exclude-navigation-tree { + @include navigation-tree(); +} + +@import "core/helpers/navigation-tree"; +@if not $exclude-navigation-tree and not $exclude-navigation-tree-helpers { + @include navigation-tree-helpers(); +} + +@import "core/widgets/pop-up-menu"; +@if not $exclude-pop-up-menu { + @include pop-up-menu(); +} + +@import "core/widgets/simple-menu-bar"; +@if not $exclude-simple-menu-bar { + @include simple-menu-bar(); +} + +@import "core/helpers/simple-menu-bar"; +@if not $exclude-simple-menu-bar and not $exclude-simple-menu-bar-helpers { + @include simple-menu-bar-helpers(); +} + +@import "core/widgets/radio-button"; +@if not $exclude-radio-button { + @include radio-button(); +} + +@import "core/widgets/tab-container"; +@if not $exclude-tab-container { + @include tab-container(); +} + +@import "core/helpers/tab-container"; +@if not $exclude-tab-container and not $exclude-tab-container-helpers { + @include tab-container-helpers(); +} + +@import "core/widgets/table"; +@if not $exclude-table { + @include table(); +} + +@import "core/helpers/table"; +@if not $exclude-table and not $exclude-table-helpers { + @include table-helpers(); +} + +@import "core/widgets/template-grid"; +@if not $exclude-template-grid { + @include template-grid(); +} + +@import "core/helpers/template-grid"; +@if not $exclude-template-grid and not $exclude-template-grid-helpers { + @include template-grid-helpers(); +} + +@import "core/widgets/typography"; +@if not $exclude-typography { + @include typography(); +} + +@import "core/helpers/typography"; +@if not $exclude-typography and not $exclude-typography-helpers { + @include typography-helpers(); +} + +@import "core/widgets/layout-grid"; +@if not $exclude-layout-grid { + @include layout-grid(); +} + +@import "core/widgets/pagination"; +@if not $exclude-pagination { + @include pagination(); +} + +@import "core/widgets/progress"; +@if not $exclude-progress { + @include progress(); +} + +@import "core/widgets/progress-bar"; +@if not $exclude-progress-bar { + @include progress-bar(); +} + +@import "core/helpers/progress-bar"; +@if not $exclude-progress-bar and not $exclude-progress-bar-helpers { + @include progress-bar-helpers(); +} + +@import "core/widgets/progress-circle"; +@if not $exclude-progress-circle { + @include progress-circle(); +} + +@import "core/helpers/progress-circle"; +@if not $exclude-progress-circle and not $exclude-progress-circle-helpers { + @include progress-circle-helpers(); +} + +@import "core/widgets/rating"; +@if not $exclude-rating { + @include rating(); +} + +@import "core/helpers/rating"; +@if not $exclude-rating and not $exclude-rating-helpers { + @include rating-helpers(); +} + +@import "core/widgets/range-slider"; +@if not $exclude-range-slider { + @include range-slider(); +} + +@import "core/helpers/range-slider"; +@if not $exclude-range-slider and not $exclude-range-slider-helpers { + @include range-slider-helpers(); +} + +@import "core/widgets/slider"; +@if not $exclude-slider { + @include slider(); +} + +@import "core/helpers/slider"; +@if not $exclude-slider and not $exclude-slider-helpers { + @include slider-helpers(); +} + +@import "core/widgets/timeline"; +@if not $exclude-timeline { + @include timeline(); +} + +@import "core/helpers/helper-classes"; +@if not $exclude-helper-classes { + @include helper-classes(); +} + +// Custom widgets +@import "core/widgetscustom/dijit-widget"; +@if not $exclude-custom-dijit-widget { + @include dijit-widget(); +} + +@import "core/widgets/switch"; +@if not $exclude-custom-switch { + @include switch(); +} + +//================================= CUSTOM =================================\\ + +// Layouts +@import "layouts/layout-atlas"; +@import "layouts/layout-atlas-phone"; +@import "layouts/layout-atlas-responsive"; +@import "layouts/layout-atlas-tablet"; diff --git a/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.woff b/test/themesource/atlas_core/web/resources/glyphicons-halflings-regular.woff old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/web/css/fonts/glyphicons-halflings-regular.woff rename to test/themesource/atlas_core/web/resources/glyphicons-halflings-regular.woff diff --git a/test/theme/styles/web/css/fonts/glyphicons-halflings-regular.woff2 b/test/themesource/atlas_core/web/resources/glyphicons-halflings-regular.woff2 old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/web/css/fonts/glyphicons-halflings-regular.woff2 rename to test/themesource/atlas_core/web/resources/glyphicons-halflings-regular.woff2 diff --git a/test/theme/resources/work-do-more.jpeg b/test/themesource/atlas_core/web/resources/work-do-more.jpeg old mode 100755 new mode 100644 similarity index 100% rename from test/theme/resources/work-do-more.jpeg rename to test/themesource/atlas_core/web/resources/work-do-more.jpeg diff --git a/test/themesource/atlas_nativemobile_content/native/buildingblocks/card.js b/test/themesource/atlas_nativemobile_content/native/buildingblocks/card.js new file mode 100644 index 0000000..a16a137 --- /dev/null +++ b/test/themesource/atlas_nativemobile_content/native/buildingblocks/card.js @@ -0,0 +1,93 @@ +import { Platform } from "react-native"; +import { background, border, contrast, spacing } from "../../../atlas_core/native/variables"; +/* +========================================================================== + Cards + +========================================================================== +*/ +export const cardShadow = { + elevation: 1.5, + shadowColor: "#000", + shadowOpacity: 0.1, + shadowRadius: 10, + shadowOffset: { + width: 0, + height: 2 + } +}; +export const card = { + container: { + borderRadius: border.radiusLarge, + backgroundColor: background.primary, + ...Platform.select({ + android: { + borderWidth: 1, + borderColor: contrast.lowest + } + }), + ...cardShadow + } +}; +// +// == Elements +// -------------------------------------------------------------------------------------------------------------------// +export const cardImage = { + container: { + overflow: "hidden", + borderTopLeftRadius: border.radiusLarge, + borderTopRightRadius: border.radiusLarge + }, + image: { + width: "100%", + height: 128, + resizeMode: "cover" + } +}; +export const cardImageBackground = { + container: { + ...cardImage.container, + borderBottomLeftRadius: border.radiusLarge, + borderBottomRightRadius: border.radiusLarge, + height: 224 + }, + image: { + width: "100%", + resizeMode: "cover" + } +}; +// +// == Variations +// -------------------------------------------------------------------------------------------------------------------// +// Card Action +export const cardAction = { + container: { + maxWidth: "100%", + height: 104, + borderWidth: border.width, + borderColor: border.color, + borderRadius: border.radiusLarge, + padding: spacing.regular, + ...cardShadow + } +}; +export const cardActionImage = { + image: { + maxHeight: 70, + resizeMode: "contain" + } +}; +// +// -------------------------------------------------------------------------------------------------------------------// +// Card Payment +export const cardPaymentImage = { + container: { + flex: -1, + maxHeight: 250 + }, + image: { + width: "100%", + maxHeight: 250, + resizeMode: "contain" + } +}; diff --git a/test/themesource/atlas_nativemobile_content/native/buildingblocks/header.js b/test/themesource/atlas_nativemobile_content/native/buildingblocks/header.js new file mode 100644 index 0000000..efb1455 --- /dev/null +++ b/test/themesource/atlas_nativemobile_content/native/buildingblocks/header.js @@ -0,0 +1,38 @@ +import { background } from "../../../atlas_core/native/variables"; +/* +========================================================================== + Headers + +========================================================================== +*/ +export const header = { + container: { + height: 280, + backgroundColor: background.primary + } +}; +// +// == Elements +// -------------------------------------------------------------------------------------------------------------------// +export const headerImageFull = { + container: { + overflow: "hidden" + }, + image: { + width: "100%", + height: 280, + resizeMode: "cover" + } +}; +export const headerBody = { + container: { + bottom: 0, + zIndex: 11, + width: "100%", + position: "absolute", + backgroundColor: "transparent" + } +}; +// +// == Variations +// -------------------------------------------------------------------------------------------------------------------// diff --git a/test/themesource/atlas_nativemobile_content/native/buildingblocks/splitview.js b/test/themesource/atlas_nativemobile_content/native/buildingblocks/splitview.js new file mode 100644 index 0000000..1155e3e --- /dev/null +++ b/test/themesource/atlas_nativemobile_content/native/buildingblocks/splitview.js @@ -0,0 +1,23 @@ +/* +========================================================================== + Split view + +========================================================================== +*/ +export const splitViewLeft = { + container: { + height: "100%", + width: "50%", + maxWidth: "50%" + } +}; +export const splitViewSmallLeft = { + container: { + height: "100%", + width: "30%", + maxWidth: "30%" + } +}; +// +// == Elements +// -------------------------------------------------------------------------------------------------------------------// diff --git a/test/themesource/atlas_nativemobile_content/native/main.js b/test/themesource/atlas_nativemobile_content/native/main.js new file mode 100644 index 0000000..bc6d0d5 --- /dev/null +++ b/test/themesource/atlas_nativemobile_content/native/main.js @@ -0,0 +1,13 @@ +// +// +// Page Templates +export * from "./pagetemplates/maps"; +export * from "./pagetemplates/inspectiondetails"; +export * from "./pagetemplates/dashboard"; +export * from "./pagetemplates/signinsignup"; +// +// +// Building blocks +export * from "./buildingblocks/card"; +export * from "./buildingblocks/header"; +export * from "./buildingblocks/splitview"; diff --git a/test/themesource/atlas_nativemobile_content/native/pagetemplates/dashboard.js b/test/themesource/atlas_nativemobile_content/native/pagetemplates/dashboard.js new file mode 100644 index 0000000..9768bf3 --- /dev/null +++ b/test/themesource/atlas_nativemobile_content/native/pagetemplates/dashboard.js @@ -0,0 +1,23 @@ +/* +========================================================================== + Dashboards + +========================================================================== +*/ +// == Elements +// -------------------------------------------------------------------------------------------------------------------// +import { card } from "../buildingblocks/card"; +export const boardCard = { + container: { + ...card.container, + flex: 1, + height: 120 + } +}; +export const boardCardTablet = { + container: { + ...card.container, + flex: 1, + aspectRatio: 1 + } +}; diff --git a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails.js b/test/themesource/atlas_nativemobile_content/native/pagetemplates/inspectiondetails.js old mode 100755 new mode 100644 similarity index 50% rename from test/theme/styles/native/js/ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails.js rename to test/themesource/atlas_nativemobile_content/native/pagetemplates/inspectiondetails.js index 7878669..4da76f7 --- a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/pagetemplates/inspectiondetails.js +++ b/test/themesource/atlas_nativemobile_content/native/pagetemplates/inspectiondetails.js @@ -4,26 +4,28 @@ ========================================================================== */ -//== Elements -//-------------------------------------------------------------------------------------------------------------------// +// == Elements +// -------------------------------------------------------------------------------------------------------------------// export const carouselCardImage = { container: { borderRadius: 10, - overflow: "hidden", + overflow: "hidden" }, image: { width: "100%", - height: "100%", - }, + height: "100%" + } }; export const carouselFullWidthImage = { - container: {}, + container: { + height: 280 + }, image: { width: "100%", - height: "100%", - }, + height: "100%" + } }; // -//== Variations -//-------------------------------------------------------------------------------------------------------------------// +// == Variations +// -------------------------------------------------------------------------------------------------------------------// // diff --git a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/pagetemplates/maps.js b/test/themesource/atlas_nativemobile_content/native/pagetemplates/maps.js old mode 100755 new mode 100644 similarity index 65% rename from test/theme/styles/native/js/ui_resources/atlas_ui_resources/pagetemplates/maps.js rename to test/themesource/atlas_nativemobile_content/native/pagetemplates/maps.js index c861db7..65e8d03 --- a/test/theme/styles/native/js/ui_resources/atlas_ui_resources/pagetemplates/maps.js +++ b/test/themesource/atlas_nativemobile_content/native/pagetemplates/maps.js @@ -1,4 +1,4 @@ -import { background, border, contrast, spacing } from "../../../core/variables.js"; +import { background, border, contrast, spacing } from "../../../atlas_core/native/variables"; /* ========================================================================== Maps @@ -6,21 +6,21 @@ import { background, border, contrast, spacing } from "../../../core/variables.j ========================================================================== */ // -//== Elements -//-------------------------------------------------------------------------------------------------------------------// +// == Elements +// -------------------------------------------------------------------------------------------------------------------// export const mapsBackground = { container: { position: "absolute", height: "100%", width: "100%", - zIndex: 0, - }, + zIndex: 0 + } }; export const mapsFooter = { container: { bottom: 0, - position: "absolute", - }, + position: "absolute" + } }; export const mapsFooterSendLocation = { container: { @@ -29,26 +29,21 @@ export const mapsFooterSendLocation = { backgroundColor: background.primary, padding: spacing.regular, margin: spacing.regular, - borderRadius: border.radius, + borderRadius: border.radiusSmall, elevation: 4, shadowColor: contrast.lower, shadowOpacity: 0.8, shadowRadius: 8, shadowOffset: { width: 0, - height: 2, - }, - }, -}; -export const mapsList = { - container: { - paddingHorizontal: spacing.regular, - }, + height: 2 + } + } }; export const mapsListItemImage = { container: { backgroundColor: background.primary, - borderRadius: border.radius, + borderRadius: border.radiusSmall, marginVertical: spacing.regular, marginLeft: spacing.smallest, marginRight: spacing.regular, @@ -58,14 +53,14 @@ export const mapsListItemImage = { shadowRadius: 8, shadowOffset: { width: 0, - height: 2, - }, + height: 2 + } }, image: { - borderRadius: border.radius, - }, + borderRadius: border.radiusSmall + } }; // -//== Variations -//-------------------------------------------------------------------------------------------------------------------// +// == Variations +// -------------------------------------------------------------------------------------------------------------------// // diff --git a/test/themesource/atlas_nativemobile_content/native/pagetemplates/signinsignup.js b/test/themesource/atlas_nativemobile_content/native/pagetemplates/signinsignup.js new file mode 100644 index 0000000..f1d7076 --- /dev/null +++ b/test/themesource/atlas_nativemobile_content/native/pagetemplates/signinsignup.js @@ -0,0 +1,15 @@ +/* +========================================================================== + Sign in and Sign up + +========================================================================== +*/ +// == Elements +// -------------------------------------------------------------------------------------------------------------------// +import { header } from "../buildingblocks/header"; +export const headerSignIn = { + container: { + ...header.container, + height: 332 + } +}; diff --git a/test/theme/styles/web/sass/core/helpers/_alerts.scss b/test/themesource/atlas_web_content/web/buildingblocks/_alert.scss old mode 100755 new mode 100644 similarity index 59% rename from test/theme/styles/web/sass/core/helpers/_alerts.scss rename to test/themesource/atlas_web_content/web/buildingblocks/_alert.scss index 69fdab1..a07c84f --- a/test/theme/styles/web/sass/core/helpers/_alerts.scss +++ b/test/themesource/atlas_web_content/web/buildingblocks/_alert.scss @@ -8,26 +8,51 @@ /* ========================================================================== Alerts -//== Design Properties -//## Helper classes to change the look and feel of the component + Default Bootstrap Alert boxes. Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages ========================================================================== */ -.alert-bordered { + +.alert { + margin-top: 0; + padding: $spacing-medium; border: 1px solid; + border-radius: $border-radius-default; + padding: $spacing-medium; +} + +.alert-icon { + font-size: $font-size-h3; +} + +.alert-title { + color: inherit; +} + +.alert-description { + color: inherit; } -// Color variations +//Variations + +.alert-primary, +.alert { + color: $alert-primary-color; + border-color: $alert-primary-border-color; + background-color: $alert-primary-bg; +} + +.alert-secondary { + color: $alert-secondary-color; + border-color: $alert-secondary-border-color; + background-color: $alert-secondary-bg; +} + +// Semantic variations .alert-success { color: $alert-success-color; border-color: $alert-success-border-color; background-color: $alert-success-bg; } -.alert-info { - color: $alert-info-color; - border-color: $alert-info-border-color; - background-color: $alert-info-bg; -} - .alert-warning { color: $alert-warning-color; border-color: $alert-warning-border-color; @@ -44,6 +69,6 @@ //## Styling when component is in certain state //-------------------------------------------------------------------------------------------------------------------// .has-error .alert { - margin-top: 8px; + margin-top: $spacing-small; margin-bottom: 0; } diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss b/test/themesource/atlas_web_content/web/buildingblocks/_breadcrumb.scss old mode 100755 new mode 100644 similarity index 86% rename from test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss rename to test/themesource/atlas_web_content/web/buildingblocks/_breadcrumb.scss index b5655be..d6a4bbf --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_breadcrumb.scss +++ b/test/themesource/atlas_web_content/web/buildingblocks/_breadcrumb.scss @@ -9,6 +9,7 @@ border-radius: 0; background-color: transparent; font-size: $font-size-default; + margin-bottom: $spacing-large; } //== Elements @@ -26,19 +27,19 @@ .breadcrumb-item + .breadcrumb-item { &::before { display: inline-block; - padding-right: 10px; - padding-left: 10px; + padding-right: $spacing-small; + padding-left: $spacing-small; content: "/"; color: $gray-light; } } -//== Variations +//== Variations //-------------------------------------------------------------------------------------------------------------------// .breadcrumb-large { font-size: $font-size-h3; } .breadcrumb-underline { - padding-bottom: $gutter-size; + padding-bottom: $spacing-medium; border-bottom: 1px solid $border-color-default; } diff --git a/test/themesource/atlas_web_content/web/buildingblocks/_card.scss b/test/themesource/atlas_web_content/web/buildingblocks/_card.scss new file mode 100644 index 0000000..7f71a8f --- /dev/null +++ b/test/themesource/atlas_web_content/web/buildingblocks/_card.scss @@ -0,0 +1,63 @@ +/* ========================================================================== + Cards + +========================================================================== */ +.card { + border: 0; + border-radius: $border-radius-default; + background-color: #ffffff; + overflow: hidden; + position: relative; + padding: $spacing-large; + margin-bottom: $spacing-large; +} + +//== Card components +//-------------------------------------------------------------------------------------------------------------------// +.card-body { + padding: $spacing-large; +} + +.card-overlay { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + background: rgba(0, 0, 0, 0.6); + background: linear-gradient( + to bottom, + rgba(255, 255, 255, 0) 0%, + rgba(250, 250, 250, 0) 8%, + rgba(0, 0, 0, 0.99) 121%, + #000 100% + ); + padding: $spacing-large; +} + +.card-title { +} + +.card-image { + width: 100%; + height: auto; +} + +.card-supportingtext { +} + +.card-action { +} + +.card-icon { + font-size: $font-size-h1; +} + +//== Variations +//-------------------------------------------------------------------------------------------------------------------// +.card-with-image { + overflow: hidden; +} + +.card-with-background { + position: relative; +} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_chat.scss b/test/themesource/atlas_web_content/web/buildingblocks/_chat.scss old mode 100755 new mode 100644 similarity index 98% rename from test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_chat.scss rename to test/themesource/atlas_web_content/web/buildingblocks/_chat.scss index 4dba229..2fe5ce9 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_chat.scss +++ b/test/themesource/atlas_web_content/web/buildingblocks/_chat.scss @@ -48,14 +48,13 @@ display: block; width: 50%; margin: 15px auto; - color: #FFFFFF; + color: #ffffff; background-color: $brand-primary; box-shadow: 0 2px 20px 0 rgba(0, 0, 0, 0.05); } } } - .chat-message { display: flex; } @@ -84,7 +83,7 @@ right: 100%; width: 0; height: 0; - content: ''; + content: ""; border: 10px solid transparent; border-top: 0; border-right-color: $bg-color; diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_controlgroup.scss b/test/themesource/atlas_web_content/web/buildingblocks/_controlgroup.scss old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_controlgroup.scss rename to test/themesource/atlas_web_content/web/buildingblocks/_controlgroup.scss diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss b/test/themesource/atlas_web_content/web/buildingblocks/_formblock.scss old mode 100755 new mode 100644 similarity index 71% rename from test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss rename to test/themesource/atlas_web_content/web/buildingblocks/_formblock.scss index 9ecfc2f..c6a2264 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_formblock.scss +++ b/test/themesource/atlas_web_content/web/buildingblocks/_formblock.scss @@ -4,12 +4,11 @@ Used in default forms ========================================================================== */ .formblock { + width: 100%; + margin-bottom: $spacing-large; } //== Elements //-------------------------------------------------------------------------------------------------------------------// -.formblock-title { - margin-bottom: $gutter-size; - padding-bottom: $gutter-size; - border-bottom: 1px solid $border-color-default; +.form-title { } diff --git a/test/themesource/atlas_web_content/web/buildingblocks/_heroheader.scss b/test/themesource/atlas_web_content/web/buildingblocks/_heroheader.scss new file mode 100644 index 0000000..e5e8fd4 --- /dev/null +++ b/test/themesource/atlas_web_content/web/buildingblocks/_heroheader.scss @@ -0,0 +1,41 @@ +/* ========================================================================== + Hero header + +========================================================================== */ + +.headerhero { + width: 100%; + min-height: $header-min-height; + background-color: $header-bg-color; + position: relative; + overflow: hidden; + padding: $spacing-large; + margin-bottom: $spacing-large; +} + +//== Elements +//-------------------------------------------------------------------------------------------------------------------// +.headerhero-title { + color: $header-text-color; +} + +.headerhero-subtitle { + color: $header-text-color; +} + +.headerhero-backgroundimage { + position: absolute; + z-index: 0; + top: 0; + height: 100%; + width: 100%; + filter: $header-bgimage-filter; +} + +.btn.headerhero-action { + color: $header-text-color; +} + +.heroheader-overlay { + z-index: 1; +} diff --git a/test/themesource/atlas_web_content/web/buildingblocks/_master-detail.scss b/test/themesource/atlas_web_content/web/buildingblocks/_master-detail.scss new file mode 100644 index 0000000..4cb80dd --- /dev/null +++ b/test/themesource/atlas_web_content/web/buildingblocks/_master-detail.scss @@ -0,0 +1,26 @@ +/* ========================================================================== + Master Detail + + A list with a listening dataview +========================================================================== */ +.masterdetail { + background: #fff; + .masterdetail-master { + border-right: 1px solid $border-color-default; + } + .masterdetail-detail { + padding: $spacing-large; + } +} + +//== Variations +//-------------------------------------------------------------------------------------------------------------------// +.masterdetail-vertical { + background: #fff; + .masterdetail-master { + border-bottom: 1px solid $border-color-default; + } + .masterdetail-detail { + padding: $spacing-large; + } +} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageblocks.scss b/test/themesource/atlas_web_content/web/buildingblocks/_pageblocks.scss old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_pageblocks.scss rename to test/themesource/atlas_web_content/web/buildingblocks/_pageblocks.scss diff --git a/test/themesource/atlas_web_content/web/buildingblocks/_pageheader.scss b/test/themesource/atlas_web_content/web/buildingblocks/_pageheader.scss new file mode 100644 index 0000000..f649e9a --- /dev/null +++ b/test/themesource/atlas_web_content/web/buildingblocks/_pageheader.scss @@ -0,0 +1,21 @@ +/* ========================================================================== + Pageheader +========================================================================== */ + +//== Default +//-------------------------------------------------------------------------------------------------------------------// +.pageheader { + width: 100%; + margin-bottom: $spacing-large; +} + +//== Elements +//-------------------------------------------------------------------------------------------------------------------// +.pageheader-title { +} + +.pageheader-subtitle { +} + +.pageheader-image { +} diff --git a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss b/test/themesource/atlas_web_content/web/buildingblocks/_userprofile.scss old mode 100755 new mode 100644 similarity index 99% rename from test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss rename to test/themesource/atlas_web_content/web/buildingblocks/_userprofile.scss index c4544a9..eee81f1 --- a/test/theme/styles/web/sass/ui_resources/atlas_ui_resources/buildingblocks/_userprofile.scss +++ b/test/themesource/atlas_web_content/web/buildingblocks/_userprofile.scss @@ -9,4 +9,4 @@ } .userprofile-subtitle { } -} \ No newline at end of file +} diff --git a/test/themesource/atlas_web_content/web/buildingblocks/_wizard.scss b/test/themesource/atlas_web_content/web/buildingblocks/_wizard.scss new file mode 100644 index 0000000..bf6a2ac --- /dev/null +++ b/test/themesource/atlas_web_content/web/buildingblocks/_wizard.scss @@ -0,0 +1,139 @@ +//Wizard +.wizard { + display: flex; + justify-content: space-between; + width: 100%; + margin-bottom: $spacing-large; +} + +//Wizard step +.wizard-step { + position: relative; + width: 100%; + display: flex; + align-items: center; +} + +//Wizard step number +.wizard-step-number { + position: relative; + z-index: 1; + display: flex; + justify-content: center; + align-items: center; + width: $wizard-step-number-size; + height: $wizard-step-number-size; + color: $wizard-default-step-color; + font-size: $wizard-step-number-font-size; + border-radius: 50%; + background-color: $wizard-default-bg; + border-color: $wizard-default-border-color; +} + +//Wizard step text +.wizard-step-text { + overflow: hidden; + white-space: nowrap; + text-decoration: none; + text-overflow: ellipsis; + color: $wizard-default-step-color; +} + +//Wizard circle +.wizard-circle .wizard-step { + flex-direction: column; + &::before { + position: absolute; + z-index: 0; + top: $wizard-step-number-size / 2; + display: block; + width: 100%; + height: 2px; + content: ""; + background-color: $wizard-default-border-color; + } +} + +//Wizard arrow +.wizard-arrow .wizard-step { + height: $wizard-step-height; + margin-left: 0 - ($wizard-step-height / 2); + padding-left: ($wizard-step-height / 2); + background-color: $wizard-default-bg; + justify-content: flex-start; + border: 1px solid $wizard-default-border-color; + &::before, + &::after { + position: absolute; + z-index: 1; + left: 100%; + margin-left: 0 - (($wizard-step-height / 2) - 1); + content: " "; + border-style: solid; + border-color: transparent; + } + &::after { + top: 0; + border-width: (($wizard-step-height / 2) - 1); + border-left-color: $wizard-default-bg; + } + &::before { + top: -1px; + border-width: $wizard-step-height / 2; + border-left-color: $wizard-default-border-color; + } + + &:first-child { + margin-left: 0; + padding-left: 0; + border-top-left-radius: $border-radius-default; + border-bottom-left-radius: $border-radius-default; + } + + &:last-child { + border-top-right-radius: $border-radius-default; + border-bottom-right-radius: $border-radius-default; + &::before, + &::after { + display: none; + } + } +} + +//Wizard states +.wizard-circle .wizard-step-active { + .wizard-step-number { + color: $wizard-active-color; + border-color: $wizard-active-border-color; + background-color: $wizard-active-bg; + } + .wizard-step-text { + color: $wizard-active-step-color; + } +} +.wizard-circle .wizard-step-visited { + .wizard-step-number { + color: $wizard-visited-color; + border-color: $wizard-visited-border-color; + background-color: $wizard-visited-bg; + } + .wizard-step-text { + color: $wizard-visited-step-color; + } +} + +.wizard-arrow .wizard-step-active { + background-color: $wizard-active-bg; + .wizard-step-text { + color: $wizard-active-color; + } + &::after { + border-left-color: $wizard-active-border-color; + } +} + +.wizard-arrow .wizard-step-visited { + .wizard-step-text { + color: $link-color; + } +} diff --git a/test/themesource/atlas_web_content/web/main.scss b/test/themesource/atlas_web_content/web/main.scss new file mode 100644 index 0000000..df04c6f --- /dev/null +++ b/test/themesource/atlas_web_content/web/main.scss @@ -0,0 +1,23 @@ +// Default variables +@import "../../atlas_core/web/variables"; +@import "../../../theme/web/custom-variables"; + +// Building blocks +@import "buildingblocks/alert"; +@import "buildingblocks/breadcrumb"; +@import "buildingblocks/card"; +@import "buildingblocks/chat"; +@import "buildingblocks/controlgroup"; +@import "buildingblocks/pageblocks"; +@import "buildingblocks/pageheader"; +@import "buildingblocks/heroheader"; +@import "buildingblocks/formblock"; +@import "buildingblocks/master-detail"; +@import "buildingblocks/userprofile"; +@import "buildingblocks/wizard"; + +// Page templates +@import "pagetemplates/login"; +@import "pagetemplates/list-tab"; +@import "pagetemplates/springboard"; +@import "pagetemplates/statuspage"; diff --git a/test/themesource/atlas_web_content/web/pagetemplates/_list-tab.scss b/test/themesource/atlas_web_content/web/pagetemplates/_list-tab.scss new file mode 100644 index 0000000..ff29615 --- /dev/null +++ b/test/themesource/atlas_web_content/web/pagetemplates/_list-tab.scss @@ -0,0 +1,29 @@ +.listtab-tabs.mx-tabcontainer { + background: $bg-color-secondary; + .mx-tabcontainer-tabs { + background: $brand-primary; + margin-bottom: 0; + li { + > a { + color: #fff; + opacity: 0.6; + &:hover, + &:focus { + color: #fff; + } + } + &.active { + > a { + opacity: 1; + color: #fff; + border-color: #fff; + &:hover, + &:focus { + color: #fff; + border-color: #fff; + } + } + } + } + } +} diff --git a/test/themesource/atlas_web_content/web/pagetemplates/_login.scss b/test/themesource/atlas_web_content/web/pagetemplates/_login.scss new file mode 100644 index 0000000..d3dcb55 --- /dev/null +++ b/test/themesource/atlas_web_content/web/pagetemplates/_login.scss @@ -0,0 +1,10 @@ +.login-formblock { + display: flex; + flex-direction: column; +} + +.login-form { + flex: 1; + display: flex; + flex-direction: column; +} diff --git a/test/themesource/atlas_web_content/web/pagetemplates/_springboard.scss b/test/themesource/atlas_web_content/web/pagetemplates/_springboard.scss new file mode 100644 index 0000000..eb30e1a --- /dev/null +++ b/test/themesource/atlas_web_content/web/pagetemplates/_springboard.scss @@ -0,0 +1,22 @@ +.springboard-grid { + display: flex; + flex-direction: column; + .row { + flex: 1; + .col { + display: flex; + } + } +} + +.springboard-header { + flex: 1; + display: flex; + flex-direction: column; +} + +.springboard-card { + flex: 1; + display: flex; + flex-direction: column; +} diff --git a/test/themesource/atlas_web_content/web/pagetemplates/_statuspage.scss b/test/themesource/atlas_web_content/web/pagetemplates/_statuspage.scss new file mode 100644 index 0000000..de73a6e --- /dev/null +++ b/test/themesource/atlas_web_content/web/pagetemplates/_statuspage.scss @@ -0,0 +1,19 @@ +.statuspage-section { + display: flex; + flex-direction: column; +} + +.statuspage-content { + flex: 1; +} + +.statuspage-icon { + color: #fff; +} + +.statuspage-subtitle { + opacity: 0.6; +} + +.statuspage-buttons { +} diff --git a/test/themesource/datagrid/web/DatePicker.scss b/test/themesource/datagrid/web/DatePicker.scss new file mode 100644 index 0000000..2b97672 --- /dev/null +++ b/test/themesource/datagrid/web/DatePicker.scss @@ -0,0 +1,115 @@ +/** + Classes for React Date-Picker font-unit and color adjustments +*/ +$day-color: #555 !default; +$outside-month-color: #c8c8c8 !default; +$text-color: #fff !default; +$border-color: #D7D7D7 !default; + +.react-datepicker { + font-size: 1em; + border: 1px solid $border-color; +} + +.react-datepicker-wrapper { + display: flex; + flex: 1; +} + +.react-datepicker__input-container { + display: flex; + flex: 1; +} + +.react-datepicker__header { + padding-top: 0.8em; + background-color: $background-color; + border-color: transparent; +} + +.react-datepicker__header__dropdown { + margin: 8px 0 4px 0; //4px due to the header contains 4px already +} + +.react-datepicker__year-dropdown-container { + margin-left: 8px; +} + +.react-datepicker__month { + margin: 4px 4px 8px 4px; //4px due to the rows already contains 4px each day +} + +.react-datepicker__month-container { + font-weight: normal; +} + +.react-datepicker__day-name, .react-datepicker__day { + width: 2em; + line-height: 2em; + margin: 4px; +} + +.react-datepicker__day { + color: $day-color; + border-radius: 50%; + + &:hover{ + border-radius: 50%; + color: $brand-primary; + background-color: $hover-color; + } +} + +.react-datepicker__day-name { + color: $brand-primary; + font-weight: bold; +} + +.react-datepicker__day--outside-month { + color: $outside-month-color; +} + +.react-datepicker__day--today, .react-datepicker__day--keyboard-selected { + color: $brand-primary; + background-color: $hover-color; +} + +.react-datepicker__day--selected { + background-color: $brand-primary; + color: $text-color; + + &:hover{ + border-radius: 50%; + background-color: $brand-primary; + color: $text-color; + } +} + +.react-datepicker__current-month { + font-size: 1em; + font-weight: normal; +} + +.react-datepicker__navigation { + top: 1em; + line-height: 1.7em; + border: 0.45em solid transparent; +} + +.react-datepicker__navigation--previous { + border-right-color: #ccc; + left: 8px; +} + +.react-datepicker__navigation--next { + border-left-color: #ccc; + right: 8px; +} + + +/** +Space between the fields and the popup + */ +.react-datepicker-popper[data-placement^="bottom"] { + margin-top: unset; +} diff --git a/test/themesource/datagrid/web/datagrid-filters.scss b/test/themesource/datagrid/web/datagrid-filters.scss new file mode 100644 index 0000000..f2bdbdd --- /dev/null +++ b/test/themesource/datagrid/web/datagrid-filters.scss @@ -0,0 +1,215 @@ +$hover-color: #f8f8f8 !default; +$background-color: #fff !default; +$selected-color: #dadcde !default; +$border-color: #ced0d3 !default; +$arrow: "data:image/svg+xml;utf8,"; + +@import "DatePicker"; + +@font-face { + font-family: "datagrid-filters"; + src: url("./fonts/datagrid-filters.eot"); + src: url("./fonts/datagrid-filters.eot") format("embedded-opentype"), + url("./fonts/datagrid-filters.woff2") format("woff2"), + url("./fonts/datagrid-filters.woff") format("woff"), + url("./fonts/datagrid-filters.ttf") format("truetype"), + url("./fonts/datagrid-filters.svg") format("svg"); + font-weight: normal; + font-style: normal; +} + +.filter-container { + display: flex; + flex-direction: row; + flex-grow: 1; + + .filter-input { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + .btn-calendar { + margin-left: 5px; //Review in atlas, the current date picker is also 5px + } +} + +.filter-selector { + padding-left: 0; + padding-right: 0; + + .filter-selector-content { + height: 100%; + align-self: flex-end; + + .filter-selector-button { + padding: 8px; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: none; + height: 100%; + + &:before { + justify-content: center; + width: 20px; + height: 20px; + padding-left: 4px; /* The font has spaces in the right side, so to align in the middle we need this */ + } + } + + .filter-selectors { + position: absolute; + width: max-content; + left: 0; + margin: 0 $spacing-medium; + padding: 0; + background: $background-color; + z-index: 99; + border-radius: 8px; + list-style-type: none; + box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08); + overflow: hidden; + + li { + display: flex; + align-items: center; + font-weight: normal; + line-height: 32px; + cursor: pointer; + + .filter-label { + padding-right: 8px; + } + + &.filter-selected { + background-color: $hover-color; + color: $brand-primary; + } + + &:hover, + &:focus { + background-color: $hover-color; + } + } + } + } +} + +.dropdown-container { + flex: 1; + + .dropdown-triggerer { + caret-color: transparent; + cursor: pointer; + + background-image: url($arrow); + background-repeat: no-repeat; + background-position: center; + background-position-x: right; + background-position-y: center; + background-origin: content-box; + text-overflow: ellipsis; + } + + .dropdown-list { + position: absolute; + width: max-content; + left: 0; + margin: 0 $spacing-medium; + padding: 0; + background: $background-color; + z-index: 99; + border-radius: 8px; + list-style-type: none; + box-shadow: 0 2px 20px 1px rgba(5, 15, 129, 0.05), 0 2px 16px 0 rgba(33, 43, 54, 0.08); + overflow-x: hidden; + max-height: 40vh; + + li { + display: flex; + align-items: center; + font-weight: normal; + min-height: 32px; + cursor: pointer; + padding: 0 $spacing-small; + + .filter-label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + &.filter-selected { + background-color: $hover-color; + color: $brand-primary; + } + + &:hover, + &:focus { + background-color: $hover-color; + } + + label { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + margin: 8px; + font-weight: normal; + width: calc(100% - 32px); + } + } + } +} + + +/** +Icons + */ + +.filter-icon { + display: flex; + align-items: center; + justify-content: center; + height: 20px; + width: 20px; + margin: 6px 8px; + font-family: "datagrid-filters"; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.button-icon { + display: flex; + align-items: center; + justify-content: center; + font-family: "datagrid-filters"; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.contains:before { + content: "\e808"; +} +.endsWith:before { + content: "\e806"; +} +.equal:before { + content: "\e809"; +} +.greater:before { + content: "\e80a"; +} +.greaterEqual:before { + content: "\e80b"; +} +.notEqual:before { + content: "\e80c"; +} +.smaller:before { + content: "\e80d"; +} +.smallerEqual:before { + content: "\e80e"; +} +.startsWith:before { + content: "\e807"; +} diff --git a/test/themesource/datagrid/web/datagrid.scss b/test/themesource/datagrid/web/datagrid.scss new file mode 100644 index 0000000..95f80da --- /dev/null +++ b/test/themesource/datagrid/web/datagrid.scss @@ -0,0 +1,258 @@ +$background-color: #fff; +$icon-color: #606671; +$pagination-button-color: #3b4251; +$pagination-caption-color: #0a1325; +$dragging-color-effect: rgba(10, 19, 37, 0.8); + +$grid-bg-striped: #fafafb !default; +$grid-bg-hover: #f5f6f6 !default; +$spacing-small: 8px !default; +$spacing-medium: 16px !default; +$grid-border-color: #ced0d3 !default; + +$brand-primary: #264ae5 !default; + +.table { + position: relative; + border-width: 0; + background-color: $background-color; + + /* Table Content */ + .table-content { + display: grid; + position: relative; + + &.infinite-loading { + overflow-y: scroll; + } + } + + /* Pseudo Row, to target this object please use .tr > .td or .tr > div */ + .tr { + display: contents; + } + + /* Column Header */ + .th { + display: flex; + align-items: flex-start; + font-weight: 600; + background-color: $background-color; + border-width: 0; + border-color: $grid-border-color; + padding: $spacing-medium; + position: -webkit-sticky; /* Safari */ + position: sticky; + top: 0; + z-index: 10; + + /* Clickable column header (Sortable) */ + .clickable { + cursor: pointer; + } + + /* Column resizer when column is resizable */ + .column-resizer { + padding: 0 4px; + align-self: stretch; + cursor: col-resize; + + &:hover .column-resizer-bar { + background-color: $brand-primary; + } + &:active .column-resizer-bar { + background-color: $brand-primary; + } + + .column-resizer-bar { + height: 100%; + width: 4px; + } + } + + /* Content of the column header */ + .column-container { + flex-grow: 1; + align-self: stretch; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + + /* Styles while dragging another column */ + &.dragging { + border-left: 4px solid $dragging-color-effect; + } + } + + /* Header text */ + .column-header { + display: flex; + flex-grow: 1; + align-items: center; + + span { + display: flex; + flex-grow: 1; + } + + svg { + margin-left: 8px; + flex-grow: 0; + color: $icon-color; + } + } + + /* Header filter */ + .filter { + display: flex; + margin-top: 4px; + input:not([type="checkbox"]) { + font-weight: normal; + flex-grow: 1; + width: 100%; + } + > .form-group { + margin-bottom: 0; + } + > .form-control { + flex: unset; + min-width: unset; + } + } + } + + /* Column selector for hidable columns */ + .column-selector { + padding-left: 0; + padding-right: 0; + + /* Column content */ + .column-selector-content { + align-self: flex-end; + + /* Button containing the eye icon */ + .column-selector-button { + padding: 8px; + margin: 0 8px; + } + + /* List of columns to select */ + .column-selectors { + position: absolute; + right: 0; + margin: 8px; + padding: 0 16px; + background: $background-color; + z-index: 99; + border-radius: 3px; + border: 1px solid transparent; + list-style-type: none; + -webkit-box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08); + -moz-box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08); + box-shadow: 0 2px 20px 1px rgba(32, 43, 54, 0.08); + + li { + display: flex; + align-items: center; + + label { + margin: 8px; + font-weight: normal; + white-space: nowrap; + } + } + } + } + } + + /* Column content */ + .td { + display: flex; + justify-content: space-between; + align-items: center; + padding: $spacing-medium; + border-style: solid; + border-width: 0; + border-color: $grid-border-color; + border-bottom-width: 1px; + /*overflow: hidden;*/ + + &.td-borders { + border-top-width: 1px; + border-top-style: solid; + } + + &:focus { + outline: none; + } + + > .td-text, + * { + white-space: normal; + word-break: break-all; + } + + > .empty-placeholder { + width: 100%; + } + } + + & *:focus { + outline: 0; + } + + .align-column-left { + justify-content: flex-start; + + span { + justify-content: flex-start; + } + } + + .align-column-center { + justify-content: center; + + span { + justify-content: center; + } + } + + .align-column-right { + justify-content: flex-end; + + span { + justify-content: flex-end; + } + } +} + +.pagination-bar { + display: flex; + justify-content: flex-end; + white-space: nowrap; + align-items: baseline; + margin: 16px; + color: $pagination-caption-color; + + .paging-status { + padding: 0 8px 8px; + } + + .pagination-button { + padding: 6px; + color: $pagination-button-color; + border-color: transparent; + background-color: transparent; + + &:hover { + color: $brand-primary; + border-color: transparent; + background-color: transparent; + } + + &:disabled { + border-color: transparent; + background-color: transparent; + } + } +} diff --git a/test/themesource/datagrid/web/design-properties.json b/test/themesource/datagrid/web/design-properties.json new file mode 100644 index 0000000..33ed6de --- /dev/null +++ b/test/themesource/datagrid/web/design-properties.json @@ -0,0 +1,45 @@ +{ + "com.mendix.widget.web.datagrid.Datagrid": [ + { + "name": "Borders", + "type": "Dropdown", + "description": "Add either a horizontal, vertical separator or both to the cells.", + "options": [ + { + "name": "Both", + "class": "table-bordered-all" + }, + { + "name": "Vertical", + "class": "table-bordered-vertical" + }, + { + "name": "Horizontal", + "class": "table-bordered-horizontal" + }, + { + "name": "None", + "class": "table-bordered-none" + } + ] + }, + { + "name": "Compact", + "type": "Toggle", + "description": "Change the cell spacing to compact.", + "class": "table-compact" + }, + { + "name": "Hover", + "type": "Toggle", + "description": "Highlight a row when hovering over it. Only useful when the row is clickable.", + "class": "table-hover" + }, + { + "name": "Striped", + "type": "Toggle", + "description": "Add alternating background colors to rows.", + "class": "table-striped" + } + ] +} diff --git a/test/themesource/datagrid/web/design-properties.scss b/test/themesource/datagrid/web/design-properties.scss new file mode 100644 index 0000000..616c4b0 --- /dev/null +++ b/test/themesource/datagrid/web/design-properties.scss @@ -0,0 +1,107 @@ +.table-compact { + .th{ + padding: $spacing-small; + + .filter-selectors { + margin: 0 $spacing-small; + } + } + .td { + padding: $spacing-small; + } + + .dropdown-container .dropdown-list { + margin: 0 $spacing-small; + } +} + +.table-striped { + .tr:nth-child(odd) > .td { + background-color: $grid-bg-striped; + } +} + +.table-hover { + .tr:hover > .td { + background-color: $grid-bg-hover; + } +} + +.table-bordered-all{ + .th { + border-top-width: 1px; + border-top-style: solid; + border-left-width: 1px; + border-left-style: solid; + + // Column for the visibility when a column can be hidden + &.column-selector { + border-left-width: 0; + border-right-width: 1px; + border-right-style: solid; + } + } + + .td { + border-bottom-width: 1px; + border-bottom-style: solid; + border-left-width: 1px; + border-left-style: solid; + + &.td-borders { + border-top-width: 1px; + } + + // Column for the visibility when a column can be hidden + &.column-selector { + border-left-width: 0; + border-right-width: 1px; + border-right-style: solid; + } + } +} + +.table-bordered-horizontal { + .td { + border-bottom-width: 1px; + border-bottom-style: solid; + + &.td-borders { + border-top-width: 1px; + } + } +} + +.table-bordered-vertical { + .th, .td { + border-left-width: 1px; + border-left-style: solid; + border-bottom-width: 0; + + // Column for the visibility when a column can be hidden + &.column-selector { + border-left-width: 0; + border-bottom-width: 0; + border-right-width: 1px; + border-right-style: solid; + } + + &.td-borders { + border-top-width: 0; + } + } +} + +.table-bordered-none { + .td, .th { + border: 0; + + &.column-selector { + border: 0; + } + + &.td-borders { + border: 0; + } + } +} \ No newline at end of file diff --git a/test/themesource/datagrid/web/fonts/datagrid-filters.eot b/test/themesource/datagrid/web/fonts/datagrid-filters.eot new file mode 100644 index 0000000..f1cf851 Binary files /dev/null and b/test/themesource/datagrid/web/fonts/datagrid-filters.eot differ diff --git a/test/themesource/datagrid/web/fonts/datagrid-filters.svg b/test/themesource/datagrid/web/fonts/datagrid-filters.svg new file mode 100644 index 0000000..8c76915 --- /dev/null +++ b/test/themesource/datagrid/web/fonts/datagrid-filters.svg @@ -0,0 +1,28 @@ + + + +Copyright (C) 2020 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/themesource/datagrid/web/fonts/datagrid-filters.ttf b/test/themesource/datagrid/web/fonts/datagrid-filters.ttf new file mode 100644 index 0000000..51aff21 Binary files /dev/null and b/test/themesource/datagrid/web/fonts/datagrid-filters.ttf differ diff --git a/test/themesource/datagrid/web/fonts/datagrid-filters.woff b/test/themesource/datagrid/web/fonts/datagrid-filters.woff new file mode 100644 index 0000000..46621c1 Binary files /dev/null and b/test/themesource/datagrid/web/fonts/datagrid-filters.woff differ diff --git a/test/themesource/datagrid/web/fonts/datagrid-filters.woff2 b/test/themesource/datagrid/web/fonts/datagrid-filters.woff2 new file mode 100644 index 0000000..6c505b6 Binary files /dev/null and b/test/themesource/datagrid/web/fonts/datagrid-filters.woff2 differ diff --git a/test/themesource/datagrid/web/main.scss b/test/themesource/datagrid/web/main.scss new file mode 100644 index 0000000..5a082b1 --- /dev/null +++ b/test/themesource/datagrid/web/main.scss @@ -0,0 +1,3 @@ +@import "datagrid"; +@import "datagrid-filters"; +@import "design-properties"; diff --git a/test/themesource/nanoflowcommons/native/design-properties.json b/test/themesource/nanoflowcommons/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/test/themesource/nanoflowcommons/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/test/themesource/nanoflowcommons/native/main.js b/test/themesource/nanoflowcommons/native/main.js new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/test/themesource/nanoflowcommons/native/main.js @@ -0,0 +1 @@ + diff --git a/test/themesource/nanoflowcommons/web/design-properties.json b/test/themesource/nanoflowcommons/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/test/themesource/nanoflowcommons/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/test/themesource/nanoflowcommons/web/main.scss b/test/themesource/nanoflowcommons/web/main.scss new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/test/themesource/nanoflowcommons/web/main.scss @@ -0,0 +1 @@ + diff --git a/test/themesource/nativemobileresources/.version b/test/themesource/nativemobileresources/.version new file mode 100644 index 0000000..b532f3d --- /dev/null +++ b/test/themesource/nativemobileresources/.version @@ -0,0 +1 @@ +3.1.4 \ No newline at end of file diff --git a/test/themesource/nativemobileresources/native/design-properties.json b/test/themesource/nativemobileresources/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/test/themesource/nativemobileresources/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/test/themesource/nativemobileresources/native/main.js b/test/themesource/nativemobileresources/native/main.js new file mode 100644 index 0000000..b611ae1 --- /dev/null +++ b/test/themesource/nativemobileresources/native/main.js @@ -0,0 +1,2 @@ +import * as variables from "../../../theme/native/custom-variables"; + diff --git a/test/themesource/nativemobileresources/web/design-properties.json b/test/themesource/nativemobileresources/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/test/themesource/nativemobileresources/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/test/themesource/nativemobileresources/web/main.scss b/test/themesource/nativemobileresources/web/main.scss new file mode 100644 index 0000000..122370f --- /dev/null +++ b/test/themesource/nativemobileresources/web/main.scss @@ -0,0 +1,2 @@ +@import '../../../theme/web/custom-variables'; + diff --git a/test/themesource/pushnotificationexampleimplementation/native/design-properties.json b/test/themesource/pushnotificationexampleimplementation/native/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/test/themesource/pushnotificationexampleimplementation/native/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/test/themesource/pushnotificationexampleimplementation/native/main.js b/test/themesource/pushnotificationexampleimplementation/native/main.js new file mode 100644 index 0000000..b611ae1 --- /dev/null +++ b/test/themesource/pushnotificationexampleimplementation/native/main.js @@ -0,0 +1,2 @@ +import * as variables from "../../../theme/native/custom-variables"; + diff --git a/test/themesource/pushnotificationexampleimplementation/web/design-properties.json b/test/themesource/pushnotificationexampleimplementation/web/design-properties.json new file mode 100644 index 0000000..49d1a20 --- /dev/null +++ b/test/themesource/pushnotificationexampleimplementation/web/design-properties.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/test/themesource/pushnotificationexampleimplementation/web/main.scss b/test/themesource/pushnotificationexampleimplementation/web/main.scss new file mode 100644 index 0000000..122370f --- /dev/null +++ b/test/themesource/pushnotificationexampleimplementation/web/main.scss @@ -0,0 +1,2 @@ +@import '../../../theme/web/custom-variables'; + diff --git a/test/themesource/pushnotifications/web/administration.scss b/test/themesource/pushnotifications/web/administration.scss new file mode 100644 index 0000000..f59cbf2 --- /dev/null +++ b/test/themesource/pushnotifications/web/administration.scss @@ -0,0 +1,91 @@ +.push-administration-container { + + // Main tabcontainer + .mx-tabcontainer.tab-pills { + display: flex; + + > .mx-tabcontainer-tabs { + flex-direction: column; + flex: 250px 0 0; + padding-right: 30px; + + > li { + margin-bottom: 0; + + &:not(:last-child) { + border-bottom: 1px $border-color-default solid; + } + } + + > li > a, + > li > a:hover { + border: 0; + border-left: 5px transparent solid; + } + + > li > a { + padding: 15px; + border-radius: 0; + margin-right: 0; + background-color: #fff; + } + + > li.active a { + border-left: 5px $brand-primary solid; + background-color: $gray-lighter; + color: $font-color-default; + } + + > li:first-child > a { + border-top-left-radius: $border-radius-default; + border-top-right-radius: $border-radius-default; + } + + > li:last-child > a { + border-bottom-left-radius: $border-radius-default; + border-bottom-right-radius: $border-radius-default; + } + } + + > .mx-tabcontainer-content { + flex-grow: 1; + background-color: #fff; + padding: 30px; + border-radius: $border-radius-default; + } + } + + // Master detail (configurations) + .masterdetail { + border: 1px $border-color-default solid; + border-radius: $border-radius-default; + + .masterdetail-master { + min-height: 300px; + + .listview-lined.mx-listview > ul > li:first-child { + border-top: 0; + } + + img.settings-icon { + width: 30px; + height: 30px; + object-fit: contain; + } + } + } + + // Helper classes + .text-single-line, + .text-single-line .td-text { + text-overflow: ellipsis; + white-space: nowrap; + width: 100%; + overflow: hidden; + } + + .card.bordered { + border: 1px $gray-light solid; + width: 300px; + } +} \ No newline at end of file diff --git a/test/themesource/pushnotifications/web/main.scss b/test/themesource/pushnotifications/web/main.scss new file mode 100644 index 0000000..70985a9 --- /dev/null +++ b/test/themesource/pushnotifications/web/main.scss @@ -0,0 +1,5 @@ +// Default variables +@import "../../../theme/web/custom-variables"; + +// Module styling +@import "administration"; \ No newline at end of file diff --git a/test/userlib/bcpg-jdk15on-1.69.jar b/test/userlib/bcpg-jdk15on-1.69.jar new file mode 100644 index 0000000..0b3b210 Binary files /dev/null and b/test/userlib/bcpg-jdk15on-1.69.jar differ diff --git a/test/theme/styles/native/js/app/custom.js b/test/userlib/bcpg-jdk15on-1.69.jar.Encryption.RequiredLib old mode 100755 new mode 100644 similarity index 100% rename from test/theme/styles/native/js/app/custom.js rename to test/userlib/bcpg-jdk15on-1.69.jar.Encryption.RequiredLib diff --git a/test/userlib/bcpkix-jdk15on-1.69.jar b/test/userlib/bcpkix-jdk15on-1.69.jar new file mode 100644 index 0000000..9838192 Binary files /dev/null and b/test/userlib/bcpkix-jdk15on-1.69.jar differ diff --git a/test/userlib/checker-qual-2.5.2.jar.CommunityCommons.RequiredLib b/test/userlib/bcpkix-jdk15on-1.69.jar.Encryption.RequiredLib old mode 100755 new mode 100644 similarity index 100% rename from test/userlib/checker-qual-2.5.2.jar.CommunityCommons.RequiredLib rename to test/userlib/bcpkix-jdk15on-1.69.jar.Encryption.RequiredLib diff --git a/test/userlib/bcprov-jdk15on-1.69.jar b/test/userlib/bcprov-jdk15on-1.69.jar new file mode 100644 index 0000000..8647635 Binary files /dev/null and b/test/userlib/bcprov-jdk15on-1.69.jar differ diff --git a/test/userlib/commons-io-2.6.jar.CommunityCommons.RequiredLib b/test/userlib/bcprov-jdk15on-1.69.jar.Encryption.RequiredLib old mode 100755 new mode 100644 similarity index 100% rename from test/userlib/commons-io-2.6.jar.CommunityCommons.RequiredLib rename to test/userlib/bcprov-jdk15on-1.69.jar.Encryption.RequiredLib diff --git a/test/userlib/bcutil-jdk15on-1.69.jar b/test/userlib/bcutil-jdk15on-1.69.jar new file mode 100644 index 0000000..a4fcfa4 Binary files /dev/null and b/test/userlib/bcutil-jdk15on-1.69.jar differ diff --git a/test/userlib/commons-io-2.6.jar.RequiredLib b/test/userlib/bcutil-jdk15on-1.69.jar.Encryption.RequiredLib old mode 100755 new mode 100644 similarity index 100% rename from test/userlib/commons-io-2.6.jar.RequiredLib rename to test/userlib/bcutil-jdk15on-1.69.jar.Encryption.RequiredLib diff --git a/test/userlib/checker-qual-2.5.2.jar b/test/userlib/checker-qual-2.5.2.jar deleted file mode 100755 index ae4e7f1..0000000 Binary files a/test/userlib/checker-qual-2.5.2.jar and /dev/null differ diff --git a/test/userlib/checker-qual-3.8.0.jar b/test/userlib/checker-qual-3.8.0.jar new file mode 100644 index 0000000..d30059e Binary files /dev/null and b/test/userlib/checker-qual-3.8.0.jar differ diff --git a/test/userlib/commons-lang3-3.7.jar.CommunityCommons.RequiredLib b/test/userlib/checker-qual-3.8.0.jar.CommunityCommons.RequiredLib old mode 100755 new mode 100644 similarity index 100% rename from test/userlib/commons-lang3-3.7.jar.CommunityCommons.RequiredLib rename to test/userlib/checker-qual-3.8.0.jar.CommunityCommons.RequiredLib diff --git a/test/userlib/commons-io-2.6.jar b/test/userlib/commons-io-2.6.jar deleted file mode 100755 index 00556b1..0000000 Binary files a/test/userlib/commons-io-2.6.jar and /dev/null differ diff --git a/test/userlib/commons-io-2.8.0.jar b/test/userlib/commons-io-2.8.0.jar new file mode 100644 index 0000000..177e58d Binary files /dev/null and b/test/userlib/commons-io-2.8.0.jar differ diff --git a/test/userlib/error_prone_annotations-2.2.0.jar.CommunityCommons.RequiredLib b/test/userlib/commons-io-2.8.0.jar.CommunityCommons.RequiredLib old mode 100755 new mode 100644 similarity index 100% rename from test/userlib/error_prone_annotations-2.2.0.jar.CommunityCommons.RequiredLib rename to test/userlib/commons-io-2.8.0.jar.CommunityCommons.RequiredLib diff --git a/test/userlib/commons-lang3-3.11.jar b/test/userlib/commons-lang3-3.11.jar new file mode 100644 index 0000000..bbaa8a6 Binary files /dev/null and b/test/userlib/commons-lang3-3.11.jar differ diff --git a/test/userlib/error_prone_annotations-2.3.2.jar.PushNotifications.RequiredLib b/test/userlib/commons-lang3-3.11.jar.CommunityCommons.RequiredLib similarity index 100% rename from test/userlib/error_prone_annotations-2.3.2.jar.PushNotifications.RequiredLib rename to test/userlib/commons-lang3-3.11.jar.CommunityCommons.RequiredLib diff --git a/test/userlib/commons-lang3-3.7.jar b/test/userlib/commons-lang3-3.7.jar deleted file mode 100755 index f37ded6..0000000 Binary files a/test/userlib/commons-lang3-3.7.jar and /dev/null differ diff --git a/test/userlib/error_prone_annotations-2.2.0.jar b/test/userlib/error_prone_annotations-2.2.0.jar deleted file mode 100755 index c8e27b5..0000000 Binary files a/test/userlib/error_prone_annotations-2.2.0.jar and /dev/null differ diff --git a/test/userlib/error_prone_annotations-2.3.2.jar b/test/userlib/error_prone_annotations-2.3.2.jar deleted file mode 100644 index bc2584d..0000000 Binary files a/test/userlib/error_prone_annotations-2.3.2.jar and /dev/null differ diff --git a/test/userlib/error_prone_annotations-2.5.1.jar b/test/userlib/error_prone_annotations-2.5.1.jar new file mode 100644 index 0000000..fbc220c Binary files /dev/null and b/test/userlib/error_prone_annotations-2.5.1.jar differ diff --git a/test/userlib/guava-27.0-jre.jar.CommunityCommons.RequiredLib b/test/userlib/error_prone_annotations-2.5.1.jar.CommunityCommons.RequiredLib old mode 100755 new mode 100644 similarity index 100% rename from test/userlib/guava-27.0-jre.jar.CommunityCommons.RequiredLib rename to test/userlib/error_prone_annotations-2.5.1.jar.CommunityCommons.RequiredLib diff --git a/test/userlib/guava-28.1-android.jar.PushNotifications.RequiredLib b/test/userlib/error_prone_annotations-2.5.1.jar.PushNotifications.RequiredLib similarity index 100% rename from test/userlib/guava-28.1-android.jar.PushNotifications.RequiredLib rename to test/userlib/error_prone_annotations-2.5.1.jar.PushNotifications.RequiredLib diff --git a/test/userlib/j2objc-annotations-1.1.jar.CommunityCommons.RequiredLib b/test/userlib/failureaccess-1.0.1.jar.CommunityCommons.RequiredLib old mode 100755 new mode 100644 similarity index 100% rename from test/userlib/j2objc-annotations-1.1.jar.CommunityCommons.RequiredLib rename to test/userlib/failureaccess-1.0.1.jar.CommunityCommons.RequiredLib diff --git a/test/userlib/fontbox-2.0.24.jar b/test/userlib/fontbox-2.0.24.jar new file mode 100644 index 0000000..e93794c Binary files /dev/null and b/test/userlib/fontbox-2.0.24.jar differ diff --git a/test/userlib/owasp-java-html-sanitizer-20181114.1.jar.CommunityCommons.RequiredLib b/test/userlib/fontbox-2.0.24.jar.CommunityCommons.RequiredLib old mode 100755 new mode 100644 similarity index 100% rename from test/userlib/owasp-java-html-sanitizer-20181114.1.jar.CommunityCommons.RequiredLib rename to test/userlib/fontbox-2.0.24.jar.CommunityCommons.RequiredLib diff --git a/test/userlib/guava-27.0-jre.jar b/test/userlib/guava-27.0-jre.jar deleted file mode 100755 index 1bdd007..0000000 Binary files a/test/userlib/guava-27.0-jre.jar and /dev/null differ diff --git a/test/userlib/guava-28.1-android.jar b/test/userlib/guava-28.1-android.jar deleted file mode 100644 index 024acfd..0000000 Binary files a/test/userlib/guava-28.1-android.jar and /dev/null differ diff --git a/test/userlib/guava-30.1.1-jre.jar b/test/userlib/guava-30.1.1-jre.jar new file mode 100644 index 0000000..93ebf3b Binary files /dev/null and b/test/userlib/guava-30.1.1-jre.jar differ diff --git a/test/userlib/pdfbox-2.0.13.jar.CommunityCommons.RequiredLib b/test/userlib/guava-30.1.1-jre.jar.CommunityCommons.RequiredLib old mode 100755 new mode 100644 similarity index 100% rename from test/userlib/pdfbox-2.0.13.jar.CommunityCommons.RequiredLib rename to test/userlib/guava-30.1.1-jre.jar.CommunityCommons.RequiredLib diff --git a/test/userlib/guava-30.1.1-jre.jar.PushNotifications.RequiredLib b/test/userlib/guava-30.1.1-jre.jar.PushNotifications.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/test/userlib/j2objc-annotations-1.1.jar b/test/userlib/j2objc-annotations-1.1.jar deleted file mode 100755 index 4b6f127..0000000 Binary files a/test/userlib/j2objc-annotations-1.1.jar and /dev/null differ diff --git a/test/userlib/j2objc-annotations-1.3.jar.CommunityCommons.RequiredLib b/test/userlib/j2objc-annotations-1.3.jar.CommunityCommons.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/test/userlib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar.CommunityCommons.RequiredLib b/test/userlib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar.CommunityCommons.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/test/userlib/owasp-java-html-sanitizer-20181114.1.jar b/test/userlib/owasp-java-html-sanitizer-20181114.1.jar deleted file mode 100755 index 08af179..0000000 Binary files a/test/userlib/owasp-java-html-sanitizer-20181114.1.jar and /dev/null differ diff --git a/test/userlib/owasp-java-html-sanitizer-20200713.1.jar b/test/userlib/owasp-java-html-sanitizer-20200713.1.jar new file mode 100644 index 0000000..71c8e02 Binary files /dev/null and b/test/userlib/owasp-java-html-sanitizer-20200713.1.jar differ diff --git a/test/userlib/owasp-java-html-sanitizer-20200713.1.jar.CommunityCommons.RequiredLib b/test/userlib/owasp-java-html-sanitizer-20200713.1.jar.CommunityCommons.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/test/userlib/pdfbox-2.0.13.jar b/test/userlib/pdfbox-2.0.24.jar old mode 100755 new mode 100644 similarity index 59% rename from test/userlib/pdfbox-2.0.13.jar rename to test/userlib/pdfbox-2.0.24.jar index 8bee5ed..c6515b8 Binary files a/test/userlib/pdfbox-2.0.13.jar and b/test/userlib/pdfbox-2.0.24.jar differ diff --git a/test/userlib/pdfbox-2.0.24.jar.CommunityCommons.RequiredLib b/test/userlib/pdfbox-2.0.24.jar.CommunityCommons.RequiredLib new file mode 100644 index 0000000..e69de29 diff --git a/test/widgets/Badge.mpk b/test/widgets/Badge.mpk new file mode 100644 index 0000000..d0967d6 Binary files /dev/null and b/test/widgets/Badge.mpk differ diff --git a/test/widgets/Charts.mpk b/test/widgets/Charts.mpk index 59f5c82..70b94cf 100755 Binary files a/test/widgets/Charts.mpk and b/test/widgets/Charts.mpk differ diff --git a/test/widgets/Maps.mpk b/test/widgets/Maps.mpk index 755dbf7..426b04e 100755 Binary files a/test/widgets/Maps.mpk and b/test/widgets/Maps.mpk differ diff --git a/test/widgets/ProgressBar.mpk b/test/widgets/ProgressBar.mpk index c472473..c225a3d 100755 Binary files a/test/widgets/ProgressBar.mpk and b/test/widgets/ProgressBar.mpk differ diff --git a/test/widgets/ProgressCircle.mpk b/test/widgets/ProgressCircle.mpk index d6f9697..a006703 100755 Binary files a/test/widgets/ProgressCircle.mpk and b/test/widgets/ProgressCircle.mpk differ diff --git a/test/widgets/SprintrFeedbackWidget.mpk b/test/widgets/SprintrFeedbackWidget.mpk index 0b50238..3caed5d 100755 Binary files a/test/widgets/SprintrFeedbackWidget.mpk and b/test/widgets/SprintrFeedbackWidget.mpk differ diff --git a/test/widgets/com.mendix.widget.native.ActivityIndicator.mpk b/test/widgets/com.mendix.widget.native.ActivityIndicator.mpk index 9b673fc..6eae7c1 100755 Binary files a/test/widgets/com.mendix.widget.native.ActivityIndicator.mpk and b/test/widgets/com.mendix.widget.native.ActivityIndicator.mpk differ diff --git a/test/widgets/com.mendix.widget.native.Animation.mpk b/test/widgets/com.mendix.widget.native.Animation.mpk index b0762b4..416205e 100755 Binary files a/test/widgets/com.mendix.widget.native.Animation.mpk and b/test/widgets/com.mendix.widget.native.Animation.mpk differ diff --git a/test/widgets/com.mendix.widget.native.AppEvents.mpk b/test/widgets/com.mendix.widget.native.AppEvents.mpk index 8fb4df5..059586a 100755 Binary files a/test/widgets/com.mendix.widget.native.AppEvents.mpk and b/test/widgets/com.mendix.widget.native.AppEvents.mpk differ diff --git a/test/widgets/com.mendix.widget.native.BackgroundImage.mpk b/test/widgets/com.mendix.widget.native.BackgroundImage.mpk index aa3d412..46ad28e 100755 Binary files a/test/widgets/com.mendix.widget.native.BackgroundImage.mpk and b/test/widgets/com.mendix.widget.native.BackgroundImage.mpk differ diff --git a/test/widgets/com.mendix.widget.native.Badge.mpk b/test/widgets/com.mendix.widget.native.Badge.mpk index cab8681..73b2bdc 100755 Binary files a/test/widgets/com.mendix.widget.native.Badge.mpk and b/test/widgets/com.mendix.widget.native.Badge.mpk differ diff --git a/test/widgets/com.mendix.widget.native.BarChart.mpk b/test/widgets/com.mendix.widget.native.BarChart.mpk new file mode 100644 index 0000000..a7dad85 Binary files /dev/null and b/test/widgets/com.mendix.widget.native.BarChart.mpk differ diff --git a/test/widgets/com.mendix.widget.native.BarcodeScanner.mpk b/test/widgets/com.mendix.widget.native.BarcodeScanner.mpk index 34e88e2..0336943 100755 Binary files a/test/widgets/com.mendix.widget.native.BarcodeScanner.mpk and b/test/widgets/com.mendix.widget.native.BarcodeScanner.mpk differ diff --git a/test/widgets/com.mendix.widget.native.BottomSheet.mpk b/test/widgets/com.mendix.widget.native.BottomSheet.mpk index ec91960..c1247e1 100755 Binary files a/test/widgets/com.mendix.widget.native.BottomSheet.mpk and b/test/widgets/com.mendix.widget.native.BottomSheet.mpk differ diff --git a/test/widgets/com.mendix.widget.native.Carousel.mpk b/test/widgets/com.mendix.widget.native.Carousel.mpk index 4033497..06920c4 100755 Binary files a/test/widgets/com.mendix.widget.native.Carousel.mpk and b/test/widgets/com.mendix.widget.native.Carousel.mpk differ diff --git a/test/widgets/com.mendix.widget.native.ColorPicker.mpk b/test/widgets/com.mendix.widget.native.ColorPicker.mpk index 7d06ca9..17f08a5 100755 Binary files a/test/widgets/com.mendix.widget.native.ColorPicker.mpk and b/test/widgets/com.mendix.widget.native.ColorPicker.mpk differ diff --git a/test/widgets/com.mendix.widget.native.Feedback.mpk b/test/widgets/com.mendix.widget.native.Feedback.mpk index 6de0a0c..3932c3f 100755 Binary files a/test/widgets/com.mendix.widget.native.Feedback.mpk and b/test/widgets/com.mendix.widget.native.Feedback.mpk differ diff --git a/test/widgets/com.mendix.widget.native.FloatingActionButton.mpk b/test/widgets/com.mendix.widget.native.FloatingActionButton.mpk index f320d3b..0d23ee7 100755 Binary files a/test/widgets/com.mendix.widget.native.FloatingActionButton.mpk and b/test/widgets/com.mendix.widget.native.FloatingActionButton.mpk differ diff --git a/test/widgets/com.mendix.widget.native.IntroScreen.mpk b/test/widgets/com.mendix.widget.native.IntroScreen.mpk index 7ed7106..e71f453 100755 Binary files a/test/widgets/com.mendix.widget.native.IntroScreen.mpk and b/test/widgets/com.mendix.widget.native.IntroScreen.mpk differ diff --git a/test/widgets/com.mendix.widget.native.LineChart.mpk b/test/widgets/com.mendix.widget.native.LineChart.mpk index 39612dc..b10182f 100644 Binary files a/test/widgets/com.mendix.widget.native.LineChart.mpk and b/test/widgets/com.mendix.widget.native.LineChart.mpk differ diff --git a/test/widgets/com.mendix.widget.native.ListViewSwipe.mpk b/test/widgets/com.mendix.widget.native.ListViewSwipe.mpk index c5c29dc..a790597 100755 Binary files a/test/widgets/com.mendix.widget.native.ListViewSwipe.mpk and b/test/widgets/com.mendix.widget.native.ListViewSwipe.mpk differ diff --git a/test/widgets/com.mendix.widget.native.Maps.mpk b/test/widgets/com.mendix.widget.native.Maps.mpk index 66c4cfe..a86a9c5 100755 Binary files a/test/widgets/com.mendix.widget.native.Maps.mpk and b/test/widgets/com.mendix.widget.native.Maps.mpk differ diff --git a/test/widgets/com.mendix.widget.native.Notifications.mpk b/test/widgets/com.mendix.widget.native.Notifications.mpk index 8cbbff4..5251620 100755 Binary files a/test/widgets/com.mendix.widget.native.Notifications.mpk and b/test/widgets/com.mendix.widget.native.Notifications.mpk differ diff --git a/test/widgets/com.mendix.widget.native.PopupMenu.mpk b/test/widgets/com.mendix.widget.native.PopupMenu.mpk index 7297a0d..cca1181 100755 Binary files a/test/widgets/com.mendix.widget.native.PopupMenu.mpk and b/test/widgets/com.mendix.widget.native.PopupMenu.mpk differ diff --git a/test/widgets/com.mendix.widget.native.ProgressBar.mpk b/test/widgets/com.mendix.widget.native.ProgressBar.mpk index f223fc6..1bb4e33 100755 Binary files a/test/widgets/com.mendix.widget.native.ProgressBar.mpk and b/test/widgets/com.mendix.widget.native.ProgressBar.mpk differ diff --git a/test/widgets/com.mendix.widget.native.ProgressCircle.mpk b/test/widgets/com.mendix.widget.native.ProgressCircle.mpk index 193b95a..23b530e 100755 Binary files a/test/widgets/com.mendix.widget.native.ProgressCircle.mpk and b/test/widgets/com.mendix.widget.native.ProgressCircle.mpk differ diff --git a/test/widgets/com.mendix.widget.native.QRCode.mpk b/test/widgets/com.mendix.widget.native.QRCode.mpk index 4a50c49..d8d39a6 100755 Binary files a/test/widgets/com.mendix.widget.native.QRCode.mpk and b/test/widgets/com.mendix.widget.native.QRCode.mpk differ diff --git a/test/widgets/com.mendix.widget.native.RangeSlider.mpk b/test/widgets/com.mendix.widget.native.RangeSlider.mpk index 05fdce6..53ae1ef 100755 Binary files a/test/widgets/com.mendix.widget.native.RangeSlider.mpk and b/test/widgets/com.mendix.widget.native.RangeSlider.mpk differ diff --git a/test/widgets/com.mendix.widget.native.Rating.mpk b/test/widgets/com.mendix.widget.native.Rating.mpk index 2551a4c..75ad1a1 100755 Binary files a/test/widgets/com.mendix.widget.native.Rating.mpk and b/test/widgets/com.mendix.widget.native.Rating.mpk differ diff --git a/test/widgets/com.mendix.widget.native.Repeater.mpk b/test/widgets/com.mendix.widget.native.Repeater.mpk index 69abff0..e7ff458 100644 Binary files a/test/widgets/com.mendix.widget.native.Repeater.mpk and b/test/widgets/com.mendix.widget.native.Repeater.mpk differ diff --git a/test/widgets/com.mendix.widget.native.SafeAreaView.mpk b/test/widgets/com.mendix.widget.native.SafeAreaView.mpk index 620049a..f052240 100755 Binary files a/test/widgets/com.mendix.widget.native.SafeAreaView.mpk and b/test/widgets/com.mendix.widget.native.SafeAreaView.mpk differ diff --git a/test/widgets/com.mendix.widget.native.Slider.mpk b/test/widgets/com.mendix.widget.native.Slider.mpk index 50fd0be..d052669 100755 Binary files a/test/widgets/com.mendix.widget.native.Slider.mpk and b/test/widgets/com.mendix.widget.native.Slider.mpk differ diff --git a/test/widgets/com.mendix.widget.native.ToggleButtons.mpk b/test/widgets/com.mendix.widget.native.ToggleButtons.mpk index ccbb1e5..931b9bf 100755 Binary files a/test/widgets/com.mendix.widget.native.ToggleButtons.mpk and b/test/widgets/com.mendix.widget.native.ToggleButtons.mpk differ diff --git a/test/widgets/com.mendix.widget.native.VideoPlayer.mpk b/test/widgets/com.mendix.widget.native.VideoPlayer.mpk index 5ebe47f..5fc2f5b 100755 Binary files a/test/widgets/com.mendix.widget.native.VideoPlayer.mpk and b/test/widgets/com.mendix.widget.native.VideoPlayer.mpk differ diff --git a/test/widgets/com.mendix.widget.native.WebView.mpk b/test/widgets/com.mendix.widget.native.WebView.mpk index 3a8c9e1..fa2cb5c 100755 Binary files a/test/widgets/com.mendix.widget.native.WebView.mpk and b/test/widgets/com.mendix.widget.native.WebView.mpk differ diff --git a/test/widgets/com.mendix.widget.web.Datagrid.mpk b/test/widgets/com.mendix.widget.web.Datagrid.mpk new file mode 100644 index 0000000..6835ca1 Binary files /dev/null and b/test/widgets/com.mendix.widget.web.Datagrid.mpk differ diff --git a/test/widgets/com.mendix.widget.web.DatagridDateFilter.mpk b/test/widgets/com.mendix.widget.web.DatagridDateFilter.mpk new file mode 100644 index 0000000..ae15bb6 Binary files /dev/null and b/test/widgets/com.mendix.widget.web.DatagridDateFilter.mpk differ diff --git a/test/widgets/com.mendix.widget.web.DatagridDropdownFilter.mpk b/test/widgets/com.mendix.widget.web.DatagridDropdownFilter.mpk new file mode 100644 index 0000000..581deff Binary files /dev/null and b/test/widgets/com.mendix.widget.web.DatagridDropdownFilter.mpk differ diff --git a/test/widgets/com.mendix.widget.web.DatagridNumberFilter.mpk b/test/widgets/com.mendix.widget.web.DatagridNumberFilter.mpk new file mode 100644 index 0000000..ee24474 Binary files /dev/null and b/test/widgets/com.mendix.widget.web.DatagridNumberFilter.mpk differ diff --git a/test/widgets/com.mendix.widget.web.DatagridTextFilter.mpk b/test/widgets/com.mendix.widget.web.DatagridTextFilter.mpk new file mode 100644 index 0000000..c405b64 Binary files /dev/null and b/test/widgets/com.mendix.widget.web.DatagridTextFilter.mpk differ diff --git a/test/widgets/com.mendix.widget.web.PopupMenu.mpk b/test/widgets/com.mendix.widget.web.PopupMenu.mpk new file mode 100644 index 0000000..83c0673 Binary files /dev/null and b/test/widgets/com.mendix.widget.web.PopupMenu.mpk differ diff --git a/test/widgets/com.mendix.widget.web.Timeline.mpk b/test/widgets/com.mendix.widget.web.Timeline.mpk new file mode 100644 index 0000000..ba2d6e9 Binary files /dev/null and b/test/widgets/com.mendix.widget.web.Timeline.mpk differ