diff --git a/MP-MAG/App_Readme/Elmah.txt b/MP-MAG/App_Readme/Elmah.txt new file mode 100644 index 0000000..784b309 --- /dev/null +++ b/MP-MAG/App_Readme/Elmah.txt @@ -0,0 +1,15 @@ +A new HTTP handler has been configured in your application for consulting the +error log and its feeds. It is reachable at elmah.axd under your application +root. If, for example, your application is deployed at http://www.example.com, +the URL for ELMAH would be http://www.example.com/elmah.axd. You can, of +course, change this path in your application's configuration file. + +ELMAH is also set up to be secure such that it can only be accessed locally. +You can enable remote access but then it is paramount that you secure access +to authorized users or/and roles only. This can be done using standard +authorization rules and configuration already built into ASP.NET. For more +information, see http://code.google.com/p/elmah/wiki/SecuringErrorLogPages on +the project site. + +Please review the commented out authorization section under + and make the appropriate changes. diff --git a/MP-MAG/App_Readme/SteamWare_demo/example-NLog.config b/MP-MAG/App_Readme/SteamWare_demo/example-NLog.config new file mode 100644 index 0000000..a11a39e --- /dev/null +++ b/MP-MAG/App_Readme/SteamWare_demo/example-NLog.config @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MP-MAG/App_Readme/SteamWare_demo/example-app.config b/MP-MAG/App_Readme/SteamWare_demo/example-app.config new file mode 100644 index 0000000..fb42165 --- /dev/null +++ b/MP-MAG/App_Readme/SteamWare_demo/example-app.config @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/MP-MAG/App_Readme/SteamWare_demo/example-config-table.txt b/MP-MAG/App_Readme/SteamWare_demo/example-config-table.txt new file mode 100644 index 0000000..dd0ab8e --- /dev/null +++ b/MP-MAG/App_Readme/SteamWare_demo/example-config-table.txt @@ -0,0 +1,30 @@ +# chiave valore valoreStd note +_adminEmail samuele@steamware.net,info@steamware.net samuele@steamware.net,info@steamware.net info@steamware.net +_allowForceUser true true abilita login forzato +_commonPages menu menu pagina comune +_emailPwd drmfsls16 drmfsls16 drmfsls16 +_emailUser steamwarebot@gmail.com steamwarebot@gmail.com steamwarebot@gmail.com +_enableSSL true true true +_fromEmail webmaster@admodelling.org webmaster@admodelling.org email mittente eventuali msg +_righeDataGrid 30 30 Num righe datagrid std +_righeDataGridAnagr 20 20 Num righe datagrid anagrafiche +_righeDataGridLong 30 30 Num righe datagrid long +_righeDataGridMed 15 15 Num righe datagrid med +_righeDataGridShort 10 10 Num righe datagrid short +_smtpCli smtp.gmail.com smtp.gmail.com smtp.gmail.com +_useAIMSmtp false false impiego client posta elettronica alternativo +_useAuthSmtp true true true +AuthCookieName admodellingAuth admodellingAuth Cookie applicativo +autoConfCmd true true Conferma automatica comandi barcode +baseUrl http://site_name http://iis02/site_name URL base del sito +cacheValSec 60 60 Validità cache dati in gestore Barcode +cookieDayExp 365 365 Periodo validità cookie +cookieUsed admodellingAuth admodellingAuth,CTrack_CodOpr,CTrack_CodPost Elenco dei cookie impiegati +enableCookie true true Abilitazione uso cookie +enableLogOut true false Abilita button logout COMPLETO in alto a sx +enablePlain true true Abilitazione decode plain +maxAuth 1000 1000 num auth minimo per NON consumare tokens +serializeSession true true Serializzazione valori in sessione (REDIS) +SiteName iis02/site_name iis02/site_name Nome sito +enableDumpDiag false false abilitazione dumb diagnostico x eccezioni di default +doShrinkFolder true true Imposta compressione area LOGS \ No newline at end of file diff --git a/MP-MAG/App_Start/BundleConfig.cs b/MP-MAG/App_Start/BundleConfig.cs index d62bf96..3055d5c 100644 --- a/MP-MAG/App_Start/BundleConfig.cs +++ b/MP-MAG/App_Start/BundleConfig.cs @@ -1,13 +1,34 @@ -using System.Web; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; using System.Web.Optimization; +using System.Web.UI; -namespace MP_API +namespace MP_MAG { public class BundleConfig { // Per altre informazioni sulla creazione di bundle, vedere https://go.microsoft.com/fwlink/?LinkId=301862 public static void RegisterBundles(BundleCollection bundles) { + bundles.Add(new ScriptBundle("~/bundles/WebFormsJs").Include( + "~/Scripts/WebForms/WebForms.js", + "~/Scripts/WebForms/WebUIValidation.js", + "~/Scripts/WebForms/MenuStandards.js", + "~/Scripts/WebForms/Focus.js", + "~/Scripts/WebForms/GridView.js", + "~/Scripts/WebForms/DetailsView.js", + "~/Scripts/WebForms/TreeView.js", + "~/Scripts/WebForms/WebParts.js")); + + // L'ordine è molto importante per il funzionamento di questi file poiché hanno dipendenze esplicite + bundles.Add(new ScriptBundle("~/bundles/MsAjaxJs").Include( + "~/Scripts/WebForms/MsAjax/MicrosoftAjax.js", + "~/Scripts/WebForms/MsAjax/MicrosoftAjaxApplicationServices.js", + "~/Scripts/WebForms/MsAjax/MicrosoftAjaxTimer.js", + "~/Scripts/WebForms/MsAjax/MicrosoftAjaxWebForms.js")); + bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); @@ -22,6 +43,9 @@ namespace MP_API bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/bootstrap.css", "~/Content/site.css")); + + // abilito bundle "forzato"! + BundleTable.EnableOptimizations = true; } } } diff --git a/MP-MAG/App_Start/FilterConfig.cs b/MP-MAG/App_Start/FilterConfig.cs index 9f3639f..ba86923 100644 --- a/MP-MAG/App_Start/FilterConfig.cs +++ b/MP-MAG/App_Start/FilterConfig.cs @@ -1,7 +1,7 @@ using System.Web; using System.Web.Mvc; -namespace MP_API +namespace MP_MAG { public class FilterConfig { diff --git a/MP-MAG/App_Start/RouteConfig.cs b/MP-MAG/App_Start/RouteConfig.cs index a3c9b82..59ac879 100644 --- a/MP-MAG/App_Start/RouteConfig.cs +++ b/MP-MAG/App_Start/RouteConfig.cs @@ -1,16 +1,22 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; +using Microsoft.AspNet.FriendlyUrls; -namespace MP_API +namespace MP_MAG { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { + var settings = new FriendlyUrlSettings(); + settings.AutoRedirectMode = RedirectMode.Permanent; + routes.EnableFriendlyUrls(settings); + + // aggiungo route x gestione controller code stampa routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( diff --git a/MP-MAG/App_Start/WebApiConfig.cs b/MP-MAG/App_Start/WebApiConfig.cs index af929a8..9a47055 100644 --- a/MP-MAG/App_Start/WebApiConfig.cs +++ b/MP-MAG/App_Start/WebApiConfig.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Web.Http; -namespace MP_API +namespace MP_MAG { public static class WebApiConfig { diff --git a/MP-MAG/Areas/HelpPage/ApiDescriptionExtensions.cs b/MP-MAG/Areas/HelpPage/ApiDescriptionExtensions.cs index eab4179..9ab0d1b 100644 --- a/MP-MAG/Areas/HelpPage/ApiDescriptionExtensions.cs +++ b/MP-MAG/Areas/HelpPage/ApiDescriptionExtensions.cs @@ -3,7 +3,7 @@ using System.Text; using System.Web; using System.Web.Http.Description; -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { public static class ApiDescriptionExtensions { diff --git a/MP-MAG/Areas/HelpPage/App_Start/HelpPageConfig.cs b/MP-MAG/Areas/HelpPage/App_Start/HelpPageConfig.cs index 924791d..c73f533 100644 --- a/MP-MAG/Areas/HelpPage/App_Start/HelpPageConfig.cs +++ b/MP-MAG/Areas/HelpPage/App_Start/HelpPageConfig.cs @@ -16,7 +16,7 @@ using System.Web.Http; using System.Web.Http.OData; #endif -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { /// /// Use this class to customize the Help Page. @@ -26,7 +26,7 @@ namespace MP_API.Areas.HelpPage public static class HelpPageConfig { [SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", - MessageId = "MP_API.Areas.HelpPage.TextSample.#ctor(System.String)", + MessageId = "MP_MAG.Areas.HelpPage.TextSample.#ctor(System.String)", Justification = "End users may choose to merge this string with existing localized resources.")] [SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly", MessageId = "bsonspec", diff --git a/MP-MAG/Areas/HelpPage/Controllers/HelpController.cs b/MP-MAG/Areas/HelpPage/Controllers/HelpController.cs index 93db05b..71f6ea3 100644 --- a/MP-MAG/Areas/HelpPage/Controllers/HelpController.cs +++ b/MP-MAG/Areas/HelpPage/Controllers/HelpController.cs @@ -1,10 +1,10 @@ using System; using System.Web.Http; using System.Web.Mvc; -using MP_API.Areas.HelpPage.ModelDescriptions; -using MP_API.Areas.HelpPage.Models; +using MP_MAG.Areas.HelpPage.ModelDescriptions; +using MP_MAG.Areas.HelpPage.Models; -namespace MP_API.Areas.HelpPage.Controllers +namespace MP_MAG.Areas.HelpPage.Controllers { /// /// The controller that will handle requests for the help page. diff --git a/MP-MAG/Areas/HelpPage/HelpPageAreaRegistration.cs b/MP-MAG/Areas/HelpPage/HelpPageAreaRegistration.cs index f8bfad1..288e6f3 100644 --- a/MP-MAG/Areas/HelpPage/HelpPageAreaRegistration.cs +++ b/MP-MAG/Areas/HelpPage/HelpPageAreaRegistration.cs @@ -1,7 +1,7 @@ using System.Web.Http; using System.Web.Mvc; -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { public class HelpPageAreaRegistration : AreaRegistration { diff --git a/MP-MAG/Areas/HelpPage/HelpPageConfigurationExtensions.cs b/MP-MAG/Areas/HelpPage/HelpPageConfigurationExtensions.cs index d7a85d7..ce2fff9 100644 --- a/MP-MAG/Areas/HelpPage/HelpPageConfigurationExtensions.cs +++ b/MP-MAG/Areas/HelpPage/HelpPageConfigurationExtensions.cs @@ -11,10 +11,10 @@ using System.Net.Http.Headers; using System.Web.Http; using System.Web.Http.Controllers; using System.Web.Http.Description; -using MP_API.Areas.HelpPage.ModelDescriptions; -using MP_API.Areas.HelpPage.Models; +using MP_MAG.Areas.HelpPage.ModelDescriptions; +using MP_MAG.Areas.HelpPage.Models; -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { public static class HelpPageConfigurationExtensions { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/CollectionModelDescription.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/CollectionModelDescription.cs index 8bac132..333c537 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/CollectionModelDescription.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/CollectionModelDescription.cs @@ -1,4 +1,4 @@ -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { public class CollectionModelDescription : ModelDescription { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/ComplexTypeModelDescription.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/ComplexTypeModelDescription.cs index 1a9dd74..fbfc747 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/ComplexTypeModelDescription.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/ComplexTypeModelDescription.cs @@ -1,6 +1,6 @@ using System.Collections.ObjectModel; -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { public class ComplexTypeModelDescription : ModelDescription { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/DictionaryModelDescription.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/DictionaryModelDescription.cs index 4e76463..a86d93a 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/DictionaryModelDescription.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/DictionaryModelDescription.cs @@ -1,4 +1,4 @@ -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { public class DictionaryModelDescription : KeyValuePairModelDescription { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/EnumTypeModelDescription.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/EnumTypeModelDescription.cs index 4543464..4a7e828 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/EnumTypeModelDescription.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/EnumTypeModelDescription.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { public class EnumTypeModelDescription : ModelDescription { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/EnumValueDescription.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/EnumValueDescription.cs index 1b9ef66..d7d1c89 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/EnumValueDescription.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/EnumValueDescription.cs @@ -1,4 +1,4 @@ -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { public class EnumValueDescription { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/IModelDocumentationProvider.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/IModelDocumentationProvider.cs index a263032..be1a957 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/IModelDocumentationProvider.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/IModelDocumentationProvider.cs @@ -1,7 +1,7 @@ using System; using System.Reflection; -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { public interface IModelDocumentationProvider { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/KeyValuePairModelDescription.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/KeyValuePairModelDescription.cs index ae29cc8..6f86bd9 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/KeyValuePairModelDescription.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/KeyValuePairModelDescription.cs @@ -1,4 +1,4 @@ -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { public class KeyValuePairModelDescription : ModelDescription { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelDescription.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelDescription.cs index d0b7644..9e5edfd 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelDescription.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelDescription.cs @@ -1,6 +1,6 @@ using System; -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { /// /// Describes a type model. diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelDescriptionGenerator.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelDescriptionGenerator.cs index 4015beb..7c59d38 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelDescriptionGenerator.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelDescriptionGenerator.cs @@ -11,7 +11,7 @@ using System.Web.Http.Description; using System.Xml.Serialization; using Newtonsoft.Json; -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { /// /// Generates model descriptions for given types. diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelNameAttribute.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelNameAttribute.cs index 4c1eea1..9e1327e 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelNameAttribute.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelNameAttribute.cs @@ -1,6 +1,6 @@ using System; -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { /// /// Use this attribute to change the name of the generated for a type. diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelNameHelper.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelNameHelper.cs index 374b467..7fc0148 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelNameHelper.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/ModelNameHelper.cs @@ -3,7 +3,7 @@ using System.Globalization; using System.Linq; using System.Reflection; -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { internal static class ModelNameHelper { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/ParameterAnnotation.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/ParameterAnnotation.cs index 65f458b..8c8f03a 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/ParameterAnnotation.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/ParameterAnnotation.cs @@ -1,6 +1,6 @@ using System; -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { public class ParameterAnnotation { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/ParameterDescription.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/ParameterDescription.cs index b2e43f1..987c755 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/ParameterDescription.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/ParameterDescription.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { public class ParameterDescription { diff --git a/MP-MAG/Areas/HelpPage/ModelDescriptions/SimpleTypeModelDescription.cs b/MP-MAG/Areas/HelpPage/ModelDescriptions/SimpleTypeModelDescription.cs index 3835c11..5c2f9a0 100644 --- a/MP-MAG/Areas/HelpPage/ModelDescriptions/SimpleTypeModelDescription.cs +++ b/MP-MAG/Areas/HelpPage/ModelDescriptions/SimpleTypeModelDescription.cs @@ -1,4 +1,4 @@ -namespace MP_API.Areas.HelpPage.ModelDescriptions +namespace MP_MAG.Areas.HelpPage.ModelDescriptions { public class SimpleTypeModelDescription : ModelDescription { diff --git a/MP-MAG/Areas/HelpPage/Models/HelpPageApiModel.cs b/MP-MAG/Areas/HelpPage/Models/HelpPageApiModel.cs index b40efa1..4ebc6d8 100644 --- a/MP-MAG/Areas/HelpPage/Models/HelpPageApiModel.cs +++ b/MP-MAG/Areas/HelpPage/Models/HelpPageApiModel.cs @@ -2,9 +2,9 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Net.Http.Headers; using System.Web.Http.Description; -using MP_API.Areas.HelpPage.ModelDescriptions; +using MP_MAG.Areas.HelpPage.ModelDescriptions; -namespace MP_API.Areas.HelpPage.Models +namespace MP_MAG.Areas.HelpPage.Models { /// /// The model that represents an API displayed on the help page. diff --git a/MP-MAG/Areas/HelpPage/SampleGeneration/HelpPageSampleGenerator.cs b/MP-MAG/Areas/HelpPage/SampleGeneration/HelpPageSampleGenerator.cs index 9497438..64b655d 100644 --- a/MP-MAG/Areas/HelpPage/SampleGeneration/HelpPageSampleGenerator.cs +++ b/MP-MAG/Areas/HelpPage/SampleGeneration/HelpPageSampleGenerator.cs @@ -13,7 +13,7 @@ using System.Web.Http.Description; using System.Xml.Linq; using Newtonsoft.Json; -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { /// /// This class will generate the samples for the help page. diff --git a/MP-MAG/Areas/HelpPage/SampleGeneration/HelpPageSampleKey.cs b/MP-MAG/Areas/HelpPage/SampleGeneration/HelpPageSampleKey.cs index 3976900..4560679 100644 --- a/MP-MAG/Areas/HelpPage/SampleGeneration/HelpPageSampleKey.cs +++ b/MP-MAG/Areas/HelpPage/SampleGeneration/HelpPageSampleKey.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Net.Http.Headers; -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { /// /// This is used to identify the place where the sample should be applied. diff --git a/MP-MAG/Areas/HelpPage/SampleGeneration/ImageSample.cs b/MP-MAG/Areas/HelpPage/SampleGeneration/ImageSample.cs index 24ba756..a0ee3e8 100644 --- a/MP-MAG/Areas/HelpPage/SampleGeneration/ImageSample.cs +++ b/MP-MAG/Areas/HelpPage/SampleGeneration/ImageSample.cs @@ -1,6 +1,6 @@ using System; -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { /// /// This represents an image sample on the help page. There's a display template named ImageSample associated with this class. diff --git a/MP-MAG/Areas/HelpPage/SampleGeneration/InvalidSample.cs b/MP-MAG/Areas/HelpPage/SampleGeneration/InvalidSample.cs index 1ae395f..d7ea664 100644 --- a/MP-MAG/Areas/HelpPage/SampleGeneration/InvalidSample.cs +++ b/MP-MAG/Areas/HelpPage/SampleGeneration/InvalidSample.cs @@ -1,6 +1,6 @@ using System; -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { /// /// This represents an invalid sample on the help page. There's a display template named InvalidSample associated with this class. diff --git a/MP-MAG/Areas/HelpPage/SampleGeneration/ObjectGenerator.cs b/MP-MAG/Areas/HelpPage/SampleGeneration/ObjectGenerator.cs index de4496e..1149640 100644 --- a/MP-MAG/Areas/HelpPage/SampleGeneration/ObjectGenerator.cs +++ b/MP-MAG/Areas/HelpPage/SampleGeneration/ObjectGenerator.cs @@ -6,7 +6,7 @@ using System.Globalization; using System.Linq; using System.Reflection; -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { /// /// This class will create an object of a given type and populate it with sample data. diff --git a/MP-MAG/Areas/HelpPage/SampleGeneration/SampleDirection.cs b/MP-MAG/Areas/HelpPage/SampleGeneration/SampleDirection.cs index 3c39a12..1dc0584 100644 --- a/MP-MAG/Areas/HelpPage/SampleGeneration/SampleDirection.cs +++ b/MP-MAG/Areas/HelpPage/SampleGeneration/SampleDirection.cs @@ -1,4 +1,4 @@ -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { /// /// Indicates whether the sample is used for request or response diff --git a/MP-MAG/Areas/HelpPage/SampleGeneration/TextSample.cs b/MP-MAG/Areas/HelpPage/SampleGeneration/TextSample.cs index 2f04b1d..72bc678 100644 --- a/MP-MAG/Areas/HelpPage/SampleGeneration/TextSample.cs +++ b/MP-MAG/Areas/HelpPage/SampleGeneration/TextSample.cs @@ -1,6 +1,6 @@ using System; -namespace MP_API.Areas.HelpPage +namespace MP_MAG.Areas.HelpPage { /// /// This represents a preformatted text sample on the help page. There's a display template named TextSample associated with this class. diff --git a/MP-MAG/Areas/HelpPage/Views/Help/Api.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/Api.cshtml index c748921..bf98588 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/Api.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/Api.cshtml @@ -1,5 +1,5 @@ @using System.Web.Http -@using MP_API.Areas.HelpPage.Models +@using MP_MAG.Areas.HelpPage.Models @model HelpPageApiModel @{ diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ApiGroup.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ApiGroup.cshtml index a9ee665..1d84bc9 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ApiGroup.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ApiGroup.cshtml @@ -1,8 +1,8 @@ @using System.Web.Http @using System.Web.Http.Controllers @using System.Web.Http.Description -@using MP_API.Areas.HelpPage -@using MP_API.Areas.HelpPage.Models +@using MP_MAG.Areas.HelpPage +@using MP_MAG.Areas.HelpPage.Models @model IGrouping @{ diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/CollectionModelDescription.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/CollectionModelDescription.cshtml index 7564b0b..0fdb6a2 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/CollectionModelDescription.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/CollectionModelDescription.cshtml @@ -1,4 +1,4 @@ -@using MP_API.Areas.HelpPage.ModelDescriptions +@using MP_MAG.Areas.HelpPage.ModelDescriptions @model CollectionModelDescription @if (Model.ElementDescription is ComplexTypeModelDescription) { diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ComplexTypeModelDescription.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ComplexTypeModelDescription.cshtml index 568fae3..c0f9f14 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ComplexTypeModelDescription.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ComplexTypeModelDescription.cshtml @@ -1,3 +1,3 @@ -@using MP_API.Areas.HelpPage.ModelDescriptions +@using MP_MAG.Areas.HelpPage.ModelDescriptions @model ComplexTypeModelDescription @Html.DisplayFor(m => m.Properties, "Parameters") \ No newline at end of file diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/DictionaryModelDescription.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/DictionaryModelDescription.cshtml index 27f9e9e..2471c9c 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/DictionaryModelDescription.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/DictionaryModelDescription.cshtml @@ -1,4 +1,4 @@ -@using MP_API.Areas.HelpPage.ModelDescriptions +@using MP_MAG.Areas.HelpPage.ModelDescriptions @model DictionaryModelDescription Dictionary of @Html.DisplayFor(m => Model.KeyModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.KeyModelDescription }) [key] and @Html.DisplayFor(m => Model.ValueModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.ValueModelDescription }) [value] \ No newline at end of file diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/EnumTypeModelDescription.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/EnumTypeModelDescription.cshtml index ec079e6..921f768 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/EnumTypeModelDescription.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/EnumTypeModelDescription.cshtml @@ -1,4 +1,4 @@ -@using MP_API.Areas.HelpPage.ModelDescriptions +@using MP_MAG.Areas.HelpPage.ModelDescriptions @model EnumTypeModelDescription

Possible enumeration values:

diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/HelpPageApiModel.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/HelpPageApiModel.cshtml index 92040f2..876d7e5 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/HelpPageApiModel.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/HelpPageApiModel.cshtml @@ -1,7 +1,7 @@ @using System.Web.Http @using System.Web.Http.Description -@using MP_API.Areas.HelpPage.Models -@using MP_API.Areas.HelpPage.ModelDescriptions +@using MP_MAG.Areas.HelpPage.Models +@using MP_MAG.Areas.HelpPage.ModelDescriptions @model HelpPageApiModel @{ diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ImageSample.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ImageSample.cshtml index 3da9eeb..e0296ef 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ImageSample.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ImageSample.cshtml @@ -1,4 +1,4 @@ -@using MP_API.Areas.HelpPage +@using MP_MAG.Areas.HelpPage @model ImageSample \ No newline at end of file diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/InvalidSample.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/InvalidSample.cshtml index 29a43c5..fc03fc8 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/InvalidSample.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/InvalidSample.cshtml @@ -1,4 +1,4 @@ -@using MP_API.Areas.HelpPage +@using MP_MAG.Areas.HelpPage @model InvalidSample @if (HttpContext.Current.IsDebuggingEnabled) diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/KeyValuePairModelDescription.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/KeyValuePairModelDescription.cshtml index 36b153d..c621001 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/KeyValuePairModelDescription.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/KeyValuePairModelDescription.cshtml @@ -1,4 +1,4 @@ -@using MP_API.Areas.HelpPage.ModelDescriptions +@using MP_MAG.Areas.HelpPage.ModelDescriptions @model KeyValuePairModelDescription Pair of @Html.DisplayFor(m => Model.KeyModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.KeyModelDescription }) [key] and @Html.DisplayFor(m => Model.ValueModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.ValueModelDescription }) [value] \ No newline at end of file diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ModelDescriptionLink.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ModelDescriptionLink.cshtml index dd25a60..b6c0f85 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ModelDescriptionLink.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/ModelDescriptionLink.cshtml @@ -1,4 +1,4 @@ -@using MP_API.Areas.HelpPage.ModelDescriptions +@using MP_MAG.Areas.HelpPage.ModelDescriptions @model Type @{ ModelDescription modelDescription = ViewBag.modelDescription; diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/Parameters.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/Parameters.cshtml index 8209e7d..560f7ee 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/Parameters.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/Parameters.cshtml @@ -2,7 +2,7 @@ @using System.Collections.ObjectModel @using System.Web.Http.Description @using System.Threading -@using MP_API.Areas.HelpPage.ModelDescriptions +@using MP_MAG.Areas.HelpPage.ModelDescriptions @model IList @if (Model.Count > 0) diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/SimpleTypeModelDescription.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/SimpleTypeModelDescription.cshtml index 23942b9..6a84d6e 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/SimpleTypeModelDescription.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/SimpleTypeModelDescription.cshtml @@ -1,3 +1,3 @@ -@using MP_API.Areas.HelpPage.ModelDescriptions +@using MP_MAG.Areas.HelpPage.ModelDescriptions @model SimpleTypeModelDescription @Model.Documentation \ No newline at end of file diff --git a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/TextSample.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/TextSample.cshtml index 7b129b6..cdddf39 100644 --- a/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/TextSample.cshtml +++ b/MP-MAG/Areas/HelpPage/Views/Help/DisplayTemplates/TextSample.cshtml @@ -1,4 +1,4 @@ -@using MP_API.Areas.HelpPage +@using MP_MAG.Areas.HelpPage @model TextSample
diff --git a/MP-MAG/Areas/HelpPage/Views/Help/Index.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/Index.cshtml
index 262c60d..583f0f3 100644
--- a/MP-MAG/Areas/HelpPage/Views/Help/Index.cshtml
+++ b/MP-MAG/Areas/HelpPage/Views/Help/Index.cshtml
@@ -2,7 +2,7 @@
 @using System.Web.Http.Controllers
 @using System.Web.Http.Description
 @using System.Collections.ObjectModel
-@using MP_API.Areas.HelpPage.Models
+@using MP_MAG.Areas.HelpPage.Models
 @model Collection
 
 @{
diff --git a/MP-MAG/Areas/HelpPage/Views/Help/ResourceModel.cshtml b/MP-MAG/Areas/HelpPage/Views/Help/ResourceModel.cshtml
index 1f1b71f..7882ed3 100644
--- a/MP-MAG/Areas/HelpPage/Views/Help/ResourceModel.cshtml
+++ b/MP-MAG/Areas/HelpPage/Views/Help/ResourceModel.cshtml
@@ -1,5 +1,5 @@
 @using System.Web.Http
-@using MP_API.Areas.HelpPage.ModelDescriptions
+@using MP_MAG.Areas.HelpPage.ModelDescriptions
 @model ModelDescription
 
 
diff --git a/MP-MAG/Areas/HelpPage/XmlDocumentationProvider.cs b/MP-MAG/Areas/HelpPage/XmlDocumentationProvider.cs
index 0dfd5a0..0add1d7 100644
--- a/MP-MAG/Areas/HelpPage/XmlDocumentationProvider.cs
+++ b/MP-MAG/Areas/HelpPage/XmlDocumentationProvider.cs
@@ -5,9 +5,9 @@ using System.Reflection;
 using System.Web.Http.Controllers;
 using System.Web.Http.Description;
 using System.Xml.XPath;
-using MP_API.Areas.HelpPage.ModelDescriptions;
+using MP_MAG.Areas.HelpPage.ModelDescriptions;
 
-namespace MP_API.Areas.HelpPage
+namespace MP_MAG.Areas.HelpPage
 {
     /// 
     /// A custom  that reads the API documentation from an XML documentation file.
diff --git a/MP-MAG/Content/OpenSans.woff b/MP-MAG/Content/OpenSans.woff
new file mode 100644
index 0000000..55b25f8
Binary files /dev/null and b/MP-MAG/Content/OpenSans.woff differ
diff --git a/MP-MAG/Content/OpenSansCondensed.woff b/MP-MAG/Content/OpenSansCondensed.woff
new file mode 100644
index 0000000..aedbd93
Binary files /dev/null and b/MP-MAG/Content/OpenSansCondensed.woff differ
diff --git a/MP-MAG/Content/Roboto.woff2 b/MP-MAG/Content/Roboto.woff2
new file mode 100644
index 0000000..de83f9c
Binary files /dev/null and b/MP-MAG/Content/Roboto.woff2 differ
diff --git a/MP-MAG/Content/RobotoCondensed.woff2 b/MP-MAG/Content/RobotoCondensed.woff2
new file mode 100644
index 0000000..d7ab7af
Binary files /dev/null and b/MP-MAG/Content/RobotoCondensed.woff2 differ
diff --git a/MP-MAG/Content/Site.css b/MP-MAG/Content/Site.css
index 77047d3..1c9e597 100644
--- a/MP-MAG/Content/Site.css
+++ b/MP-MAG/Content/Site.css
@@ -1,17 +1,223 @@
-body {
-    padding-top: 0px;
-    padding-bottom: 0px;
+/* Move down content because we have a fixed navbar that is 50px tall */
+body {
+  font-family: 'Roboto Condensed', sans-serif;
+  /*font-family: 'Open Sans Condensed', sans-serif;*/
+  padding-top: 50px;
+  padding-bottom: 20px;
 }
-
-/* Set padding to keep content from hitting the edges */
+/* Wrapping element */
+/* Set some basic padding to keep content from hitting the edges */
 .body-content {
-    padding-left: 15px;
-    padding-right: 15px;
+  padding-left: 15px;
+  padding-right: 15px;
 }
-
-/* Set width on the form input elements since they're 100% wide by default */
-input,
-select,
-textarea {
-    max-width: 280px;
+.textCondens {
+  /*font-family: 'Roboto Condensed', sans-serif;*/
+  font-family: 'Open Sans Condensed', sans-serif;
 }
+.textNormal {
+  font-family: 'Roboto', sans-serif;
+  /*font-family: 'Open Sans', sans-serif;*/
+}
+/* Responsive: Portrait tablets and up */
+@media screen and (min-width: 768px) {
+  .jumbotron {
+    margin-top: 20px;
+  }
+  .body-content {
+    padding: 0;
+  }
+  body {
+    font-family: 'Roboto', sans-serif;
+  }
+}
+@media (max-width: 992px) {
+  .container {
+    width: 100%;
+  }
+}
+.border-thick {
+  border-width: 3px !important;
+}
+/* Animazione per richiamo attenzione*/
+.flashColor {
+  border: 3px solid blue;
+  /* Safari 4.0 - 8.0 */
+  -webkit-animation-name: blueFlash;
+  -webkit-animation-duration: 0.5s;
+  -webkit-animation-timing-function: linear;
+  -webkit-animation-delay: 0s;
+  -webkit-animation-iteration-count: infinite;
+  -webkit-animation-direction: alternate;
+  /* Standard syntax */
+  animation-name: blueFlash;
+  animation-duration: 0.5s;
+  animation-timing-function: linear;
+  animation-delay: 0s;
+  animation-iteration-count: infinite;
+  animation-direction: alternate;
+}
+/* Safari 4.0 - 8.0 */
+@-webkit-keyframes blueFlash {
+  0% {
+    border-color: #c4dbff;
+  }
+  25% {
+    border-color: #9dc4ff;
+  }
+  50% {
+    border-color: #5ca5ff;
+  }
+  75% {
+    border-color: #1b82ff;
+  }
+  100% {
+    border-color: #005ccc;
+  }
+}
+.bigText {
+  font-size: 1.3em;
+}
+.smallText {
+  font-size: 0.8em;
+}
+/* Override the default bootstrap behavior where horizontal description lists 
+   will truncate terms that are too long to fit in the left column 
+*/
+.dl-horizontal dt {
+  white-space: normal;
+}
+.deleted {
+  text-decoration: line-through;
+}
+.padZL {
+  padding-left: 0.2em;
+}
+.padZR {
+  padding-right: 0.2em;
+}
+.padZRL {
+  padding-left: 0.2em;
+  padding-right: 0.2em;
+}
+.colAlt {
+  color: #C93;
+}
+.fontBig {
+  font-size: 2em;
+}
+.tNote {
+  color: #8a8a8a;
+  font-style: italic;
+}
+.tNoWrap {
+  white-space: nowrap;
+}
+.navbar {
+  min-height: 0;
+  /*z-index: 0; // commentare quando in prod?!?*/
+  color: #696969;
+}
+.pagination {
+  margin: 5px 0;
+}
+.pageSelDD {
+  width: 6em;
+}
+.zeroWidth {
+  width: 0;
+}
+/*------------------------------------------------------------------
+[ Shortcuts / .shortcuts ]
+*/
+.shortcuts {
+  text-align: center;
+}
+.shortcuts .shortcut {
+  min-width: 9rem;
+  min-height: 5rem;
+  display: inline-block;
+  padding: 0.66666667rem 0;
+  margin: 0 2px 1em;
+  vertical-align: top;
+  text-decoration: none;
+  background: #F3F3F3;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
+  background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
+  background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
+  background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
+  border: 1px solid #ddd;
+  box-sizing: border-box;
+  border-radius: 0.5rem;
+}
+.shortcuts .shortcut-sm {
+  min-width: 4.5rem;
+  min-height: 3rem;
+  display: inline-block;
+  padding: 0.25rem 0;
+  margin: 0 2px 1em;
+  vertical-align: top;
+  text-decoration: none;
+  background: #F3F3F3;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
+  background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
+  background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
+  background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
+  border: 1px solid #ddd;
+  box-sizing: border-box;
+  border-radius: 0.5rem;
+}
+.shortcuts .shortcut .shortcut-icon {
+  width: 100%;
+  margin-top: 0;
+  margin-bottom: 0;
+  font-size: 2rem;
+  color: #333;
+}
+.shortcuts .shortcut-sm .shortcut-icon {
+  width: 100%;
+  margin-top: 0;
+  margin-bottom: 0;
+  font-size: 2rem;
+  color: #333;
+}
+.shortcuts .shortcut:hover {
+  background: #E8E8E8;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
+  background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
+  background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
+  background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
+}
+.shortcuts .shortcut-sm:hover {
+  background: #E8E8E8;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
+  background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
+  background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
+  background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
+}
+.shortcuts .shortcut:active {
+  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.shortcuts .shortcut-sm:active {
+  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.shortcuts .shortcut:hover .shortcut-icon {
+  color: #C93;
+}
+.shortcuts .shortcut-sm:hover .shortcut-icon {
+  color: #666;
+}
+.shortcuts .shortcut-label {
+  display: block;
+  margin-top: 0.75em;
+  font-weight: 400;
+  color: #666;
+}
\ No newline at end of file
diff --git a/MP-MAG/Content/Site.less b/MP-MAG/Content/Site.less
new file mode 100644
index 0000000..a5d5fb6
--- /dev/null
+++ b/MP-MAG/Content/Site.less
@@ -0,0 +1,269 @@
+/* Move down content because we have a fixed navbar that is 50px tall */
+body {
+  font-family: 'Roboto Condensed', sans-serif;
+  /*font-family: 'Open Sans Condensed', sans-serif;*/
+  padding-top: 50px;
+  padding-bottom: 20px;
+}
+
+/* Wrapping element */
+/* Set some basic padding to keep content from hitting the edges */
+.body-content {
+  padding-left: 15px;
+  padding-right: 15px;
+}
+
+
+.textCondens {
+  /*font-family: 'Roboto Condensed', sans-serif;*/
+  font-family: 'Open Sans Condensed', sans-serif;
+}
+
+.textNormal {
+  font-family: 'Roboto', sans-serif;
+  /*font-family: 'Open Sans', sans-serif;*/
+}
+
+/* Responsive: Portrait tablets and up */
+@media screen and (min-width: 768px) {
+  .jumbotron {
+    margin-top: 20px;
+  }
+
+  .body-content {
+    padding: 0;
+  }
+
+  body {
+    font-family: 'Roboto', sans-serif;
+  }
+}
+
+@media (max-width: 992px) {
+  .container {
+    width: 100%;
+  }
+}
+
+@borderThick: 3px;
+
+.border-thick {
+  border-width: @borderThick !important;
+}
+/* Animazione per richiamo attenzione*/
+.flashColor {
+  border: @borderThick solid blue;
+  /* Safari 4.0 - 8.0 */
+  -webkit-animation-name: blueFlash;
+  -webkit-animation-duration: 0.5s;
+  -webkit-animation-timing-function: linear;
+  -webkit-animation-delay: 0s;
+  -webkit-animation-iteration-count: infinite;
+  -webkit-animation-direction: alternate;
+  /* Standard syntax */
+  animation-name: blueFlash;
+  animation-duration: 0.5s;
+  animation-timing-function: linear;
+  animation-delay: 0s;
+  animation-iteration-count: infinite;
+  animation-direction: alternate;
+}
+
+/* Safari 4.0 - 8.0 */
+@-webkit-keyframes blueFlash {
+  0% {
+    border-color: #c4dbff;
+  }
+
+  25% {
+    border-color: #9dc4ff;
+  }
+
+  50% {
+    border-color: #5ca5ff;
+  }
+
+  75% {
+    border-color: #1b82ff;
+  }
+
+  100% {
+    border-color: #005ccc;
+  }
+}
+
+.bigText {
+  font-size: 1.3em;
+}
+
+.smallText {
+  font-size: 0.8em;
+}
+
+/* Override the default bootstrap behavior where horizontal description lists 
+   will truncate terms that are too long to fit in the left column 
+*/
+.dl-horizontal dt {
+  white-space: normal;
+}
+
+.deleted {
+  text-decoration: line-through;
+}
+
+.padZL {
+  padding-left: 0.2em;
+}
+
+.padZR {
+  padding-right: 0.2em;
+}
+
+.padZRL {
+  .padZL;
+  .padZR;
+}
+
+.colAlt {
+  color: #C93;
+}
+
+.fontBig {
+  font-size: 2em;
+}
+
+.tNote {
+  color: #8a8a8a;
+  font-style: italic;
+}
+
+.tNoWrap {
+  white-space: nowrap;
+}
+
+.navbar {
+  min-height: 0;
+  /*z-index: 0; // commentare quando in prod?!?*/
+  color: #696969;
+}
+
+.pagination {
+  margin: 5px 0;
+}
+
+.pageSelDD {
+  width: 6em;
+}
+
+.zeroWidth {
+  width: 0;
+}
+
+/*------------------------------------------------------------------
+[ Shortcuts / .shortcuts ]
+*/
+
+@blSCut: 1rem;
+
+.shortcuts {
+  text-align: center;
+}
+
+.shortcuts .shortcut {
+  min-width: @blSCut * 9;
+  min-height: @blSCut * 5;
+  display: inline-block;
+  padding: @blSCut*2/3 0;
+  margin: 0 2px 1em;
+  vertical-align: top;
+  text-decoration: none;
+  background: #F3F3F3;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
+  background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
+  background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
+  background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
+  border: 1px solid #ddd;
+  box-sizing: border-box;
+  border-radius: @blSCut/2;
+}
+
+.shortcuts .shortcut-sm {
+  min-width: @blSCut * 4.5;
+  min-height: @blSCut * 3;
+  display: inline-block;
+  padding: @blSCut/4 0;
+  margin: 0 2px 1em;
+  vertical-align: top;
+  text-decoration: none;
+  background: #F3F3F3;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
+  background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
+  background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
+  background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
+  border: 1px solid #ddd;
+  box-sizing: border-box;
+  border-radius: @blSCut/2;
+}
+
+.shortcuts .shortcut .shortcut-icon {
+  width: 100%;
+  margin-top: 0;
+  margin-bottom: 0;
+  font-size: @blSCut*2;
+  color: #333;
+}
+
+.shortcuts .shortcut-sm .shortcut-icon {
+  width: 100%;
+  margin-top: 0;
+  margin-bottom: 0;
+  font-size: @blSCut*2;
+  color: #333;
+}
+
+.shortcuts .shortcut:hover {
+  background: #E8E8E8;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
+  background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
+  background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
+  background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
+}
+
+.shortcuts .shortcut-sm:hover {
+  background: #E8E8E8;
+  background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
+  background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
+  background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
+  background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
+}
+
+.shortcuts .shortcut:active {
+  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+
+.shortcuts .shortcut-sm:active {
+  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+
+.shortcuts .shortcut:hover .shortcut-icon {
+  color: #C93;
+}
+
+.shortcuts .shortcut-sm:hover .shortcut-icon {
+  color: #666;
+}
+
+.shortcuts .shortcut-label {
+  display: block;
+  margin-top: .75em;
+  font-weight: 400;
+  color: #666;
+}
diff --git a/MP-MAG/Content/Site.min.css b/MP-MAG/Content/Site.min.css
new file mode 100644
index 0000000..7ac06e6
--- /dev/null
+++ b/MP-MAG/Content/Site.min.css
@@ -0,0 +1 @@
+body{font-family:'Roboto Condensed',sans-serif;padding-top:50px;padding-bottom:20px;}.body-content{padding-left:15px;padding-right:15px;}.textCondens{font-family:'Open Sans Condensed',sans-serif;}.textNormal{font-family:'Roboto',sans-serif;}@media screen and (min-width:768px){.jumbotron{margin-top:20px;}.body-content{padding:0;}body{font-family:'Roboto',sans-serif;}}@media(max-width:992px){.container{width:100%;}}.border-thick{border-width:3px !important;}.flashColor{border:3px solid #00f;-webkit-animation-name:blueFlash;-webkit-animation-duration:.5s;-webkit-animation-timing-function:linear;-webkit-animation-delay:0s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-name:blueFlash;animation-duration:.5s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-direction:alternate;}@-webkit-keyframes blueFlash{0%{border-color:#c4dbff;}25%{border-color:#9dc4ff;}50%{border-color:#5ca5ff;}75%{border-color:#1b82ff;}100%{border-color:#005ccc;}}.bigText{font-size:1.3em;}.smallText{font-size:.8em;}.dl-horizontal dt{white-space:normal;}.deleted{text-decoration:line-through;}.padZL{padding-left:.2em;}.padZR{padding-right:.2em;}.padZRL{padding-left:.2em;padding-right:.2em;}.colAlt{color:#c93;}.fontBig{font-size:2em;}.tNote{color:#8a8a8a;font-style:italic;}.tNoWrap{white-space:nowrap;}.navbar{min-height:0;color:#696969;}.pagination{margin:5px 0;}.pageSelDD{width:6em;}.zeroWidth{width:0;}.shortcuts{text-align:center;}.shortcuts .shortcut{min-width:9rem;min-height:5rem;display:inline-block;padding:.66666667rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:.25rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut-sm:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}
\ No newline at end of file
diff --git a/MP-MAG/Content/font-awesome.css b/MP-MAG/Content/font-awesome.css
new file mode 100644
index 0000000..ee906a8
--- /dev/null
+++ b/MP-MAG/Content/font-awesome.css
@@ -0,0 +1,2337 @@
+/*!
+ *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+  font-family: 'FontAwesome';
+  src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');
+  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+.fa {
+  display: inline-block;
+  font: normal normal normal 14px/1 FontAwesome;
+  font-size: inherit;
+  text-rendering: auto;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+  font-size: 1.33333333em;
+  line-height: 0.75em;
+  vertical-align: -15%;
+}
+.fa-2x {
+  font-size: 2em;
+}
+.fa-3x {
+  font-size: 3em;
+}
+.fa-4x {
+  font-size: 4em;
+}
+.fa-5x {
+  font-size: 5em;
+}
+.fa-fw {
+  width: 1.28571429em;
+  text-align: center;
+}
+.fa-ul {
+  padding-left: 0;
+  margin-left: 2.14285714em;
+  list-style-type: none;
+}
+.fa-ul > li {
+  position: relative;
+}
+.fa-li {
+  position: absolute;
+  left: -2.14285714em;
+  width: 2.14285714em;
+  top: 0.14285714em;
+  text-align: center;
+}
+.fa-li.fa-lg {
+  left: -1.85714286em;
+}
+.fa-border {
+  padding: .2em .25em .15em;
+  border: solid 0.08em #eeeeee;
+  border-radius: .1em;
+}
+.fa-pull-left {
+  float: left;
+}
+.fa-pull-right {
+  float: right;
+}
+.fa.fa-pull-left {
+  margin-right: .3em;
+}
+.fa.fa-pull-right {
+  margin-left: .3em;
+}
+/* Deprecated as of 4.4.0 */
+.pull-right {
+  float: right;
+}
+.pull-left {
+  float: left;
+}
+.fa.pull-left {
+  margin-right: .3em;
+}
+.fa.pull-right {
+  margin-left: .3em;
+}
+.fa-spin {
+  -webkit-animation: fa-spin 2s infinite linear;
+  animation: fa-spin 2s infinite linear;
+}
+.fa-pulse {
+  -webkit-animation: fa-spin 1s infinite steps(8);
+  animation: fa-spin 1s infinite steps(8);
+}
+@-webkit-keyframes fa-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+@keyframes fa-spin {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(359deg);
+    transform: rotate(359deg);
+  }
+}
+.fa-rotate-90 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+  -webkit-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.fa-rotate-180 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+  -webkit-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.fa-rotate-270 {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+  -webkit-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+  -webkit-transform: scale(-1, 1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+  -webkit-transform: scale(1, -1);
+  -ms-transform: scale(1, -1);
+  transform: scale(1, -1);
+}
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+  filter: none;
+}
+.fa-stack {
+  position: relative;
+  display: inline-block;
+  width: 2em;
+  height: 2em;
+  line-height: 2em;
+  vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+  position: absolute;
+  left: 0;
+  width: 100%;
+  text-align: center;
+}
+.fa-stack-1x {
+  line-height: inherit;
+}
+.fa-stack-2x {
+  font-size: 2em;
+}
+.fa-inverse {
+  color: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+   readers do not read off random characters that represent icons */
+.fa-glass:before {
+  content: "\f000";
+}
+.fa-music:before {
+  content: "\f001";
+}
+.fa-search:before {
+  content: "\f002";
+}
+.fa-envelope-o:before {
+  content: "\f003";
+}
+.fa-heart:before {
+  content: "\f004";
+}
+.fa-star:before {
+  content: "\f005";
+}
+.fa-star-o:before {
+  content: "\f006";
+}
+.fa-user:before {
+  content: "\f007";
+}
+.fa-film:before {
+  content: "\f008";
+}
+.fa-th-large:before {
+  content: "\f009";
+}
+.fa-th:before {
+  content: "\f00a";
+}
+.fa-th-list:before {
+  content: "\f00b";
+}
+.fa-check:before {
+  content: "\f00c";
+}
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+  content: "\f00d";
+}
+.fa-search-plus:before {
+  content: "\f00e";
+}
+.fa-search-minus:before {
+  content: "\f010";
+}
+.fa-power-off:before {
+  content: "\f011";
+}
+.fa-signal:before {
+  content: "\f012";
+}
+.fa-gear:before,
+.fa-cog:before {
+  content: "\f013";
+}
+.fa-trash-o:before {
+  content: "\f014";
+}
+.fa-home:before {
+  content: "\f015";
+}
+.fa-file-o:before {
+  content: "\f016";
+}
+.fa-clock-o:before {
+  content: "\f017";
+}
+.fa-road:before {
+  content: "\f018";
+}
+.fa-download:before {
+  content: "\f019";
+}
+.fa-arrow-circle-o-down:before {
+  content: "\f01a";
+}
+.fa-arrow-circle-o-up:before {
+  content: "\f01b";
+}
+.fa-inbox:before {
+  content: "\f01c";
+}
+.fa-play-circle-o:before {
+  content: "\f01d";
+}
+.fa-rotate-right:before,
+.fa-repeat:before {
+  content: "\f01e";
+}
+.fa-refresh:before {
+  content: "\f021";
+}
+.fa-list-alt:before {
+  content: "\f022";
+}
+.fa-lock:before {
+  content: "\f023";
+}
+.fa-flag:before {
+  content: "\f024";
+}
+.fa-headphones:before {
+  content: "\f025";
+}
+.fa-volume-off:before {
+  content: "\f026";
+}
+.fa-volume-down:before {
+  content: "\f027";
+}
+.fa-volume-up:before {
+  content: "\f028";
+}
+.fa-qrcode:before {
+  content: "\f029";
+}
+.fa-barcode:before {
+  content: "\f02a";
+}
+.fa-tag:before {
+  content: "\f02b";
+}
+.fa-tags:before {
+  content: "\f02c";
+}
+.fa-book:before {
+  content: "\f02d";
+}
+.fa-bookmark:before {
+  content: "\f02e";
+}
+.fa-print:before {
+  content: "\f02f";
+}
+.fa-camera:before {
+  content: "\f030";
+}
+.fa-font:before {
+  content: "\f031";
+}
+.fa-bold:before {
+  content: "\f032";
+}
+.fa-italic:before {
+  content: "\f033";
+}
+.fa-text-height:before {
+  content: "\f034";
+}
+.fa-text-width:before {
+  content: "\f035";
+}
+.fa-align-left:before {
+  content: "\f036";
+}
+.fa-align-center:before {
+  content: "\f037";
+}
+.fa-align-right:before {
+  content: "\f038";
+}
+.fa-align-justify:before {
+  content: "\f039";
+}
+.fa-list:before {
+  content: "\f03a";
+}
+.fa-dedent:before,
+.fa-outdent:before {
+  content: "\f03b";
+}
+.fa-indent:before {
+  content: "\f03c";
+}
+.fa-video-camera:before {
+  content: "\f03d";
+}
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+  content: "\f03e";
+}
+.fa-pencil:before {
+  content: "\f040";
+}
+.fa-map-marker:before {
+  content: "\f041";
+}
+.fa-adjust:before {
+  content: "\f042";
+}
+.fa-tint:before {
+  content: "\f043";
+}
+.fa-edit:before,
+.fa-pencil-square-o:before {
+  content: "\f044";
+}
+.fa-share-square-o:before {
+  content: "\f045";
+}
+.fa-check-square-o:before {
+  content: "\f046";
+}
+.fa-arrows:before {
+  content: "\f047";
+}
+.fa-step-backward:before {
+  content: "\f048";
+}
+.fa-fast-backward:before {
+  content: "\f049";
+}
+.fa-backward:before {
+  content: "\f04a";
+}
+.fa-play:before {
+  content: "\f04b";
+}
+.fa-pause:before {
+  content: "\f04c";
+}
+.fa-stop:before {
+  content: "\f04d";
+}
+.fa-forward:before {
+  content: "\f04e";
+}
+.fa-fast-forward:before {
+  content: "\f050";
+}
+.fa-step-forward:before {
+  content: "\f051";
+}
+.fa-eject:before {
+  content: "\f052";
+}
+.fa-chevron-left:before {
+  content: "\f053";
+}
+.fa-chevron-right:before {
+  content: "\f054";
+}
+.fa-plus-circle:before {
+  content: "\f055";
+}
+.fa-minus-circle:before {
+  content: "\f056";
+}
+.fa-times-circle:before {
+  content: "\f057";
+}
+.fa-check-circle:before {
+  content: "\f058";
+}
+.fa-question-circle:before {
+  content: "\f059";
+}
+.fa-info-circle:before {
+  content: "\f05a";
+}
+.fa-crosshairs:before {
+  content: "\f05b";
+}
+.fa-times-circle-o:before {
+  content: "\f05c";
+}
+.fa-check-circle-o:before {
+  content: "\f05d";
+}
+.fa-ban:before {
+  content: "\f05e";
+}
+.fa-arrow-left:before {
+  content: "\f060";
+}
+.fa-arrow-right:before {
+  content: "\f061";
+}
+.fa-arrow-up:before {
+  content: "\f062";
+}
+.fa-arrow-down:before {
+  content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before {
+  content: "\f064";
+}
+.fa-expand:before {
+  content: "\f065";
+}
+.fa-compress:before {
+  content: "\f066";
+}
+.fa-plus:before {
+  content: "\f067";
+}
+.fa-minus:before {
+  content: "\f068";
+}
+.fa-asterisk:before {
+  content: "\f069";
+}
+.fa-exclamation-circle:before {
+  content: "\f06a";
+}
+.fa-gift:before {
+  content: "\f06b";
+}
+.fa-leaf:before {
+  content: "\f06c";
+}
+.fa-fire:before {
+  content: "\f06d";
+}
+.fa-eye:before {
+  content: "\f06e";
+}
+.fa-eye-slash:before {
+  content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+  content: "\f071";
+}
+.fa-plane:before {
+  content: "\f072";
+}
+.fa-calendar:before {
+  content: "\f073";
+}
+.fa-random:before {
+  content: "\f074";
+}
+.fa-comment:before {
+  content: "\f075";
+}
+.fa-magnet:before {
+  content: "\f076";
+}
+.fa-chevron-up:before {
+  content: "\f077";
+}
+.fa-chevron-down:before {
+  content: "\f078";
+}
+.fa-retweet:before {
+  content: "\f079";
+}
+.fa-shopping-cart:before {
+  content: "\f07a";
+}
+.fa-folder:before {
+  content: "\f07b";
+}
+.fa-folder-open:before {
+  content: "\f07c";
+}
+.fa-arrows-v:before {
+  content: "\f07d";
+}
+.fa-arrows-h:before {
+  content: "\f07e";
+}
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+  content: "\f080";
+}
+.fa-twitter-square:before {
+  content: "\f081";
+}
+.fa-facebook-square:before {
+  content: "\f082";
+}
+.fa-camera-retro:before {
+  content: "\f083";
+}
+.fa-key:before {
+  content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before {
+  content: "\f085";
+}
+.fa-comments:before {
+  content: "\f086";
+}
+.fa-thumbs-o-up:before {
+  content: "\f087";
+}
+.fa-thumbs-o-down:before {
+  content: "\f088";
+}
+.fa-star-half:before {
+  content: "\f089";
+}
+.fa-heart-o:before {
+  content: "\f08a";
+}
+.fa-sign-out:before {
+  content: "\f08b";
+}
+.fa-linkedin-square:before {
+  content: "\f08c";
+}
+.fa-thumb-tack:before {
+  content: "\f08d";
+}
+.fa-external-link:before {
+  content: "\f08e";
+}
+.fa-sign-in:before {
+  content: "\f090";
+}
+.fa-trophy:before {
+  content: "\f091";
+}
+.fa-github-square:before {
+  content: "\f092";
+}
+.fa-upload:before {
+  content: "\f093";
+}
+.fa-lemon-o:before {
+  content: "\f094";
+}
+.fa-phone:before {
+  content: "\f095";
+}
+.fa-square-o:before {
+  content: "\f096";
+}
+.fa-bookmark-o:before {
+  content: "\f097";
+}
+.fa-phone-square:before {
+  content: "\f098";
+}
+.fa-twitter:before {
+  content: "\f099";
+}
+.fa-facebook-f:before,
+.fa-facebook:before {
+  content: "\f09a";
+}
+.fa-github:before {
+  content: "\f09b";
+}
+.fa-unlock:before {
+  content: "\f09c";
+}
+.fa-credit-card:before {
+  content: "\f09d";
+}
+.fa-feed:before,
+.fa-rss:before {
+  content: "\f09e";
+}
+.fa-hdd-o:before {
+  content: "\f0a0";
+}
+.fa-bullhorn:before {
+  content: "\f0a1";
+}
+.fa-bell:before {
+  content: "\f0f3";
+}
+.fa-certificate:before {
+  content: "\f0a3";
+}
+.fa-hand-o-right:before {
+  content: "\f0a4";
+}
+.fa-hand-o-left:before {
+  content: "\f0a5";
+}
+.fa-hand-o-up:before {
+  content: "\f0a6";
+}
+.fa-hand-o-down:before {
+  content: "\f0a7";
+}
+.fa-arrow-circle-left:before {
+  content: "\f0a8";
+}
+.fa-arrow-circle-right:before {
+  content: "\f0a9";
+}
+.fa-arrow-circle-up:before {
+  content: "\f0aa";
+}
+.fa-arrow-circle-down:before {
+  content: "\f0ab";
+}
+.fa-globe:before {
+  content: "\f0ac";
+}
+.fa-wrench:before {
+  content: "\f0ad";
+}
+.fa-tasks:before {
+  content: "\f0ae";
+}
+.fa-filter:before {
+  content: "\f0b0";
+}
+.fa-briefcase:before {
+  content: "\f0b1";
+}
+.fa-arrows-alt:before {
+  content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before {
+  content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before {
+  content: "\f0c1";
+}
+.fa-cloud:before {
+  content: "\f0c2";
+}
+.fa-flask:before {
+  content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before {
+  content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before {
+  content: "\f0c5";
+}
+.fa-paperclip:before {
+  content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before {
+  content: "\f0c7";
+}
+.fa-square:before {
+  content: "\f0c8";
+}
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+  content: "\f0c9";
+}
+.fa-list-ul:before {
+  content: "\f0ca";
+}
+.fa-list-ol:before {
+  content: "\f0cb";
+}
+.fa-strikethrough:before {
+  content: "\f0cc";
+}
+.fa-underline:before {
+  content: "\f0cd";
+}
+.fa-table:before {
+  content: "\f0ce";
+}
+.fa-magic:before {
+  content: "\f0d0";
+}
+.fa-truck:before {
+  content: "\f0d1";
+}
+.fa-pinterest:before {
+  content: "\f0d2";
+}
+.fa-pinterest-square:before {
+  content: "\f0d3";
+}
+.fa-google-plus-square:before {
+  content: "\f0d4";
+}
+.fa-google-plus:before {
+  content: "\f0d5";
+}
+.fa-money:before {
+  content: "\f0d6";
+}
+.fa-caret-down:before {
+  content: "\f0d7";
+}
+.fa-caret-up:before {
+  content: "\f0d8";
+}
+.fa-caret-left:before {
+  content: "\f0d9";
+}
+.fa-caret-right:before {
+  content: "\f0da";
+}
+.fa-columns:before {
+  content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before {
+  content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-desc:before {
+  content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-asc:before {
+  content: "\f0de";
+}
+.fa-envelope:before {
+  content: "\f0e0";
+}
+.fa-linkedin:before {
+  content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before {
+  content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before {
+  content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before {
+  content: "\f0e4";
+}
+.fa-comment-o:before {
+  content: "\f0e5";
+}
+.fa-comments-o:before {
+  content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before {
+  content: "\f0e7";
+}
+.fa-sitemap:before {
+  content: "\f0e8";
+}
+.fa-umbrella:before {
+  content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before {
+  content: "\f0ea";
+}
+.fa-lightbulb-o:before {
+  content: "\f0eb";
+}
+.fa-exchange:before {
+  content: "\f0ec";
+}
+.fa-cloud-download:before {
+  content: "\f0ed";
+}
+.fa-cloud-upload:before {
+  content: "\f0ee";
+}
+.fa-user-md:before {
+  content: "\f0f0";
+}
+.fa-stethoscope:before {
+  content: "\f0f1";
+}
+.fa-suitcase:before {
+  content: "\f0f2";
+}
+.fa-bell-o:before {
+  content: "\f0a2";
+}
+.fa-coffee:before {
+  content: "\f0f4";
+}
+.fa-cutlery:before {
+  content: "\f0f5";
+}
+.fa-file-text-o:before {
+  content: "\f0f6";
+}
+.fa-building-o:before {
+  content: "\f0f7";
+}
+.fa-hospital-o:before {
+  content: "\f0f8";
+}
+.fa-ambulance:before {
+  content: "\f0f9";
+}
+.fa-medkit:before {
+  content: "\f0fa";
+}
+.fa-fighter-jet:before {
+  content: "\f0fb";
+}
+.fa-beer:before {
+  content: "\f0fc";
+}
+.fa-h-square:before {
+  content: "\f0fd";
+}
+.fa-plus-square:before {
+  content: "\f0fe";
+}
+.fa-angle-double-left:before {
+  content: "\f100";
+}
+.fa-angle-double-right:before {
+  content: "\f101";
+}
+.fa-angle-double-up:before {
+  content: "\f102";
+}
+.fa-angle-double-down:before {
+  content: "\f103";
+}
+.fa-angle-left:before {
+  content: "\f104";
+}
+.fa-angle-right:before {
+  content: "\f105";
+}
+.fa-angle-up:before {
+  content: "\f106";
+}
+.fa-angle-down:before {
+  content: "\f107";
+}
+.fa-desktop:before {
+  content: "\f108";
+}
+.fa-laptop:before {
+  content: "\f109";
+}
+.fa-tablet:before {
+  content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before {
+  content: "\f10b";
+}
+.fa-circle-o:before {
+  content: "\f10c";
+}
+.fa-quote-left:before {
+  content: "\f10d";
+}
+.fa-quote-right:before {
+  content: "\f10e";
+}
+.fa-spinner:before {
+  content: "\f110";
+}
+.fa-circle:before {
+  content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+  content: "\f112";
+}
+.fa-github-alt:before {
+  content: "\f113";
+}
+.fa-folder-o:before {
+  content: "\f114";
+}
+.fa-folder-open-o:before {
+  content: "\f115";
+}
+.fa-smile-o:before {
+  content: "\f118";
+}
+.fa-frown-o:before {
+  content: "\f119";
+}
+.fa-meh-o:before {
+  content: "\f11a";
+}
+.fa-gamepad:before {
+  content: "\f11b";
+}
+.fa-keyboard-o:before {
+  content: "\f11c";
+}
+.fa-flag-o:before {
+  content: "\f11d";
+}
+.fa-flag-checkered:before {
+  content: "\f11e";
+}
+.fa-terminal:before {
+  content: "\f120";
+}
+.fa-code:before {
+  content: "\f121";
+}
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+  content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+  content: "\f123";
+}
+.fa-location-arrow:before {
+  content: "\f124";
+}
+.fa-crop:before {
+  content: "\f125";
+}
+.fa-code-fork:before {
+  content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before {
+  content: "\f127";
+}
+.fa-question:before {
+  content: "\f128";
+}
+.fa-info:before {
+  content: "\f129";
+}
+.fa-exclamation:before {
+  content: "\f12a";
+}
+.fa-superscript:before {
+  content: "\f12b";
+}
+.fa-subscript:before {
+  content: "\f12c";
+}
+.fa-eraser:before {
+  content: "\f12d";
+}
+.fa-puzzle-piece:before {
+  content: "\f12e";
+}
+.fa-microphone:before {
+  content: "\f130";
+}
+.fa-microphone-slash:before {
+  content: "\f131";
+}
+.fa-shield:before {
+  content: "\f132";
+}
+.fa-calendar-o:before {
+  content: "\f133";
+}
+.fa-fire-extinguisher:before {
+  content: "\f134";
+}
+.fa-rocket:before {
+  content: "\f135";
+}
+.fa-maxcdn:before {
+  content: "\f136";
+}
+.fa-chevron-circle-left:before {
+  content: "\f137";
+}
+.fa-chevron-circle-right:before {
+  content: "\f138";
+}
+.fa-chevron-circle-up:before {
+  content: "\f139";
+}
+.fa-chevron-circle-down:before {
+  content: "\f13a";
+}
+.fa-html5:before {
+  content: "\f13b";
+}
+.fa-css3:before {
+  content: "\f13c";
+}
+.fa-anchor:before {
+  content: "\f13d";
+}
+.fa-unlock-alt:before {
+  content: "\f13e";
+}
+.fa-bullseye:before {
+  content: "\f140";
+}
+.fa-ellipsis-h:before {
+  content: "\f141";
+}
+.fa-ellipsis-v:before {
+  content: "\f142";
+}
+.fa-rss-square:before {
+  content: "\f143";
+}
+.fa-play-circle:before {
+  content: "\f144";
+}
+.fa-ticket:before {
+  content: "\f145";
+}
+.fa-minus-square:before {
+  content: "\f146";
+}
+.fa-minus-square-o:before {
+  content: "\f147";
+}
+.fa-level-up:before {
+  content: "\f148";
+}
+.fa-level-down:before {
+  content: "\f149";
+}
+.fa-check-square:before {
+  content: "\f14a";
+}
+.fa-pencil-square:before {
+  content: "\f14b";
+}
+.fa-external-link-square:before {
+  content: "\f14c";
+}
+.fa-share-square:before {
+  content: "\f14d";
+}
+.fa-compass:before {
+  content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+  content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+  content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+  content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before {
+  content: "\f153";
+}
+.fa-gbp:before {
+  content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before {
+  content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before {
+  content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+  content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+  content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before {
+  content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before {
+  content: "\f15a";
+}
+.fa-file:before {
+  content: "\f15b";
+}
+.fa-file-text:before {
+  content: "\f15c";
+}
+.fa-sort-alpha-asc:before {
+  content: "\f15d";
+}
+.fa-sort-alpha-desc:before {
+  content: "\f15e";
+}
+.fa-sort-amount-asc:before {
+  content: "\f160";
+}
+.fa-sort-amount-desc:before {
+  content: "\f161";
+}
+.fa-sort-numeric-asc:before {
+  content: "\f162";
+}
+.fa-sort-numeric-desc:before {
+  content: "\f163";
+}
+.fa-thumbs-up:before {
+  content: "\f164";
+}
+.fa-thumbs-down:before {
+  content: "\f165";
+}
+.fa-youtube-square:before {
+  content: "\f166";
+}
+.fa-youtube:before {
+  content: "\f167";
+}
+.fa-xing:before {
+  content: "\f168";
+}
+.fa-xing-square:before {
+  content: "\f169";
+}
+.fa-youtube-play:before {
+  content: "\f16a";
+}
+.fa-dropbox:before {
+  content: "\f16b";
+}
+.fa-stack-overflow:before {
+  content: "\f16c";
+}
+.fa-instagram:before {
+  content: "\f16d";
+}
+.fa-flickr:before {
+  content: "\f16e";
+}
+.fa-adn:before {
+  content: "\f170";
+}
+.fa-bitbucket:before {
+  content: "\f171";
+}
+.fa-bitbucket-square:before {
+  content: "\f172";
+}
+.fa-tumblr:before {
+  content: "\f173";
+}
+.fa-tumblr-square:before {
+  content: "\f174";
+}
+.fa-long-arrow-down:before {
+  content: "\f175";
+}
+.fa-long-arrow-up:before {
+  content: "\f176";
+}
+.fa-long-arrow-left:before {
+  content: "\f177";
+}
+.fa-long-arrow-right:before {
+  content: "\f178";
+}
+.fa-apple:before {
+  content: "\f179";
+}
+.fa-windows:before {
+  content: "\f17a";
+}
+.fa-android:before {
+  content: "\f17b";
+}
+.fa-linux:before {
+  content: "\f17c";
+}
+.fa-dribbble:before {
+  content: "\f17d";
+}
+.fa-skype:before {
+  content: "\f17e";
+}
+.fa-foursquare:before {
+  content: "\f180";
+}
+.fa-trello:before {
+  content: "\f181";
+}
+.fa-female:before {
+  content: "\f182";
+}
+.fa-male:before {
+  content: "\f183";
+}
+.fa-gittip:before,
+.fa-gratipay:before {
+  content: "\f184";
+}
+.fa-sun-o:before {
+  content: "\f185";
+}
+.fa-moon-o:before {
+  content: "\f186";
+}
+.fa-archive:before {
+  content: "\f187";
+}
+.fa-bug:before {
+  content: "\f188";
+}
+.fa-vk:before {
+  content: "\f189";
+}
+.fa-weibo:before {
+  content: "\f18a";
+}
+.fa-renren:before {
+  content: "\f18b";
+}
+.fa-pagelines:before {
+  content: "\f18c";
+}
+.fa-stack-exchange:before {
+  content: "\f18d";
+}
+.fa-arrow-circle-o-right:before {
+  content: "\f18e";
+}
+.fa-arrow-circle-o-left:before {
+  content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+  content: "\f191";
+}
+.fa-dot-circle-o:before {
+  content: "\f192";
+}
+.fa-wheelchair:before {
+  content: "\f193";
+}
+.fa-vimeo-square:before {
+  content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before {
+  content: "\f195";
+}
+.fa-plus-square-o:before {
+  content: "\f196";
+}
+.fa-space-shuttle:before {
+  content: "\f197";
+}
+.fa-slack:before {
+  content: "\f198";
+}
+.fa-envelope-square:before {
+  content: "\f199";
+}
+.fa-wordpress:before {
+  content: "\f19a";
+}
+.fa-openid:before {
+  content: "\f19b";
+}
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+  content: "\f19c";
+}
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+  content: "\f19d";
+}
+.fa-yahoo:before {
+  content: "\f19e";
+}
+.fa-google:before {
+  content: "\f1a0";
+}
+.fa-reddit:before {
+  content: "\f1a1";
+}
+.fa-reddit-square:before {
+  content: "\f1a2";
+}
+.fa-stumbleupon-circle:before {
+  content: "\f1a3";
+}
+.fa-stumbleupon:before {
+  content: "\f1a4";
+}
+.fa-delicious:before {
+  content: "\f1a5";
+}
+.fa-digg:before {
+  content: "\f1a6";
+}
+.fa-pied-piper-pp:before {
+  content: "\f1a7";
+}
+.fa-pied-piper-alt:before {
+  content: "\f1a8";
+}
+.fa-drupal:before {
+  content: "\f1a9";
+}
+.fa-joomla:before {
+  content: "\f1aa";
+}
+.fa-language:before {
+  content: "\f1ab";
+}
+.fa-fax:before {
+  content: "\f1ac";
+}
+.fa-building:before {
+  content: "\f1ad";
+}
+.fa-child:before {
+  content: "\f1ae";
+}
+.fa-paw:before {
+  content: "\f1b0";
+}
+.fa-spoon:before {
+  content: "\f1b1";
+}
+.fa-cube:before {
+  content: "\f1b2";
+}
+.fa-cubes:before {
+  content: "\f1b3";
+}
+.fa-behance:before {
+  content: "\f1b4";
+}
+.fa-behance-square:before {
+  content: "\f1b5";
+}
+.fa-steam:before {
+  content: "\f1b6";
+}
+.fa-steam-square:before {
+  content: "\f1b7";
+}
+.fa-recycle:before {
+  content: "\f1b8";
+}
+.fa-automobile:before,
+.fa-car:before {
+  content: "\f1b9";
+}
+.fa-cab:before,
+.fa-taxi:before {
+  content: "\f1ba";
+}
+.fa-tree:before {
+  content: "\f1bb";
+}
+.fa-spotify:before {
+  content: "\f1bc";
+}
+.fa-deviantart:before {
+  content: "\f1bd";
+}
+.fa-soundcloud:before {
+  content: "\f1be";
+}
+.fa-database:before {
+  content: "\f1c0";
+}
+.fa-file-pdf-o:before {
+  content: "\f1c1";
+}
+.fa-file-word-o:before {
+  content: "\f1c2";
+}
+.fa-file-excel-o:before {
+  content: "\f1c3";
+}
+.fa-file-powerpoint-o:before {
+  content: "\f1c4";
+}
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+  content: "\f1c5";
+}
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+  content: "\f1c6";
+}
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+  content: "\f1c7";
+}
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+  content: "\f1c8";
+}
+.fa-file-code-o:before {
+  content: "\f1c9";
+}
+.fa-vine:before {
+  content: "\f1ca";
+}
+.fa-codepen:before {
+  content: "\f1cb";
+}
+.fa-jsfiddle:before {
+  content: "\f1cc";
+}
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+  content: "\f1cd";
+}
+.fa-circle-o-notch:before {
+  content: "\f1ce";
+}
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before {
+  content: "\f1d0";
+}
+.fa-ge:before,
+.fa-empire:before {
+  content: "\f1d1";
+}
+.fa-git-square:before {
+  content: "\f1d2";
+}
+.fa-git:before {
+  content: "\f1d3";
+}
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before {
+  content: "\f1d4";
+}
+.fa-tencent-weibo:before {
+  content: "\f1d5";
+}
+.fa-qq:before {
+  content: "\f1d6";
+}
+.fa-wechat:before,
+.fa-weixin:before {
+  content: "\f1d7";
+}
+.fa-send:before,
+.fa-paper-plane:before {
+  content: "\f1d8";
+}
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+  content: "\f1d9";
+}
+.fa-history:before {
+  content: "\f1da";
+}
+.fa-circle-thin:before {
+  content: "\f1db";
+}
+.fa-header:before {
+  content: "\f1dc";
+}
+.fa-paragraph:before {
+  content: "\f1dd";
+}
+.fa-sliders:before {
+  content: "\f1de";
+}
+.fa-share-alt:before {
+  content: "\f1e0";
+}
+.fa-share-alt-square:before {
+  content: "\f1e1";
+}
+.fa-bomb:before {
+  content: "\f1e2";
+}
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+  content: "\f1e3";
+}
+.fa-tty:before {
+  content: "\f1e4";
+}
+.fa-binoculars:before {
+  content: "\f1e5";
+}
+.fa-plug:before {
+  content: "\f1e6";
+}
+.fa-slideshare:before {
+  content: "\f1e7";
+}
+.fa-twitch:before {
+  content: "\f1e8";
+}
+.fa-yelp:before {
+  content: "\f1e9";
+}
+.fa-newspaper-o:before {
+  content: "\f1ea";
+}
+.fa-wifi:before {
+  content: "\f1eb";
+}
+.fa-calculator:before {
+  content: "\f1ec";
+}
+.fa-paypal:before {
+  content: "\f1ed";
+}
+.fa-google-wallet:before {
+  content: "\f1ee";
+}
+.fa-cc-visa:before {
+  content: "\f1f0";
+}
+.fa-cc-mastercard:before {
+  content: "\f1f1";
+}
+.fa-cc-discover:before {
+  content: "\f1f2";
+}
+.fa-cc-amex:before {
+  content: "\f1f3";
+}
+.fa-cc-paypal:before {
+  content: "\f1f4";
+}
+.fa-cc-stripe:before {
+  content: "\f1f5";
+}
+.fa-bell-slash:before {
+  content: "\f1f6";
+}
+.fa-bell-slash-o:before {
+  content: "\f1f7";
+}
+.fa-trash:before {
+  content: "\f1f8";
+}
+.fa-copyright:before {
+  content: "\f1f9";
+}
+.fa-at:before {
+  content: "\f1fa";
+}
+.fa-eyedropper:before {
+  content: "\f1fb";
+}
+.fa-paint-brush:before {
+  content: "\f1fc";
+}
+.fa-birthday-cake:before {
+  content: "\f1fd";
+}
+.fa-area-chart:before {
+  content: "\f1fe";
+}
+.fa-pie-chart:before {
+  content: "\f200";
+}
+.fa-line-chart:before {
+  content: "\f201";
+}
+.fa-lastfm:before {
+  content: "\f202";
+}
+.fa-lastfm-square:before {
+  content: "\f203";
+}
+.fa-toggle-off:before {
+  content: "\f204";
+}
+.fa-toggle-on:before {
+  content: "\f205";
+}
+.fa-bicycle:before {
+  content: "\f206";
+}
+.fa-bus:before {
+  content: "\f207";
+}
+.fa-ioxhost:before {
+  content: "\f208";
+}
+.fa-angellist:before {
+  content: "\f209";
+}
+.fa-cc:before {
+  content: "\f20a";
+}
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+  content: "\f20b";
+}
+.fa-meanpath:before {
+  content: "\f20c";
+}
+.fa-buysellads:before {
+  content: "\f20d";
+}
+.fa-connectdevelop:before {
+  content: "\f20e";
+}
+.fa-dashcube:before {
+  content: "\f210";
+}
+.fa-forumbee:before {
+  content: "\f211";
+}
+.fa-leanpub:before {
+  content: "\f212";
+}
+.fa-sellsy:before {
+  content: "\f213";
+}
+.fa-shirtsinbulk:before {
+  content: "\f214";
+}
+.fa-simplybuilt:before {
+  content: "\f215";
+}
+.fa-skyatlas:before {
+  content: "\f216";
+}
+.fa-cart-plus:before {
+  content: "\f217";
+}
+.fa-cart-arrow-down:before {
+  content: "\f218";
+}
+.fa-diamond:before {
+  content: "\f219";
+}
+.fa-ship:before {
+  content: "\f21a";
+}
+.fa-user-secret:before {
+  content: "\f21b";
+}
+.fa-motorcycle:before {
+  content: "\f21c";
+}
+.fa-street-view:before {
+  content: "\f21d";
+}
+.fa-heartbeat:before {
+  content: "\f21e";
+}
+.fa-venus:before {
+  content: "\f221";
+}
+.fa-mars:before {
+  content: "\f222";
+}
+.fa-mercury:before {
+  content: "\f223";
+}
+.fa-intersex:before,
+.fa-transgender:before {
+  content: "\f224";
+}
+.fa-transgender-alt:before {
+  content: "\f225";
+}
+.fa-venus-double:before {
+  content: "\f226";
+}
+.fa-mars-double:before {
+  content: "\f227";
+}
+.fa-venus-mars:before {
+  content: "\f228";
+}
+.fa-mars-stroke:before {
+  content: "\f229";
+}
+.fa-mars-stroke-v:before {
+  content: "\f22a";
+}
+.fa-mars-stroke-h:before {
+  content: "\f22b";
+}
+.fa-neuter:before {
+  content: "\f22c";
+}
+.fa-genderless:before {
+  content: "\f22d";
+}
+.fa-facebook-official:before {
+  content: "\f230";
+}
+.fa-pinterest-p:before {
+  content: "\f231";
+}
+.fa-whatsapp:before {
+  content: "\f232";
+}
+.fa-server:before {
+  content: "\f233";
+}
+.fa-user-plus:before {
+  content: "\f234";
+}
+.fa-user-times:before {
+  content: "\f235";
+}
+.fa-hotel:before,
+.fa-bed:before {
+  content: "\f236";
+}
+.fa-viacoin:before {
+  content: "\f237";
+}
+.fa-train:before {
+  content: "\f238";
+}
+.fa-subway:before {
+  content: "\f239";
+}
+.fa-medium:before {
+  content: "\f23a";
+}
+.fa-yc:before,
+.fa-y-combinator:before {
+  content: "\f23b";
+}
+.fa-optin-monster:before {
+  content: "\f23c";
+}
+.fa-opencart:before {
+  content: "\f23d";
+}
+.fa-expeditedssl:before {
+  content: "\f23e";
+}
+.fa-battery-4:before,
+.fa-battery:before,
+.fa-battery-full:before {
+  content: "\f240";
+}
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+  content: "\f241";
+}
+.fa-battery-2:before,
+.fa-battery-half:before {
+  content: "\f242";
+}
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+  content: "\f243";
+}
+.fa-battery-0:before,
+.fa-battery-empty:before {
+  content: "\f244";
+}
+.fa-mouse-pointer:before {
+  content: "\f245";
+}
+.fa-i-cursor:before {
+  content: "\f246";
+}
+.fa-object-group:before {
+  content: "\f247";
+}
+.fa-object-ungroup:before {
+  content: "\f248";
+}
+.fa-sticky-note:before {
+  content: "\f249";
+}
+.fa-sticky-note-o:before {
+  content: "\f24a";
+}
+.fa-cc-jcb:before {
+  content: "\f24b";
+}
+.fa-cc-diners-club:before {
+  content: "\f24c";
+}
+.fa-clone:before {
+  content: "\f24d";
+}
+.fa-balance-scale:before {
+  content: "\f24e";
+}
+.fa-hourglass-o:before {
+  content: "\f250";
+}
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+  content: "\f251";
+}
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+  content: "\f252";
+}
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+  content: "\f253";
+}
+.fa-hourglass:before {
+  content: "\f254";
+}
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+  content: "\f255";
+}
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+  content: "\f256";
+}
+.fa-hand-scissors-o:before {
+  content: "\f257";
+}
+.fa-hand-lizard-o:before {
+  content: "\f258";
+}
+.fa-hand-spock-o:before {
+  content: "\f259";
+}
+.fa-hand-pointer-o:before {
+  content: "\f25a";
+}
+.fa-hand-peace-o:before {
+  content: "\f25b";
+}
+.fa-trademark:before {
+  content: "\f25c";
+}
+.fa-registered:before {
+  content: "\f25d";
+}
+.fa-creative-commons:before {
+  content: "\f25e";
+}
+.fa-gg:before {
+  content: "\f260";
+}
+.fa-gg-circle:before {
+  content: "\f261";
+}
+.fa-tripadvisor:before {
+  content: "\f262";
+}
+.fa-odnoklassniki:before {
+  content: "\f263";
+}
+.fa-odnoklassniki-square:before {
+  content: "\f264";
+}
+.fa-get-pocket:before {
+  content: "\f265";
+}
+.fa-wikipedia-w:before {
+  content: "\f266";
+}
+.fa-safari:before {
+  content: "\f267";
+}
+.fa-chrome:before {
+  content: "\f268";
+}
+.fa-firefox:before {
+  content: "\f269";
+}
+.fa-opera:before {
+  content: "\f26a";
+}
+.fa-internet-explorer:before {
+  content: "\f26b";
+}
+.fa-tv:before,
+.fa-television:before {
+  content: "\f26c";
+}
+.fa-contao:before {
+  content: "\f26d";
+}
+.fa-500px:before {
+  content: "\f26e";
+}
+.fa-amazon:before {
+  content: "\f270";
+}
+.fa-calendar-plus-o:before {
+  content: "\f271";
+}
+.fa-calendar-minus-o:before {
+  content: "\f272";
+}
+.fa-calendar-times-o:before {
+  content: "\f273";
+}
+.fa-calendar-check-o:before {
+  content: "\f274";
+}
+.fa-industry:before {
+  content: "\f275";
+}
+.fa-map-pin:before {
+  content: "\f276";
+}
+.fa-map-signs:before {
+  content: "\f277";
+}
+.fa-map-o:before {
+  content: "\f278";
+}
+.fa-map:before {
+  content: "\f279";
+}
+.fa-commenting:before {
+  content: "\f27a";
+}
+.fa-commenting-o:before {
+  content: "\f27b";
+}
+.fa-houzz:before {
+  content: "\f27c";
+}
+.fa-vimeo:before {
+  content: "\f27d";
+}
+.fa-black-tie:before {
+  content: "\f27e";
+}
+.fa-fonticons:before {
+  content: "\f280";
+}
+.fa-reddit-alien:before {
+  content: "\f281";
+}
+.fa-edge:before {
+  content: "\f282";
+}
+.fa-credit-card-alt:before {
+  content: "\f283";
+}
+.fa-codiepie:before {
+  content: "\f284";
+}
+.fa-modx:before {
+  content: "\f285";
+}
+.fa-fort-awesome:before {
+  content: "\f286";
+}
+.fa-usb:before {
+  content: "\f287";
+}
+.fa-product-hunt:before {
+  content: "\f288";
+}
+.fa-mixcloud:before {
+  content: "\f289";
+}
+.fa-scribd:before {
+  content: "\f28a";
+}
+.fa-pause-circle:before {
+  content: "\f28b";
+}
+.fa-pause-circle-o:before {
+  content: "\f28c";
+}
+.fa-stop-circle:before {
+  content: "\f28d";
+}
+.fa-stop-circle-o:before {
+  content: "\f28e";
+}
+.fa-shopping-bag:before {
+  content: "\f290";
+}
+.fa-shopping-basket:before {
+  content: "\f291";
+}
+.fa-hashtag:before {
+  content: "\f292";
+}
+.fa-bluetooth:before {
+  content: "\f293";
+}
+.fa-bluetooth-b:before {
+  content: "\f294";
+}
+.fa-percent:before {
+  content: "\f295";
+}
+.fa-gitlab:before {
+  content: "\f296";
+}
+.fa-wpbeginner:before {
+  content: "\f297";
+}
+.fa-wpforms:before {
+  content: "\f298";
+}
+.fa-envira:before {
+  content: "\f299";
+}
+.fa-universal-access:before {
+  content: "\f29a";
+}
+.fa-wheelchair-alt:before {
+  content: "\f29b";
+}
+.fa-question-circle-o:before {
+  content: "\f29c";
+}
+.fa-blind:before {
+  content: "\f29d";
+}
+.fa-audio-description:before {
+  content: "\f29e";
+}
+.fa-volume-control-phone:before {
+  content: "\f2a0";
+}
+.fa-braille:before {
+  content: "\f2a1";
+}
+.fa-assistive-listening-systems:before {
+  content: "\f2a2";
+}
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before {
+  content: "\f2a3";
+}
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before {
+  content: "\f2a4";
+}
+.fa-glide:before {
+  content: "\f2a5";
+}
+.fa-glide-g:before {
+  content: "\f2a6";
+}
+.fa-signing:before,
+.fa-sign-language:before {
+  content: "\f2a7";
+}
+.fa-low-vision:before {
+  content: "\f2a8";
+}
+.fa-viadeo:before {
+  content: "\f2a9";
+}
+.fa-viadeo-square:before {
+  content: "\f2aa";
+}
+.fa-snapchat:before {
+  content: "\f2ab";
+}
+.fa-snapchat-ghost:before {
+  content: "\f2ac";
+}
+.fa-snapchat-square:before {
+  content: "\f2ad";
+}
+.fa-pied-piper:before {
+  content: "\f2ae";
+}
+.fa-first-order:before {
+  content: "\f2b0";
+}
+.fa-yoast:before {
+  content: "\f2b1";
+}
+.fa-themeisle:before {
+  content: "\f2b2";
+}
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before {
+  content: "\f2b3";
+}
+.fa-fa:before,
+.fa-font-awesome:before {
+  content: "\f2b4";
+}
+.fa-handshake-o:before {
+  content: "\f2b5";
+}
+.fa-envelope-open:before {
+  content: "\f2b6";
+}
+.fa-envelope-open-o:before {
+  content: "\f2b7";
+}
+.fa-linode:before {
+  content: "\f2b8";
+}
+.fa-address-book:before {
+  content: "\f2b9";
+}
+.fa-address-book-o:before {
+  content: "\f2ba";
+}
+.fa-vcard:before,
+.fa-address-card:before {
+  content: "\f2bb";
+}
+.fa-vcard-o:before,
+.fa-address-card-o:before {
+  content: "\f2bc";
+}
+.fa-user-circle:before {
+  content: "\f2bd";
+}
+.fa-user-circle-o:before {
+  content: "\f2be";
+}
+.fa-user-o:before {
+  content: "\f2c0";
+}
+.fa-id-badge:before {
+  content: "\f2c1";
+}
+.fa-drivers-license:before,
+.fa-id-card:before {
+  content: "\f2c2";
+}
+.fa-drivers-license-o:before,
+.fa-id-card-o:before {
+  content: "\f2c3";
+}
+.fa-quora:before {
+  content: "\f2c4";
+}
+.fa-free-code-camp:before {
+  content: "\f2c5";
+}
+.fa-telegram:before {
+  content: "\f2c6";
+}
+.fa-thermometer-4:before,
+.fa-thermometer:before,
+.fa-thermometer-full:before {
+  content: "\f2c7";
+}
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before {
+  content: "\f2c8";
+}
+.fa-thermometer-2:before,
+.fa-thermometer-half:before {
+  content: "\f2c9";
+}
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before {
+  content: "\f2ca";
+}
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before {
+  content: "\f2cb";
+}
+.fa-shower:before {
+  content: "\f2cc";
+}
+.fa-bathtub:before,
+.fa-s15:before,
+.fa-bath:before {
+  content: "\f2cd";
+}
+.fa-podcast:before {
+  content: "\f2ce";
+}
+.fa-window-maximize:before {
+  content: "\f2d0";
+}
+.fa-window-minimize:before {
+  content: "\f2d1";
+}
+.fa-window-restore:before {
+  content: "\f2d2";
+}
+.fa-times-rectangle:before,
+.fa-window-close:before {
+  content: "\f2d3";
+}
+.fa-times-rectangle-o:before,
+.fa-window-close-o:before {
+  content: "\f2d4";
+}
+.fa-bandcamp:before {
+  content: "\f2d5";
+}
+.fa-grav:before {
+  content: "\f2d6";
+}
+.fa-etsy:before {
+  content: "\f2d7";
+}
+.fa-imdb:before {
+  content: "\f2d8";
+}
+.fa-ravelry:before {
+  content: "\f2d9";
+}
+.fa-eercast:before {
+  content: "\f2da";
+}
+.fa-microchip:before {
+  content: "\f2db";
+}
+.fa-snowflake-o:before {
+  content: "\f2dc";
+}
+.fa-superpowers:before {
+  content: "\f2dd";
+}
+.fa-wpexplorer:before {
+  content: "\f2de";
+}
+.fa-meetup:before {
+  content: "\f2e0";
+}
+.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;
+}
diff --git a/MP-MAG/Content/font-awesome.min.css b/MP-MAG/Content/font-awesome.min.css
new file mode 100644
index 0000000..540440c
--- /dev/null
+++ b/MP-MAG/Content/font-awesome.min.css
@@ -0,0 +1,4 @@
+/*!
+ *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.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}
diff --git a/MP-MAG/Content/fonts.less b/MP-MAG/Content/fonts.less
new file mode 100644
index 0000000..72190b6
--- /dev/null
+++ b/MP-MAG/Content/fonts.less
@@ -0,0 +1,27 @@
+/*@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 400;
+  src: url('OpenSans.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Open Sans Condensed';
+  font-style: normal;
+  font-weight: 300;
+  src: url('OpenSansCondensed.woff') format('woff');
+}
+
+@font-face {
+  font-family: 'Roboto';
+  font-style: normal;
+  font-weight: 400;
+  src: url('Roboto.woff2') format('woff2');
+}
+
+@font-face {
+  font-family: 'Roboto Condensed';
+  font-style: normal;
+  font-weight: 300;
+  src: url('RobotoCondensed.woff2') format('woff2');
+}*/
diff --git a/MP-MAG/Controllers/HomeController.cs b/MP-MAG/Controllers/HomeController.cs
index 08367fa..1ef169d 100644
--- a/MP-MAG/Controllers/HomeController.cs
+++ b/MP-MAG/Controllers/HomeController.cs
@@ -4,7 +4,7 @@ using System.Linq;
 using System.Web;
 using System.Web.Mvc;
 
-namespace MP_API.Controllers
+namespace MP_MAG.Controllers
 {
   public class HomeController : Controller
   {
diff --git a/MP-MAG/Controllers/PrintQueueConfController.cs b/MP-MAG/Controllers/PrintQueueConfController.cs
index 40f924c..39385ae 100644
--- a/MP-MAG/Controllers/PrintQueueConfController.cs
+++ b/MP-MAG/Controllers/PrintQueueConfController.cs
@@ -1,8 +1,9 @@
-using SteamWare.Reports;
+using SteamWare;
+using SteamWare.Reports;
 using System.Collections.Generic;
 using System.Web.Http;
 
-namespace MP_API.Controllers
+namespace MP_MAG.Controllers
 {
   public class PrintQueueConfController : ApiController
   {
@@ -11,14 +12,14 @@ namespace MP_API.Controllers
     /// GET: api/PrintQueue
     /// 
     /// lista oggetto Json in formato SteamwareSDK.queueConf
-    public List Get()
+    public List Get()
     {
-      List answ = MagData.MagDataLayer.man.queueConfJson;
+      List answ = MagData.MagDataLayer.man.queueConfJson;
       // se vuoto... creo!
       if (answ.Count == 0)
       {
-        queueConf currConf;
-        devInfoParam currDevInfoParam = new devInfoParam()
+        SteamWare.Reports.queueConf currConf;
+        SteamWare.Reports.devInfoParam currDevInfoParam = new SteamWare.Reports.devInfoParam()
         {
           OutputFormat = "EMF",
           PageHeight = "297mm",
@@ -28,7 +29,7 @@ namespace MP_API.Controllers
           MarginRight = "10mm",
           MarginTop = "10mm"
         };
-        currConf = new queueConf()
+        currConf = new SteamWare.Reports.queueConf()
         {
           name = "default",
           template = "missing.rdlc",
diff --git a/MP-MAG/Controllers/PrintQueueController.cs b/MP-MAG/Controllers/PrintQueueController.cs
index 7440d00..3762306 100644
--- a/MP-MAG/Controllers/PrintQueueController.cs
+++ b/MP-MAG/Controllers/PrintQueueController.cs
@@ -1,14 +1,15 @@
 using MagData;
 using Newtonsoft.Json;
-using SteamWare.IO;
-using SteamWare.Reports;
+//using SteamWare.IO;
+//using SteamWare.Reports;
+using SteamWare;
 using System;
 using System.Collections.Generic;
 using System.Data;
 using System.IO;
 using System.Web.Http;
 
-namespace MP_API.Controllers
+namespace MP_MAG.Controllers
 {
   public class PrintQueueController : ApiController
   {
diff --git a/MP-MAG/Controllers/ReportController.cs b/MP-MAG/Controllers/ReportController.cs
index f42af29..786c452 100644
--- a/MP-MAG/Controllers/ReportController.cs
+++ b/MP-MAG/Controllers/ReportController.cs
@@ -1,11 +1,12 @@
-using SteamWare.IO;
+using SteamWare;
+//using SteamWare.IO;
 using SteamWare.Logger;
 using System;
 using System.IO;
 using System.Web;
 using System.Web.Http;
 
-namespace MP_API.Controllers
+namespace MP_MAG.Controllers
 {
   public class ReportController : ApiController
   {
diff --git a/MP-MAG/MP-MAG.csproj b/MP-MAG/MP-MAG.csproj
index b048653..369cc1e 100644
--- a/MP-MAG/MP-MAG.csproj
+++ b/MP-MAG/MP-MAG.csproj
@@ -13,8 +13,8 @@
     {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
     Library
     Properties
-    MP_API
-    MP-API
+    MP_MAG
+    MP-MAG
     v4.6.2
     false
     true
@@ -47,16 +47,49 @@
     4
   
   
+    
+      ..\packages\AIM.1.0.3\lib\AegisImplicitMail.dll
+    
+    
+      ..\packages\AjaxControlToolkit.19.1.0\lib\net40\AjaxControlToolkit.dll
+    
+    
+      ..\packages\AspNet.ScriptManager.bootstrap.4.4.1\lib\net45\AspNet.ScriptManager.bootstrap.dll
+    
+    
+      ..\packages\AspNet.ScriptManager.jQuery.3.4.1\lib\net45\AspNet.ScriptManager.jQuery.dll
+    
     
       ..\packages\Crc32C.NET.1.0.5.0\lib\net20\Crc32C.NET.dll
     
     
       ..\packages\DnsClient.1.2.0\lib\net45\DnsClient.dll
     
+    
+      ..\packages\elmah.corelibrary.1.2.2\lib\Elmah.dll
+    
     
       ..\packages\SharpZipLib.1.2.0\lib\net45\ICSharpCode.SharpZipLib.dll
     
+    
+      ..\packages\Microsoft.AspNet.FriendlyUrls.Core.1.0.2\lib\net45\Microsoft.AspNet.FriendlyUrls.dll
+    
+    
+      ..\packages\Microsoft.AspNet.SessionState.SessionStateModule.1.1.0\lib\Net462\Microsoft.AspNet.SessionState.SessionStateModule.dll
+    
+    
+      ..\packages\Microsoft.AspNet.Web.Optimization.WebForms.1.1.3\lib\net45\Microsoft.AspNet.Web.Optimization.WebForms.dll
+    
     
+    
+      ..\packages\Microsoft.AspNet.ScriptManager.MSAjax.5.0.0\lib\net45\Microsoft.ScriptManager.MSAjax.dll
+    
+    
+      ..\packages\Microsoft.AspNet.ScriptManager.WebForms.5.0.0\lib\net45\Microsoft.ScriptManager.WebForms.dll
+    
+    
+      ..\packages\Microsoft.Web.RedisSessionStateProvider.4.0.1\lib\net462\Microsoft.Web.RedisSessionStateProvider.dll
+    
     
       ..\packages\MongoDB.Bson.2.10.2\lib\net452\MongoDB.Bson.dll
     
@@ -75,6 +108,12 @@
     
       ..\packages\NLog.4.6.8\lib\net45\NLog.dll
     
+    
+      ..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.dll
+    
+    
+      ..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.Charting.dll
+    
     
       ..\packages\Pipelines.Sockets.Unofficial.2.1.1\lib\net461\Pipelines.Sockets.Unofficial.dll
     
@@ -87,17 +126,14 @@
     
       ..\packages\StackExchange.Redis.2.0.601\lib\net461\StackExchange.Redis.dll
     
-    
-      ..\packages\SteamWare.IO.4.0.2002.731\lib\net462\SteamWare.IO.dll
-      True
+    
+      ..\packages\SteamWare.4.0.2002.731\lib\net462\SteamWare.dll
     
     
       ..\packages\SteamWare.Logger.4.0.2002.731\lib\net462\SteamWare.Logger.dll
-      True
     
     
       ..\packages\SteamWare.Reports.4.0.2002.731\lib\net462\SteamWare.Reports.dll
-      True
     
     
     
@@ -244,9 +280,39 @@
       Global.asax
     
     
+    
+      Site.Master
+      ASPXCodeBehind
+    
+    
+      Site.Master
+    
+    
+      Site.Mobile.Master
+      ASPXCodeBehind
+    
+    
+      Site.Mobile.Master
+    
+    
+      selector.aspx
+      ASPXCodeBehind
+    
+    
+      selector.aspx
+    
+    
+      ViewSwitcher.ascx
+      ASPXCodeBehind
+    
+    
+      ViewSwitcher.ascx
+    
   
   
+    
     
+    
     
     
     
@@ -255,7 +321,16 @@
     
     
     
+    
+    
+    
+      Site.less
+    
+    
+      Site.css
+    
     
+    
     
     
     
@@ -276,7 +351,6 @@
     
     
     
-    
     
     
     
@@ -300,8 +374,45 @@
     
     
     
-    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
     
+    
+    
+      compilerconfig.json
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
     
     
     
@@ -382,6 +493,8 @@
     
     
     
+    
+    
     
     
       Web.config
@@ -390,7 +503,7 @@
       Web.config
     
     
-    
+    
     
     
     
@@ -406,10 +519,13 @@
     
     
     
+    
+    
   
   
     
     
+    
   
   
     
diff --git a/MP-MAG/Properties/AssemblyInfo.cs b/MP-MAG/Properties/AssemblyInfo.cs
index f9d404d..7afb8c6 100644
--- a/MP-MAG/Properties/AssemblyInfo.cs
+++ b/MP-MAG/Properties/AssemblyInfo.cs
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
 // Le informazioni generali relative a un assembly sono controllate dal seguente
 // set di attributi. Modificare i valori di questi attributi per modificare le informazioni
 // associate a un assembly.
-[assembly: AssemblyTitle("MP_API")]
+[assembly: AssemblyTitle("MP_MAG")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
 //[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("MP_API")]
+[assembly: AssemblyProduct("MP_MAG")]
 //[assembly: AssemblyCopyright("Copyright ©  2020")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
diff --git a/MP-MAG/Reports/CartellinoSemilavorati.rdlc b/MP-MAG/Reports/CartellinoSemilavorati.rdlc
index a7d3d60..c8272af 100644
--- a/MP-MAG/Reports/CartellinoSemilavorati.rdlc
+++ b/MP-MAG/Reports/CartellinoSemilavorati.rdlc
@@ -6,12 +6,12 @@
         
           
             
-              19cm
+              12.8cm
             
           
           
             
-              12.8cm
+              8.5cm
               
                 
                   
@@ -23,39 +23,39 @@
                               
                                 
                                   
-                                    2.09676cm
+                                    1.23677cm
                                   
                                   
-                                    2.12642cm
+                                    1.36323cm
                                   
                                   
-                                    3.36529cm
+                                    2.4cm
                                   
                                   
-                                    1.82982cm
+                                    1.33216cm
                                   
                                   
-                                    1.6474cm
+                                    1.42062cm
                                   
                                   
-                                    2.62774cm
+                                    1.51916cm
                                   
                                   
-                                    1.43261cm
+                                    1.00928cm
                                   
                                   
-                                    1.47396cm
+                                    0.60084cm
                                   
                                   
-                                    1.2cm
+                                    0.98833cm
                                   
                                   
-                                    1.2cm
+                                    0.90896cm
                                   
                                 
                                 
                                   
-                                    1.5cm
+                                    1.1cm
                                     
                                       
                                         
@@ -96,7 +96,7 @@
                                                   
                                                     EDILCHIMICA s.r.l.
                                                     
                                                   
                                                 
@@ -134,11 +134,13 @@
                                                 
                                                   
                                                     Mod. 56/02
-                                                    
                                                   
                                                 
                                                 
                                               
                                             
@@ -199,7 +201,7 @@
                                     
                                   
                                   
-                                    1.2cm
+                                    0.8cm
                                     
                                       
                                         
@@ -213,7 +215,7 @@
                                                     Data DDT
                                                     
                                                   
                                                 
@@ -253,7 +255,7 @@
                                                     =Fields!DataDDT.Value
                                                     
                                                   
@@ -299,7 +301,7 @@
                                                     Numero DDT
                                                     
                                                   
                                                 
@@ -340,7 +342,7 @@
                                                     =Fields!NumDDT.Value
                                                     
                                                   
                                                 
@@ -374,7 +376,7 @@
                                     
                                   
                                   
-                                    1.2cm
+                                    0.8cm
                                     
                                       
                                         
@@ -388,7 +390,7 @@
                                                     Fornitore
                                                     
                                                   
                                                 
@@ -429,7 +431,7 @@
                                                     =Fields!DescFornit.Value
                                                     
                                                   
                                                 
@@ -467,7 +469,7 @@
                                     
                                   
                                   
-                                    2cm
+                                    1.2cm
                                     
                                       
                                         
@@ -481,7 +483,7 @@
                                                     Articolo
                                                     
                                                   
                                                 
@@ -516,7 +518,6 @@
                                       
                                         
                                           
-                                            true
                                             true
                                             
                                               
@@ -525,7 +526,7 @@
                                                     =Fields!DescArticolo.Value
                                                     
                                                   
                                                 
@@ -566,7 +567,7 @@
                                     
                                   
                                   
-                                    2.2cm
+                                    2cm
                                     
                                       
                                         
@@ -591,7 +592,7 @@
                                                 Textbox105
                                                 0.10922cm
                                                 0.6cm
-                                                5.09292cm
+                                                4.59021cm
                                                 
@@ -603,7 +604,6 @@
                                                 
                                               
                                               
-                                                true
                                                 true
                                                 
                                                   
@@ -611,7 +611,7 @@
                                                       
                                                         =Fields!CodInterno.Value
                                                         
                                                       
                                                     
@@ -621,8 +621,8 @@
                                                 CodInterno
                                                 0.77639cm
                                                 0.10922cm
-                                                1.17924cm
-                                                5.09292cm
+                                                1cm
+                                                4.59021cm
                                                 1
                                                 
-                                                          
-                                                        
-                                                        
-                                                      
-                                                      2pt
-                                                      2pt
-                                                      2pt
-                                                      2pt
-                                                    
-                                                  
-                                                  
-                                                    true
-                                                    true
-                                                    
-                                                      
-                                                        
-                                                          
-                                                            =Fields!Lotto.Value
-                                                            
-                                                          
-                                                        
-                                                        
-                                                      
-                                                      Middle
-                                                      2pt
-                                                      2pt
-                                                      2pt
-                                                      2pt
-                                                    
-                                                  
-                                                
+                                              
+                                                true
                                                 true
-                                                2.2cm
-                                                7.58847cm
+                                                
+                                                  
+                                                    
+                                                      
+                                                        Lotto
+                                                        
+                                                      
+                                                    
+                                                    
                                                   
-                                                  
-                                                    Black
-                                                    
-                                                    0.5pt
-                                                  
-                                                  
-                                                    Black
-                                                    
-                                                    0.5pt
-                                                  
+                                                  2pt
+                                                  2pt
+                                                  2pt
+                                                  2pt
                                                 
-                                              
+                                              
+                                              
+                                                true
+                                                
+                                                  
+                                                    
+                                                      
+                                                        =Fields!Lotto.Value
+                                                        
+                                                      
+                                                    
+                                                    
+                                                  
+                                                  Middle
+                                                  2pt
+                                                  2pt
+                                                  2pt
+                                                  2pt
+                                                
+                                              
                                             
                                             true
                                             
                                               
+                                              
+                                                Black
+                                                
+                                                0.5pt
+                                              
                                             
                                           
                                           3
@@ -802,9 +785,9 @@
                                                 =Microsoft.VisualBasic.Strings.Replace(Parameters!BarcodeBaseURL.Value.ToString(), "BARCODE", Fields!Lotto.Value.ToString()) + "?showVal=true&h=" + Parameters!BarcodeHeight.Value
                                                 FitProportional
                                                 0.26458cm
-                                                0.66146cm
+                                                0.32868cm
                                                 1.71125cm
-                                                9.66528cm
+                                                6.8607cm
                                                 
                                                   =iif(Fields!Lotto.Value = "", True, False)
                                                 
@@ -825,11 +808,6 @@
                                                 
                                                 0.5pt
                                               
-                                              
-                                                Black
-                                                
-                                                0.5pt
-                                              
                                             
                                           
                                           7
@@ -843,56 +821,6 @@
                                       
                                     
                                   
-                                  
-                                    0.67979cm
-                                    
-                                      
-                                        
-                                          
-                                            true
-                                            true
-                                            
-                                              
-                                                
-                                                  
-                                                    
-                                                    
-                                                  
-                                                
-                                                
-                                              
-                                            
-                                            Textbox15
-                                            
-                                              
-                                              2pt
-                                              2pt
-                                              2pt
-                                              2pt
-                                            
-                                          
-                                          10
-                                        
-                                      
-                                      
-                                      
-                                      
-                                      
-                                      
-                                      
-                                      
-                                      
-                                      
-                                    
-                                  
                                 
                               
                               
@@ -921,19 +849,17 @@
                                   
                                   
                                   
-                                  
                                 
                               
                               stp_prt_CartellinoSemilavorati
-                              10.97979cm
-                              19cm
+                              7.9cm
+                              12.77934cm
                               
@@ -942,7 +868,6 @@
                           
                         
                         
-                          true
                           true
                           
                             
@@ -951,6 +876,7 @@
                                   powered by Steam
                                   
                                 
@@ -958,6 +884,7 @@
                                   Ware
                                   
@@ -966,7 +893,7 @@
                                    © 2008-
                                   
                                 
@@ -975,7 +902,7 @@
                                   =Format(Today, "yyyy" )
                                   
                                 
@@ -985,10 +912,10 @@
                               
                             
                           
-                          12.292cm
-                          11.06569cm
-                          0.2in
-                          3.1in
+                          8cm
+                          4.39819cm
+                          0.5cm
+                          7.81184cm
                           1
                           " +
+        this.menuElement.innerHTML +
+        "";
+    var width = 16;
+    var height = 16;
+    this.popup = window.createPopup();
+    __wpm.menu = this;
+    var popupDocument = this.popup.document;
+    popupDocument.write(menuHTML);
+    this.popup.show(0, 0, width, height);
+    var popupBody = popupDocument.body;
+    width = popupBody.scrollWidth;
+    height = popupBody.scrollHeight;
+    if (width < this.menuLabelElement.offsetWidth) {
+        width = this.menuLabelElement.offsetWidth + 16;
+    }
+    if (this.menuElement.innerHTML.indexOf("progid:DXImageTransform.Microsoft.Shadow") != -1) {
+        popupBody.style.paddingRight = "4px";
+    }
+    popupBody.__wpm = __wpm;
+    popupBody.__wpmDeleteWarning = __wpmDeleteWarning;
+    popupBody.__wpmCloseProviderWarning = __wpmCloseProviderWarning;
+    popupBody.popup = this.popup;
+    this.popup.hide();
+    this.popup.show(0, this.menuLabelElement.offsetHeight, width, height, this.menuLabelElement);
+}
+function WebPartMenu_Hide() {
+    if (__wpm.menu == this) {
+        __wpm.menu = null;
+        if ((typeof(this.popup) != "undefined") && (this.popup != null)) {
+            this.popup.hide();
+            this.popup = null;
+        }
+    }
+}
+function WebPartMenu_Hover() {
+    if (this.labelHoverClassName != "") {
+        this.menuLabelElement.className = this.menuLabelElement.className + " " + this.labelHoverClassName;
+    }
+    if (this.labelHoverColor != "") {
+        this.menuLabelElement.style.color = this.labelHoverColor;
+    }
+}
+function WebPartMenu_Unhover() {
+    if (this.labelHoverClassName != "") {
+        this.menuLabelElement.style.textDecoration = this.oldTextDecoration;
+        this.menuLabelElement.className = this.oldClassName;
+    }
+    if (this.labelHoverColor != "") {
+        this.menuLabelElement.style.color = this.oldColor;
+    }
+}
+function WebPartMenu_OnClick() {
+    var menu = window.event.srcElement.__menu;
+    if ((typeof(menu) != "undefined") && (menu != null)) {
+        window.event.returnValue = false;
+        window.event.cancelBubble = true;
+        menu.Show();
+    }
+}
+function WebPartMenu_OnKeyPress() {
+    if (window.event.keyCode == 13) {
+        var menu = window.event.srcElement.__menu;
+        if ((typeof(menu) != "undefined") && (menu != null)) {
+            window.event.returnValue = false;
+            window.event.cancelBubble = true;
+            menu.Show();
+        }
+    }
+}
+function WebPartMenu_OnMouseEnter() {
+    var menu = window.event.srcElement.__menu;
+    if ((typeof(menu) != "undefined") && (menu != null)) {
+        menu.Hover();
+    }
+}
+function WebPartMenu_OnMouseLeave() {
+    var menu = window.event.srcElement.__menu;
+    if ((typeof(menu) != "undefined") && (menu != null)) {
+        menu.Unhover();
+    }
+}
+function WebPartManager() {
+    this.overlayContainerElement = null;
+    this.zones = new Array();
+    this.dragState = null;
+    this.menu = null;
+    this.draggedWebPart = null;
+    this.AddZone = WebPartManager_AddZone;
+    this.IsDragDropEnabled = WebPartManager_IsDragDropEnabled;
+    this.DragDrop = WebPartManager_DragDrop;
+    this.InitiateWebPartDragDrop = WebPartManager_InitiateWebPartDragDrop;
+    this.CompleteWebPartDragDrop = WebPartManager_CompleteWebPartDragDrop;
+    this.ContinueWebPartDragDrop = WebPartManager_ContinueWebPartDragDrop;
+    this.ProcessWebPartDragEnter = WebPartManager_ProcessWebPartDragEnter;
+    this.ProcessWebPartDragOver = WebPartManager_ProcessWebPartDragOver;
+    this.ProcessWebPartDrop = WebPartManager_ProcessWebPartDrop;
+    this.ShowHelp = WebPartManager_ShowHelp;
+    this.ExportWebPart = WebPartManager_ExportWebPart;
+    this.Execute = WebPartManager_Execute;
+    this.SubmitPage = WebPartManager_SubmitPage;
+    this.UpdatePositions = WebPartManager_UpdatePositions;
+    window.attachEvent("onunload", WebPartManager_Dispose);
+}
+function WebPartManager_Dispose() {
+    for (var i = 0; i < __wpm.zones.length; i++) {
+        __wpm.zones[i].Dispose();
+    }
+    window.detachEvent("onunload", WebPartManager_Dispose);
+}
+function WebPartManager_AddZone(zoneElement, uniqueID, isVertical, allowLayoutChange, highlightColor) {
+    var zoneIndex = this.zones.length;
+    var zone = new Zone(zoneElement, zoneIndex, uniqueID, isVertical, allowLayoutChange, highlightColor);
+    this.zones[zoneIndex] = zone;
+    return zone;
+}
+function WebPartManager_IsDragDropEnabled() {
+    return ((typeof(this.overlayContainerElement) != "undefined") && (this.overlayContainerElement != null));
+}
+function WebPartManager_DragDrop() {
+    if ((typeof(this.draggedWebPart) != "undefined") && (this.draggedWebPart != null)) {
+        var tempWebPart = this.draggedWebPart;
+        this.draggedWebPart = null;
+        tempWebPart.dragDrop();
+        window.setTimeout("__wpClearSelection()", 0);
+    }
+}
+function WebPartManager_InitiateWebPartDragDrop(webPartElement) {
+    var webPart = webPartElement.__webPart;
+    this.UpdatePositions();
+    this.dragState = new WebPartDragState(webPartElement, "move");
+    var location = __wpGetPageEventLocation(window.event, true);
+    var overlayContainerElement = this.overlayContainerElement;
+    overlayContainerElement.style.left = location.x - webPartElement.offsetWidth / 2;
+    overlayContainerElement.style.top = location.y + 4 + (webPartElement.clientTop ? webPartElement.clientTop : 0);
+    overlayContainerElement.style.display = "block";
+    overlayContainerElement.style.width = webPartElement.offsetWidth;
+    overlayContainerElement.style.height = webPartElement.offsetHeight;
+    overlayContainerElement.appendChild(webPartElement.cloneNode(true));
+    if (webPart.allowZoneChange == false) {
+        webPart.zone.allowDrop = true;
+    }
+    else {
+        for (var i = 0; i < __wpm.zones.length; i++) {
+            var zone = __wpm.zones[i];
+            if (zone.allowLayoutChange) {
+                zone.allowDrop = true;
+            }
+        }
+    }
+    document.body.attachEvent("ondragover", Zone_OnDragOver);
+    return "move";
+}
+function WebPartManager_CompleteWebPartDragDrop() {
+    var dragState = this.dragState;
+    this.dragState = null;
+    if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
+        dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false);
+    }
+    document.body.detachEvent("ondragover", Zone_OnDragOver);
+    for (var i = 0; i < __wpm.zones.length; i++) {
+        __wpm.zones[i].allowDrop = false;
+    }
+    this.overlayContainerElement.removeChild(this.overlayContainerElement.firstChild);
+    this.overlayContainerElement.style.display = "none";
+    if ((typeof(dragState) != "undefined") && (dragState != null) && (dragState.dropped == true)) {
+        var currentZone = dragState.webPartElement.__webPart.zone;
+        var currentZoneIndex = dragState.webPartElement.__webPart.zoneIndex;
+        if ((currentZone != dragState.dropZoneElement.__zone) ||
+            ((currentZoneIndex != dragState.dropIndex) &&
+             (currentZoneIndex != (dragState.dropIndex - 1)))) {
+            var eventTarget = dragState.dropZoneElement.__zone.uniqueID;
+            var eventArgument = "Drag:" + dragState.webPartElement.id + ":" + dragState.dropIndex;
+            this.SubmitPage(eventTarget, eventArgument);
+        }
+    }
+}
+function WebPartManager_ContinueWebPartDragDrop() {
+    var dragState = this.dragState;
+    if ((typeof(dragState) != "undefined") && (dragState != null)) {
+        var style = this.overlayContainerElement.style;
+        var location = __wpGetPageEventLocation(window.event, true);
+        style.left = location.x - dragState.webPartElement.offsetWidth / 2;
+        style.top = location.y + 4 + (dragState.webPartElement.clientTop ? dragState.webPartElement.clientTop : 0);
+    }
+}
+function WebPartManager_Execute(script) {
+    if (this.menu) {
+        this.menu.Hide();
+    }
+    var scriptReference = new Function(script);
+    return (scriptReference() != false);
+}
+function WebPartManager_ProcessWebPartDragEnter() {
+    var dragState = __wpm.dragState;
+    if ((typeof(dragState) != "undefined") && (dragState != null)) {
+        var currentEvent = window.event;
+        var newDropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement);
+        if ((typeof(newDropZoneElement.__zone) == "undefined") || (newDropZoneElement.__zone == null) ||
+            (newDropZoneElement.__zone.allowDrop == false)) {
+            newDropZoneElement = null;
+        }
+        var newDropIndex = -1;
+        if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) {
+            newDropIndex = newDropZoneElement.__zone.GetWebPartIndex(__wpGetPageEventLocation(currentEvent, false));
+            if (newDropIndex == -1) {
+                newDropZoneElement = null;
+            }
+        }
+        if (dragState.dropZoneElement != newDropZoneElement) {
+            if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
+                dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false);
+            }
+            dragState.dropZoneElement = newDropZoneElement;
+            dragState.dropIndex = newDropIndex;
+            if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) {
+                newDropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false);
+            }
+        }
+        else if (dragState.dropIndex != newDropIndex) {
+            if (dragState.dropIndex != -1) {
+                dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false);
+            }
+            dragState.dropIndex = newDropIndex;
+            if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) {
+                newDropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false);
+            }
+        }
+        if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
+            currentEvent.dataTransfer.effectAllowed = dragState.effect;
+        }
+        return true;
+    }
+    return false;
+}
+function WebPartManager_ProcessWebPartDragOver() {
+    var dragState = __wpm.dragState;
+    var currentEvent = window.event;
+    var handled = false;
+    if ((typeof(dragState) != "undefined") && (dragState != null) &&
+        (typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
+        var dropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement);
+        if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dropZoneElement.__zone.allowDrop == false)) {
+            dropZoneElement = null;
+        }
+        if (((typeof(dropZoneElement) == "undefined") || (dropZoneElement == null)) &&
+            (typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
+            dragState.dropZoneElement.__zone.ToggleDropCues(false, __wpm.dragState.dropIndex, false);
+            dragState.dropZoneElement = null;
+            dragState.dropIndex = -1;
+        }
+        else if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null)) {
+            var location = __wpGetPageEventLocation(currentEvent, false);
+            var newDropIndex = dropZoneElement.__zone.GetWebPartIndex(location);
+            if (newDropIndex == -1) {
+                dropZoneElement = null;
+            }
+            if (dragState.dropZoneElement != dropZoneElement) {
+                if ((dragState.dropIndex != -1) || (typeof(dropZoneElement) == "undefined") || (dropZoneElement == null)) {
+                    dragState.dropZoneElement.__zone.ToggleDropCues(false, __wpm.dragState.dropIndex, false);
+                }
+                dragState.dropZoneElement = dropZoneElement;
+            }
+            else {
+                dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, true);
+            }
+            dragState.dropIndex = newDropIndex;
+            if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null)) {
+                dropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false);
+            }
+        }
+        handled = true;
+    }
+    if ((typeof(dragState) == "undefined") || (dragState == null) ||
+        (typeof(dragState.dropZoneElement) == "undefined") || (dragState.dropZoneElement == null)) {
+        currentEvent.dataTransfer.effectAllowed = "none";
+    }
+    return handled;
+}
+function WebPartManager_ProcessWebPartDrop() {
+    var dragState = this.dragState;
+    if ((typeof(dragState) != "undefined") && (dragState != null)) {
+        var currentEvent = window.event;
+        var dropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement);
+        if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dropZoneElement.__zone.allowDrop == false)) {
+            dropZoneElement = null;
+        }
+        if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dragState.dropZoneElement == dropZoneElement)) {
+            dragState.dropped = true;
+        }
+        return true;
+    }
+    return false;
+}
+function WebPartManager_ShowHelp(helpUrl, helpMode) {
+    if ((typeof(this.menu) != "undefined") && (this.menu != null)) {
+        this.menu.Hide();
+    }
+    if (helpMode == 0 || helpMode == 1) {
+        if (helpMode == 0) {
+            var dialogInfo = "edge: Sunken; center: yes; help: no; resizable: yes; status: no";
+            window.showModalDialog(helpUrl, null, dialogInfo);
+        }
+        else {
+            window.open(helpUrl, null, "scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no");
+        }
+    }
+    else if (helpMode == 2) {
+        window.location = helpUrl;
+    }
+}
+function WebPartManager_ExportWebPart(exportUrl, warn, confirmOnly) {
+    if (warn == true && __wpmExportWarning.length > 0 && this.personalizationScopeShared != true) {
+        if (confirm(__wpmExportWarning) == false) {
+            return false;
+        }
+    }
+    if (confirmOnly == false) {
+        window.location = exportUrl;
+    }
+    return true;
+}
+function WebPartManager_UpdatePositions() {
+    for (var i = 0; i < this.zones.length; i++) {
+        this.zones[i].UpdatePosition();
+    }
+}
+function WebPartManager_SubmitPage(eventTarget, eventArgument) {
+    if ((typeof(this.menu) != "undefined") && (this.menu != null)) {
+        this.menu.Hide();
+    }
+    __doPostBack(eventTarget, eventArgument);
+}
diff --git a/MP-MAG/Scripts/WebForms/WebUIValidation.js b/MP-MAG/Scripts/WebForms/WebUIValidation.js
new file mode 100644
index 0000000..3b612ff
--- /dev/null
+++ b/MP-MAG/Scripts/WebForms/WebUIValidation.js
@@ -0,0 +1,684 @@
+//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebUIValidation.js
+var Page_ValidationVer = "125";
+var Page_IsValid = true;
+var Page_BlockSubmit = false;
+var Page_InvalidControlToBeFocused = null;
+var Page_TextTypes = /^(text|password|file|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i;
+function ValidatorUpdateDisplay(val) {
+    if (typeof(val.display) == "string") {
+        if (val.display == "None") {
+            return;
+        }
+        if (val.display == "Dynamic") {
+            val.style.display = val.isvalid ? "none" : "inline";
+            return;
+        }
+    }
+    if ((navigator.userAgent.indexOf("Mac") > -1) &&
+        (navigator.userAgent.indexOf("MSIE") > -1)) {
+        val.style.display = "inline";
+    }
+    val.style.visibility = val.isvalid ? "hidden" : "visible";
+}
+function ValidatorUpdateIsValid() {
+    Page_IsValid = AllValidatorsValid(Page_Validators);
+}
+function AllValidatorsValid(validators) {
+    if ((typeof(validators) != "undefined") && (validators != null)) {
+        var i;
+        for (i = 0; i < validators.length; i++) {
+            if (!validators[i].isvalid) {
+                return false;
+            }
+        }
+    }
+    return true;
+}
+function ValidatorHookupControlID(controlID, val) {
+    if (typeof(controlID) != "string") {
+        return;
+    }
+    var ctrl = document.getElementById(controlID);
+    if ((typeof(ctrl) != "undefined") && (ctrl != null)) {
+        ValidatorHookupControl(ctrl, val);
+    }
+    else {
+        val.isvalid = true;
+        val.enabled = false;
+    }
+}
+function ValidatorHookupControl(control, val) {
+    if (typeof(control.tagName) != "string") {
+        return;  
+    }
+    if (control.tagName != "INPUT" && control.tagName != "TEXTAREA" && control.tagName != "SELECT") {
+        var i;
+        for (i = 0; i < control.childNodes.length; i++) {
+            ValidatorHookupControl(control.childNodes[i], val);
+        }
+        return;
+    }
+    else {
+        if (typeof(control.Validators) == "undefined") {
+            control.Validators = new Array;
+            var eventType;
+            if (control.type == "radio") {
+                eventType = "onclick";
+            } else {
+                eventType = "onchange";
+                if (typeof(val.focusOnError) == "string" && val.focusOnError == "t") {
+                    ValidatorHookupEvent(control, "onblur", "ValidatedControlOnBlur(event); ");
+                }
+            }
+            ValidatorHookupEvent(control, eventType, "ValidatorOnChange(event); ");
+            if (Page_TextTypes.test(control.type)) {
+                ValidatorHookupEvent(control, "onkeypress", 
+                    "event = event || window.event; if (!ValidatedTextBoxOnKeyPress(event)) { event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); return false; } ");
+            }
+        }
+        control.Validators[control.Validators.length] = val;
+    }
+}
+function ValidatorHookupEvent(control, eventType, functionPrefix) {
+    var ev = control[eventType];
+    if (typeof(ev) == "function") {
+        ev = ev.toString();
+        ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}"));
+    }
+    else {
+        ev = "";
+    }
+    control[eventType] = new Function("event", functionPrefix + " " + ev);
+}
+function ValidatorGetValue(id) {
+    var control;
+    control = document.getElementById(id);
+    if (typeof(control.value) == "string") {
+        return control.value;
+    }
+    return ValidatorGetValueRecursive(control);
+}
+function ValidatorGetValueRecursive(control)
+{
+    if (typeof(control.value) == "string" && (control.type != "radio" || control.checked == true)) {
+        return control.value;
+    }
+    var i, val;
+    for (i = 0; i twoDigitCutoffYear) ? (cutoffYearCentury - 100 + year) : (cutoffYearCentury + year));
+    }
+    var num, cleanInput, m, exp;
+    if (dataType == "Integer") {
+        exp = /^\s*[-\+]?\d+\s*$/;
+        if (op.match(exp) == null)
+            return null;
+        num = parseInt(op, 10);
+        return (isNaN(num) ? null : num);
+    }
+    else if(dataType == "Double") {
+        exp = new RegExp("^\\s*([-\\+])?(\\d*)\\" + val.decimalchar + "?(\\d*)\\s*$");
+        m = op.match(exp);
+        if (m == null)
+            return null;
+        if (m[2].length == 0 && m[3].length == 0)
+            return null;
+        cleanInput = (m[1] != null ? m[1] : "") + (m[2].length>0 ? m[2] : "0") + (m[3].length>0 ? "." + m[3] : "");
+        num = parseFloat(cleanInput);
+        return (isNaN(num) ? null : num);
+    }
+    else if (dataType == "Currency") {
+        var hasDigits = (val.digits > 0);
+        var beginGroupSize, subsequentGroupSize;
+        var groupSizeNum = parseInt(val.groupsize, 10);
+        if (!isNaN(groupSizeNum) && groupSizeNum > 0) {
+            beginGroupSize = "{1," + groupSizeNum + "}";
+            subsequentGroupSize = "{" + groupSizeNum + "}";
+        }
+        else {
+            beginGroupSize = subsequentGroupSize = "+";
+        }
+        exp = new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + "(\\" + val.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)"
+                        + (hasDigits ? "\\" + val.decimalchar + "?(\\d{0," + val.digits + "})" : "")
+                        + "\\s*$");
+        m = op.match(exp);
+        if (m == null)
+            return null;
+        if (m[2].length == 0 && hasDigits && m[5].length == 0)
+            return null;
+        cleanInput = (m[1] != null ? m[1] : "") + m[2].replace(new RegExp("(\\" + val.groupchar + ")", "g"), "") + ((hasDigits && m[5].length > 0) ? "." + m[5] : "");
+        num = parseFloat(cleanInput);
+        return (isNaN(num) ? null : num);
+    }
+    else if (dataType == "Date") {
+        var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-/]|\\. ?)(\\d{1,2})\\4(\\d{1,2})\\.?\\s*$");
+        m = op.match(yearFirstExp);
+        var day, month, year;
+        if (m != null && (((typeof(m[2]) != "undefined") && (m[2].length == 4)) || val.dateorder == "ymd")) {
+            day = m[6];
+            month = m[5];
+            year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
+        }
+        else {
+            if (val.dateorder == "ymd"){
+                return null;
+            }
+            var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-/]|\\. ?)(\\d{1,2})(?:\\s|\\2)((\\d{4})|(\\d{2}))(?:\\s\u0433\\.|\\.)?\\s*$");
+            m = op.match(yearLastExp);
+            if (m == null) {
+                return null;
+            }
+            if (val.dateorder == "mdy") {
+                day = m[3];
+                month = m[1];
+            }
+            else {
+                day = m[1];
+                month = m[3];
+            }
+            year = ((typeof(m[5]) != "undefined") && (m[5].length == 4)) ? m[5] : GetFullYear(parseInt(m[6], 10));
+        }
+        month -= 1;
+        var date = new Date(year, month, day);
+        if (year < 100) {
+            date.setFullYear(year);
+        }
+        return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date.valueOf() : null;
+    }
+    else {
+        return op.toString();
+    }
+}
+function ValidatorCompare(operand1, operand2, operator, val) {
+    var dataType = val.type;
+    var op1, op2;
+    if ((op1 = ValidatorConvert(operand1, dataType, val)) == null)
+        return false;
+    if (operator == "DataTypeCheck")
+        return true;
+    if ((op2 = ValidatorConvert(operand2, dataType, val)) == null)
+        return true;
+    switch (operator) {
+        case "NotEqual":
+            return (op1 != op2);
+        case "GreaterThan":
+            return (op1 > op2);
+        case "GreaterThanEqual":
+            return (op1 >= op2);
+        case "LessThan":
+            return (op1 < op2);
+        case "LessThanEqual":
+            return (op1 <= op2);
+        default:
+            return (op1 == op2);
+    }
+}
+function CompareValidatorEvaluateIsValid(val) {
+    var value = ValidatorGetValue(val.controltovalidate);
+    if (ValidatorTrim(value).length == 0)
+        return true;
+    var compareTo = "";
+    if ((typeof(val.controltocompare) != "string") ||
+        (typeof(document.getElementById(val.controltocompare)) == "undefined") ||
+        (null == document.getElementById(val.controltocompare))) {
+        if (typeof(val.valuetocompare) == "string") {
+            compareTo = val.valuetocompare;
+        }
+    }
+    else {
+        compareTo = ValidatorGetValue(val.controltocompare);
+    }
+    var operator = "Equal";
+    if (typeof(val.operator) == "string") {
+        operator = val.operator;
+    }
+    return ValidatorCompare(value, compareTo, operator, val);
+}
+function CustomValidatorEvaluateIsValid(val) {
+    var value = "";
+    if (typeof(val.controltovalidate) == "string") {
+        value = ValidatorGetValue(val.controltovalidate);
+        if ((ValidatorTrim(value).length == 0) &&
+            ((typeof(val.validateemptytext) != "string") || (val.validateemptytext != "true"))) {
+            return true;
+        }
+    }
+    var args = { Value:value, IsValid:true };
+    if (typeof(val.clientvalidationfunction) == "string") {
+        eval(val.clientvalidationfunction + "(val, args) ;");
+    }
+    return args.IsValid;
+}
+function RegularExpressionValidatorEvaluateIsValid(val) {
+    var value = ValidatorGetValue(val.controltovalidate);
+    if (ValidatorTrim(value).length == 0)
+        return true;
+    var rx = new RegExp(val.validationexpression);
+    var matches = rx.exec(value);
+    return (matches != null && value == matches[0]);
+}
+function ValidatorTrim(s) {
+    var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
+    return (m == null) ? "" : m[1];
+}
+function RequiredFieldValidatorEvaluateIsValid(val) {
+    return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue))
+}
+function RangeValidatorEvaluateIsValid(val) {
+    var value = ValidatorGetValue(val.controltovalidate);
+    if (ValidatorTrim(value).length == 0)
+        return true;
+    return (ValidatorCompare(value, val.minimumvalue, "GreaterThanEqual", val) &&
+            ValidatorCompare(value, val.maximumvalue, "LessThanEqual", val));
+}
+function ValidationSummaryOnSubmit(validationGroup) {
+    if (typeof(Page_ValidationSummaries) == "undefined")
+        return;
+    var summary, sums, s;
+    var headerSep, first, pre, post, end;
+    for (sums = 0; sums < Page_ValidationSummaries.length; sums++) {
+        summary = Page_ValidationSummaries[sums];
+        if (!summary) continue;
+        summary.style.display = "none";
+        if (!Page_IsValid && IsValidationGroupMatch(summary, validationGroup)) {
+            var i;
+            if (summary.showsummary != "False") {
+                summary.style.display = "";
+                if (typeof(summary.displaymode) != "string") {
+                    summary.displaymode = "BulletList";
+                }
+                switch (summary.displaymode) {
+                    case "List":
+                        headerSep = "
"; + first = ""; + pre = ""; + post = "
"; + end = ""; + break; + case "BulletList": + default: + headerSep = ""; + first = "
    "; + pre = "
  • "; + post = "
  • "; + end = "
"; + break; + case "SingleParagraph": + headerSep = " "; + first = ""; + pre = ""; + post = " "; + end = "
"; + break; + } + s = ""; + if (typeof(summary.headertext) == "string") { + s += summary.headertext + headerSep; + } + s += first; + for (i=0; i= 0) { + Page_Validators.splice(index, 1); + } + } + function addNormalizedAttribute(name, normalizedName) { + normalizedAttributes[name.toLowerCase()] = normalizedName; + } + function parseSpecificAttribute(selector, attribute, validatorsArray) { + return $(selector).find("[" + attribute + "='true']").each(function (index, element) { + addValidationExpando(element); + element.dispose = function () { dispose(element); element.dispose = null; }; + if ($.inArray(element, validatorsArray) === -1) { + validatorsArray.push(element); + } + }).length; + } + function parse(selector) { + var length = parseSpecificAttribute(selector, dataValidationAttribute, Page_Validators); + length += parseSpecificAttribute(selector, dataValidationSummaryAttribute, Page_ValidationSummaries); + return length; + } + function loadValidators() { + if (typeof (ValidatorOnLoad) === "function") { + ValidatorOnLoad(); + } + if (typeof (ValidatorOnSubmit) === "undefined") { + window.ValidatorOnSubmit = function () { + return Page_ValidationActive ? ValidatorCommonOnSubmit() : true; + }; + } + } + function registerUpdatePanel() { + if (window.Sys && Sys.WebForms && Sys.WebForms.PageRequestManager) { + var prm = Sys.WebForms.PageRequestManager.getInstance(), + postBackElement, endRequestHandler; + if (prm.get_isInAsyncPostBack()) { + endRequestHandler = function (sender, args) { + if (parse(document)) { + loadValidators(); + } + prm.remove_endRequest(endRequestHandler); + endRequestHandler = null; + }; + prm.add_endRequest(endRequestHandler); + } + prm.add_beginRequest(function (sender, args) { + postBackElement = args.get_postBackElement(); + }); + prm.add_pageLoaded(function (sender, args) { + var i, panels, valFound = 0; + if (typeof (postBackElement) === "undefined") { + return; + } + panels = args.get_panelsUpdated(); + for (i = 0; i < panels.length; i++) { + valFound += parse(panels[i]); + } + panels = args.get_panelsCreated(); + for (i = 0; i < panels.length; i++) { + valFound += parse(panels[i]); + } + if (valFound) { + loadValidators(); + } + }); + } + } + $(function () { + if (typeof (Page_Validators) === "undefined") { + window.Page_Validators = []; + } + if (typeof (Page_ValidationSummaries) === "undefined") { + window.Page_ValidationSummaries = []; + } + if (typeof (Page_ValidationActive) === "undefined") { + window.Page_ValidationActive = false; + } + $.WebFormValidator = { + addNormalizedAttribute: addNormalizedAttribute, + parse: parse + }; + if (parse(document)) { + loadValidators(); + } + registerUpdatePanel(); + }); + } (jQuery)); +} \ No newline at end of file diff --git a/MP-MAG/Views/Web.config b/MP-MAG/Views/Web.config index 7493f7c..2556b32 100644 --- a/MP-MAG/Views/Web.config +++ b/MP-MAG/Views/Web.config @@ -17,7 +17,7 @@ - + diff --git a/MP-MAG/Web.config b/MP-MAG/Web.config index 751dc68..863f53a 100644 --- a/MP-MAG/Web.config +++ b/MP-MAG/Web.config @@ -4,13 +4,27 @@ https://go.microsoft.com/fwlink/?LinkId=301879 --> + + +
+
+
+
+ + + + + + + + @@ -19,6 +33,25 @@ + + + + + + + + + + + + + + + + + + + @@ -27,6 +60,14 @@ + + + + + + + + @@ -308,4 +349,32 @@ + + + + + + + + + + + + + + + + + diff --git a/MP-MAG/WebUserControls/cmp_footer.ascx b/MP-MAG/WebUserControls/cmp_footer.ascx new file mode 100644 index 0000000..052ef42 --- /dev/null +++ b/MP-MAG/WebUserControls/cmp_footer.ascx @@ -0,0 +1,18 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_footer.ascx.cs" Inherits="MP_MAG.WebUserControls.cmp_footer" %> +
+
+
+
+ + +  |  + +
+
+ +
+
+ + +
+
diff --git a/MP-MAG/WebUserControls/cmp_footer.ascx.cs b/MP-MAG/WebUserControls/cmp_footer.ascx.cs new file mode 100644 index 0000000..bb83143 --- /dev/null +++ b/MP-MAG/WebUserControls/cmp_footer.ascx.cs @@ -0,0 +1,42 @@ +using SteamWare; +//using SteamWare.IO; +using System; +using System.Configuration; + +namespace MP_MAG.WebUserControls +{ + public partial class cmp_footer : System.Web.UI.UserControl + { + public event EventHandler eh_doRefresh; + protected void Page_Load(object sender, EventArgs e) + { + // sistemo le stringhe... + lblApp.Text = string.Format("{0} v.{1}", ConfigurationManager.AppSettings.Get("appName"), System.Reflection.Assembly.GetExecutingAssembly().GetName().Version); + setTimer(); + setClock(); + } + /// + /// imposta il tempo di scadenza del timer x il refresh della pagina (della parte top) per evitare che la sessione sul server scada + /// + private void setTimer() + { + Timer1.Interval = memLayer.ML.confReadInt("intUpdatePagina_ms"); + } + protected void Timer1_Tick(object sender, EventArgs e) + { + setClock(); + // se qualcuno ascolta sollevo evento nuovo valore... + if (eh_doRefresh != null) + { + eh_doRefresh(this, new EventArgs()); + } + } + + private void setClock() + { + lblDateTime.Text = DateTime.Now.ToString("ddd dd.MM.yyyy, HH:mm:ss"); + //lblCodOperatore.Text = $"{user_std.UtSn.CognomeNome} ({Page.User.Identity.Name})"; + lblCodOperatore.Text = $"{Page.User.Identity.Name}"; + } + } +} \ No newline at end of file diff --git a/MP-MAG/WebUserControls/cmp_footer.ascx.designer.cs b/MP-MAG/WebUserControls/cmp_footer.ascx.designer.cs new file mode 100644 index 0000000..441dd3d --- /dev/null +++ b/MP-MAG/WebUserControls/cmp_footer.ascx.designer.cs @@ -0,0 +1,53 @@ +//------------------------------------------------------------------------------ +// +// Codice generato da uno strumento. +// +// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se +// il codice viene rigenerato. +// +//------------------------------------------------------------------------------ + +namespace MP_MAG.WebUserControls +{ + + + public partial class cmp_footer + { + + /// + /// Controllo lblDateTime. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.Label lblDateTime; + + /// + /// Controllo lblCodOperatore. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.Label lblCodOperatore; + + /// + /// Controllo lblApp. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.Label lblApp; + + /// + /// Controllo Timer1. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.Timer Timer1; + } +} diff --git a/MP-MAG/WebUserControls/cmp_menuTop.ascx b/MP-MAG/WebUserControls/cmp_menuTop.ascx new file mode 100644 index 0000000..78aec3d --- /dev/null +++ b/MP-MAG/WebUserControls/cmp_menuTop.ascx @@ -0,0 +1,48 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_menuTop.ascx.cs" Inherits="MP_MAG.WebUserControls.cmp_menuTop" %> + + diff --git a/MP-MAG/WebUserControls/cmp_menuTop.ascx.cs b/MP-MAG/WebUserControls/cmp_menuTop.ascx.cs new file mode 100644 index 0000000..017c8cb --- /dev/null +++ b/MP-MAG/WebUserControls/cmp_menuTop.ascx.cs @@ -0,0 +1,131 @@ +using AppData; +using SteamWare; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MP_MAG.WebUserControls +{ + public partial class cmp_menuTop : System.Web.UI.UserControl + { + public event EventHandler eh_doRefresh; + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + searchVal = ""; + doSearch(); + updateTreeMenu(); + } + } + /// + /// imposta visibilità search globale + /// + public bool showSearch + { + get + { + return divSearch.Visible; + } + set + { + divSearch.Visible = value; + } + } + + protected void txtSearch_TextChanged(object sender, EventArgs e) + { + doSearch(); + } + + private void doSearch() + { + // se searchVal !="" + if (searchVal != "") + { + memLayer.ML.setSessionVal("valoreSearch", searchVal); + } + else + { + memLayer.ML.emptySessionVal("valoreSearch"); + } + // se qualcuno ascolta sollevo evento nuovo valore... + if (eh_doRefresh != null) + { + eh_doRefresh(this, new EventArgs()); + } + } + + /// + /// Valore ricerca attivo + /// + protected string searchVal + { + get + { + return txtSearch.Text.Trim(); + } + set + { + txtSearch.Text = value.Trim(); + } + } + /// + /// aggiornamento del menù + /// + private void updateTreeMenu() + { + try + { + if (string.IsNullOrEmpty(user_std.UtSn.mappaSito)) + { + Response.Redirect("Default", false); + } + XmlMenu.Data = user_std.UtSn.mappaSito; + XmlMenu.XPath = "mainMenu/menu"; + XmlMenu.DataBind(); + } + catch + { + Response.Redirect("Default", false); + } + } + /// + /// click su pagina corrente, fa update! + /// + /// + /// + protected void lbnUpdate_Click(object sender, EventArgs e) + { + doDataUpdate(true); + } + /// + /// effettua un update completo dei valori in sessione + /// + private void doDataUpdate(bool doFullReset) + { + if (doFullReset) + { + // aggiorno vocabolario + DataWrap.DW.resetVocabolario(); + // reset dati in cache x DbConfig... + memLayer.ML.resetAppConf(); + // svuoto session e cache per rileggere i dati da Db + Session.RemoveAll(); + memLayer.ML.setSessionVal("nextPage", user_std.pagCorrente); + Response.Redirect("login"); + } + else + { + Response.Redirect(user_std.pagCorrente); + } + } + protected void lbtSearch_Click(object sender, EventArgs e) + { + doSearch(); + } + } +} \ No newline at end of file diff --git a/MP-MAG/WebUserControls/cmp_menuTop.ascx.designer.cs b/MP-MAG/WebUserControls/cmp_menuTop.ascx.designer.cs new file mode 100644 index 0000000..0d210cb --- /dev/null +++ b/MP-MAG/WebUserControls/cmp_menuTop.ascx.designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// Codice generato da uno strumento. +// +// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se +// il codice viene rigenerato. +// +//------------------------------------------------------------------------------ + +namespace MP_MAG.WebUserControls +{ + + + public partial class cmp_menuTop + { + + /// + /// Controllo lbnUpdate. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.LinkButton lbnUpdate; + + /// + /// Controllo menu. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.Repeater menu; + + /// + /// Controllo XmlMenu. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.XmlDataSource XmlMenu; + + /// + /// Controllo divSearch. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divSearch; + + /// + /// Controllo txtSearch. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.TextBox txtSearch; + + /// + /// Controllo lbtSearch. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.LinkButton lbtSearch; + } +} diff --git a/MP-MAG/fonts/FontAwesome.otf b/MP-MAG/fonts/FontAwesome.otf new file mode 100644 index 0000000..401ec0f Binary files /dev/null and b/MP-MAG/fonts/FontAwesome.otf differ diff --git a/MP-MAG/fonts/fontawesome-webfont.eot b/MP-MAG/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/MP-MAG/fonts/fontawesome-webfont.eot differ diff --git a/MP-MAG/fonts/fontawesome-webfont.svg b/MP-MAG/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/MP-MAG/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MP-MAG/fonts/fontawesome-webfont.ttf b/MP-MAG/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/MP-MAG/fonts/fontawesome-webfont.ttf differ diff --git a/MP-MAG/fonts/fontawesome-webfont.woff b/MP-MAG/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/MP-MAG/fonts/fontawesome-webfont.woff differ diff --git a/MP-MAG/fonts/fontawesome-webfont.woff2 b/MP-MAG/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/MP-MAG/fonts/fontawesome-webfont.woff2 differ diff --git a/MP-MAG/mongocrypt.dll b/MP-MAG/mongocrypt.dll deleted file mode 100644 index 3cc3634..0000000 Binary files a/MP-MAG/mongocrypt.dll and /dev/null differ diff --git a/MP-MAG/packages.config b/MP-MAG/packages.config index 13d1a25..35f52e9 100644 --- a/MP-MAG/packages.config +++ b/MP-MAG/packages.config @@ -1,16 +1,29 @@  + + + + + + + + + + + + + @@ -24,6 +37,7 @@ + @@ -32,13 +46,14 @@ + - +