Your IP : 18.118.210.6
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mgr="http://ispsystem.com/xslplugin" exclude-result-prefixes="mgr">
<xsl:output method="html" encoding="UTF-8" indent="yes"></xsl:output>
<xsl:variable name="theme" select="/doc/@theme"></xsl:variable>
<xsl:variable name="binary" select="/doc/@binary"></xsl:variable>
<xsl:variable name="logo" select="/doc/@logo"></xsl:variable>
<xsl:variable name="localdir" select="/doc/@localdir"></xsl:variable>
<xsl:variable name="themepath">
<xsl:value-of select="concat($theme, $localdir)"></xsl:value-of>
</xsl:variable>
<xsl:variable name="host" select="/doc/@host"></xsl:variable>
<xsl:variable name="hostname" select="/doc/user/@hostname"></xsl:variable>
<xsl:variable name="msg" select="/doc/messages"></xsl:variable>
<xsl:variable name="redirect" select="/doc/loginform/redirect"></xsl:variable>
<xsl:variable name="lang" select="/doc/loginform/@lang"></xsl:variable>
<xsl:variable name="baseurl" select="concat(/doc/@host, /doc/@binary)"></xsl:variable>
<xsl:variable name="title" select="key('msg', 'title')"></xsl:variable>
<xsl:variable name="startform1">
<xsl:call-template name="replace">
<xsl:with-param name="input" select="/doc/mainmenu/@startform"></xsl:with-param>
<xsl:with-param name="from" select="'>'"></xsl:with-param>
<xsl:with-param name="to" select="'&gt;'"></xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="startform">
<xsl:call-template name="replace">
<xsl:with-param name="input" select="$startform1"></xsl:with-param>
<xsl:with-param name="from" select="'<'"></xsl:with-param>
<xsl:with-param name="to" select="'&lt;'"></xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="starttab1">
<xsl:call-template name="replace">
<xsl:with-param name="input" select="/doc/mainmenu/@starttab"></xsl:with-param>
<xsl:with-param name="from" select="'>'"></xsl:with-param>
<xsl:with-param name="to" select="'&gt;'"></xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="starttab">
<xsl:call-template name="replace">
<xsl:with-param name="input" select="$starttab1"></xsl:with-param>
<xsl:with-param name="from" select="'<'"></xsl:with-param>
<xsl:with-param name="to" select="'&lt;'"></xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="startformdrawer1">
<xsl:call-template name="replace">
<xsl:with-param name="input" select="/doc/mainmenu/@startformdrawer"></xsl:with-param>
<xsl:with-param name="from" select="'>'"></xsl:with-param>
<xsl:with-param name="to" select="'&gt;'"></xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="startformdrawer">
<xsl:call-template name="replace">
<xsl:with-param name="input" select="$startformdrawer1"></xsl:with-param>
<xsl:with-param name="from" select="'<'"></xsl:with-param>
<xsl:with-param name="to" select="'&lt;'"></xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="startpage1">
<xsl:call-template name="replace">
<xsl:with-param name="input" select="/doc/mainmenu/@startpage"></xsl:with-param>
<xsl:with-param name="from" select="'>'"></xsl:with-param>
<xsl:with-param name="to" select="'&gt;'"></xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="startpage">
<xsl:call-template name="replace">
<xsl:with-param name="input" select="$startpage1"></xsl:with-param>
<xsl:with-param name="from" select="'<'"></xsl:with-param>
<xsl:with-param name="to" select="'&lt;'"></xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="/doc/@binary != '/ispmgr' and /doc/@binary != '/manager/ispmgr'">
<script>
window.location = '?theme=orion';
</script>
</xsl:when>
<xsl:when test="/doc/ok and /doc/ok/@type = 'url'">
<script>
window.location = '<xsl:value-of select="/doc/ok" disable-output-escaping="yes"/>';
</script>
</xsl:when>
<xsl:otherwise>
<xsl:text disable-output-escaping="yes"><!DOCTYPE html></xsl:text>
<html lang="{/doc/@lang}">
<head>
<meta charset="utf-8"/>
<title>
<xsl:choose> <xsl:when test="$title != ''"><xsl:value-of
select="$title"></xsl:value-of></xsl:when> <xsl:otherwise><xsl:value-of
select="/doc/user/@hostname"></xsl:value-of></xsl:otherwise> </xsl:choose>
</title>
<base href="{$binary}"/>
<meta name="viewport" content="width=device-width, user-scalable=no"/>
<script>
let colorScheme = localStorage.getItem('isp_color_scheme');
if (!colorScheme) {
colorScheme = 'light';
localStorage.setItem('isp_color_scheme', colorScheme);
} else if (colorScheme === 'auto') {
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
colorScheme = 'dark';
} else {
colorScheme = 'light';
}
}
document.documentElement.setAttribute('data-color-scheme', colorScheme);
</script>
<link rel="manifest" href="{$theme}manifest.ispmgr.webmanifest"/>
<link id="favicon" rel="shortcut icon" href="{$themepath}{/doc/@favicon}" type="image/gif"/>
<meta name="theme-color" content="#333333"/>
<script type="text/javascript">
/** pollifyll for entries */
if (!Object.entries) {
Object.entries = function( obj ){
var ownProps = Object.keys( obj ),
i = ownProps.length,
resArray = new Array(i); // preallocate the Array
while (i--)
resArray[i] = [ownProps[i], obj[ownProps[i]]];
return resArray;
};
}
</script>
<script type="text/javascript">
var pageInfo = {
isBranding: <xsl:choose><xsl:when test="/doc/@localdir = 'default/'">0</xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose>,
theme: "<xsl:value-of select="/doc/@theme"/>",
baseUrl: "<xsl:value-of select="$baseurl"/>",
commonPath: "/manimg/common/",
level: "<xsl:value-of select="/doc/mainmenu/@level"/>",
product: "<xsl:value-of select="/doc/product"/>",
version: "<xsl:value-of select="/doc/version/core"/>",
version_ispmanager: "<xsl:value-of select="/doc/version/ispmgr"/>",
userName: "<xsl:value-of select="/doc/user/@name"/>",
licid: "<xsl:value-of select="/doc/@licid"/>",
userid: "<xsl:value-of select="/doc/user/@userid"/>",
startpage: '<xsl:value-of select="$startpage"/>',
startform: '<xsl:value-of select="mgr:fixquote($startform)"/>',
startformdrawer: '<xsl:value-of select="mgr:fixquote($startformdrawer)"/>',
starttab: '<xsl:value-of select="mgr:fixquote($starttab)"/>',
binary: '<xsl:value-of select="$binary"/>',
isModernmenu: Boolean(<xsl:if test="/doc/mainmenu/modernmenu/node">1</xsl:if>),
};
const themePath = '<xsl:value-of select="$host"/>' + '<xsl:value-of select="$themepath"/>'
const logo = '<xsl:value-of select="/doc/@logo"/>';
const appearance = '<xsl:value-of select="/doc/@appearance"/>';
if (!appearance || logo !== 'logo-ispmgr.svg') {
pageInfo.topBarLogo = `${themePath}${logo}`;
} else {
pageInfo.topBarLogo = `${themePath}${appearance}_${logo}`;
}
</script>
<!--insert from branding-->
<xsl:value-of select="/doc/addon/head/text()" disable-output-escaping="yes"></xsl:value-of>
<link rel="stylesheet" href="/manimg/dragon/styles-DDMIH4FB.css"/></head>
<body class="isp-main-panel-body">
<div id="browser-too-old" style="display:none; color: red; padding: 20px;">
<xsl:value-of select="$msg/msg[@name='browser_support']"></xsl:value-of>
</div>
<isp-root></isp-root>
<noscript>Please enable JavaScript to continue using this
application.</noscript>
<!--insert from branding-->
<xsl:value-of select="/doc/addon/body/text()" disable-output-escaping="yes"></xsl:value-of>
<script>
!function(e,n,t){function r(e,n){return typeof e===n}function s(){var e,n,t,s,o,i,l;for(var a in w)if(w.hasOwnProperty(a)){if(e=[],n=w[a],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;t<n.options.aliases.length;t++)e.push(n.options.aliases[t].toLowerCase());for(s=r(n.fn,"function")?n.fn():n.fn,o=0;o<e.length;o++)i=e[o],l=i.split("."),1===l.length?Modernizr[l[0]]=s:(!Modernizr[l[0]]||Modernizr[l[0]]instanceof Boolean||(Modernizr[l[0]]=new Boolean(Modernizr[l[0]])),Modernizr[l[0]][l[1]]=s),C.push((s?"":"no-")+l.join("-"))}}function o(e){var n=_.className,t=Modernizr._config.classPrefix||"";if(x&&(n=n.baseVal),Modernizr._config.enableJSClass){var r=new RegExp("(^|\\s)"+t+"no-js(\\s|$)");n=n.replace(r,"$1"+t+"js$2")}Modernizr._config.enableClasses&&(n+=" "+t+e.join(" "+t),x?_.className.baseVal=n:_.className=n)}function i(e,n){return!!~(""+e).indexOf(n)}function l(e,n){return function(){return e.apply(n,arguments)}}function a(e,n,t){var s;for(var o in e)if(e[o]in n)return t===!1?e[o]:(s=n[e[o]],r(s,"function")?l(s,t||n):s);return!1}function u(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):x?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}function f(e){return e.replace(/([a-z])-([a-z])/g,function(e,n,t){return n+t.toUpperCase()}).replace(/^-/,"")}function c(e){return e.replace(/([A-Z])/g,function(e,n){return"-"+n.toLowerCase()}).replace(/^ms-/,"-ms-")}function d(n,t,r){var s;if("getComputedStyle"in e){s=getComputedStyle.call(e,n,t);var o=e.console;if(null!==s)r&&(s=s.getPropertyValue(r));else if(o){var i=o.error?"error":"log";o[i].call(o,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}}else s=!t&&n.currentStyle&&n.currentStyle[r];return s}function p(){var e=n.body;return e||(e=u(x?"svg":"body"),e.fake=!0),e}function m(e,t,r,s){var o,i,l,a,f="modernizr",c=u("div"),d=p();if(parseInt(r,10))for(;r--;)l=u("div"),l.id=s?s[r]:f+(r+1),c.appendChild(l);return o=u("style"),o.type="text/css",o.id="s"+f,(d.fake?d:c).appendChild(o),d.appendChild(c),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(n.createTextNode(e)),c.id=f,d.fake&&(d.style.background="",d.style.overflow="hidden",a=_.style.overflow,_.style.overflow="hidden",_.appendChild(d)),i=t(c,e),d.fake?(d.parentNode.removeChild(d),_.style.overflow=a,_.offsetHeight):c.parentNode.removeChild(c),!!i}function g(n,r){var s=n.length;if("CSS"in e&&"supports"in e.CSS){for(;s--;)if(e.CSS.supports(c(n[s]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var o=[];s--;)o.push("("+c(n[s])+":"+r+")");return o=o.join(" or "),m("@supports ("+o+") { #modernizr { position: absolute; } }",function(e){return"absolute"==d(e,null,"position")})}return t}function y(e,n,s,o){function l(){c&&(delete T.style,delete T.modElem)}if(o=r(o,"undefined")?!1:o,!r(s,"undefined")){var a=g(e,s);if(!r(a,"undefined"))return a}for(var c,d,p,m,y,v=["modernizr","tspan","samp"];!T.style&&v.length;)c=!0,T.modElem=u(v.shift()),T.style=T.modElem.style;for(p=e.length,d=0;p>d;d++)if(m=e[d],y=T.style[m],i(m,"-")&&(m=f(m)),T.style[m]!==t){if(o||r(s,"undefined"))return l(),"pfx"==n?m:!0;try{T.style[m]=s}catch(h){}if(T.style[m]!=y)return l(),"pfx"==n?m:!0}return l(),!1}function v(e,n,t,s,o){var i=e.charAt(0).toUpperCase()+e.slice(1),l=(e+" "+E.join(i+" ")+i).split(" ");return r(n,"string")||r(n,"undefined")?y(l,n,s,o):(l=(e+" "+P.join(i+" ")+i).split(" "),a(l,n,t))}function h(e,n,r){return v(e,t,t,n,r)}var C=[],w=[],S={_version:"3.6.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){w.push({name:e,fn:n,options:t})},addAsyncTest:function(e){w.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=S,Modernizr=new Modernizr;var _=n.documentElement,x="svg"===_.nodeName.toLowerCase(),b="Moz O ms Webkit",E=S._config.usePrefixes?b.split(" "):[];S._cssomPrefixes=E;var P=S._config.usePrefixes?b.toLowerCase().split(" "):[];S._domPrefixes=P;var z={elem:u("modernizr")};Modernizr._q.push(function(){delete z.elem});var T={style:z.elem.style};Modernizr._q.unshift(function(){delete T.style}),S.testAllProps=v,S.testAllProps=h,Modernizr.addTest("cssgridlegacy",h("grid-columns","10px",!0)),Modernizr.addTest("cssgrid",h("grid-template-rows","none",!0)),Modernizr.addTest("customelements","customElements"in e),s(),o(C),delete S.addTest,delete S.addAsyncTest;for(var N=0;N<Modernizr._q.length;N++)Modernizr._q[N]();e.Modernizr=Modernizr}(window,document);
if (!Modernizr.customelements || !Modernizr.cssgrid) {
/** var for support old browser */
var browserBanner = document.getElementById('browser-too-old');
if (browserBanner) {
browserBanner.style.display = 'block';
}
}
</script>
<div id="isp-skeleton-loader" class="loader">
<style>
.loader#isp-skeleton-loader {
position: absolute;
inset: 0;
z-index: var(--isp-z-index-skeleton-loader);
display: flex;
flex-direction: column;
min-width: 960px;
height: 100%;
opacity: 1;
transition: opacity 500ms ease-out;
}
.loader_hidden {
opacity: 0;
}
.loader__top-bar {
height: 45px;
background-color: var(--isp-c-darth-vader);
}
.top-bar {
--isp-skeleton-main-color: var(--isp-c-creepy-cloud);
--isp-skeleton-blink-color: var(--isp-c-stranger-things);
display: flex;
padding-right: 20px;
}
.top-bar__logo {
display: flex;
align-items: center;
justify-items: center;
width: 275px;
padding: 10px 20px;
}
.top-bar__logo-image {
width: 100%;
height: 100%;
object-fit: contain;
object-position: left top;
}
.top-bar__tabs {
display: flex;
gap: 5px;
padding: 10px 30px;
}
.top-bar__user {
display: flex;
gap: 5px;
margin-left: auto;
padding: 10px 0;
}
.loader__content {
display: flex;
flex: 1;
}
.loader__side-bar {
width: 275px;
height: 100%;
overflow: hidden;
background-color: var(--isp-dc-mimic);
}
.loader_collapsed .loader__side-bar {
width: 65px;
}
.side-bar {
--isp-skeleton-main-color: var(--isp-dc-reincarnation);
--isp-skeleton-blink-color: var(--isp-dc-norilsk);
}
.side-bar__buttons {
display: flex;
flex-direction: row;
justify-content: space-between;
height: 55px;
padding: 30px 20px 0;
}
.side-bar__tabs {
display: flex;
flex-direction: row;
gap: 5px;
}
.loader_collapsed .side-bar__buttons > *:not(:first-child) {
display: none;
}
.side-bar__menu {
display: flex;
flex-direction: column;
gap: 15px;
margin-top: 30px;
padding: 0 20px;
}
.side-bar__menu-item {
display: flex;
gap: 10px;
height: 15px;
}
.side-bar__menu-item > :first-child {
flex-shrink: 0;
}
.loader_collapsed .side-bar__menu-item {
gap: 0;
justify-content: center;
}
.loader_collapsed .side-bar__menu-item > *:not(:first-child) {
display: none;
}
.loader__main-page {
display: flex;
justify-content: center;
align-items: center;
flex: 1;
}
.skeleton {
position: relative;
display: block;
width: var(--w, 100%);
height: var(--h, 100%);
animation: blink 1.5s ease-in-out infinite alternate;
animation-delay: calc(200ms * var(--i, 0) + 50ms);
border-radius: var(--isp-border-radius-main);
background-color: var(
--isp-skeleton-main-color,
var(--isp-dc-norilsk)
);
}
.skeleton_circle {
border-radius: 50%;
}
@keyframes blink {
0% {
background-color: var(
--isp-skeleton-main-color,
var(--isp-dc-norilsk)
);
}
100% {
background-color: var(
--isp-skeleton-blink-color,
var(--isp-dc-reincarnation)
);
}
}
</style>
<div class="loader__top-bar top-bar">
<div class="top-bar__logo">
<img id="isp-skeleton-loader__image" class="top-bar__logo-image"/>
</div>
<div class="top-bar__tabs">
<span class="skeleton" style="--i: 1; --w: 35px"></span>
<span class="skeleton" style="--i: 2; --w: 90px"></span>
<span class="skeleton" style="--i: 3; --w: 90px"></span>
</div>
<div class="top-bar__user">
<span class="skeleton" style="--i: 9; --w: 25px"></span>
<span class="skeleton" style="--i: 10; --w: 25px"></span>
<span class="skeleton" style="--i: 11; --w: 25px"></span>
<span class="skeleton" style="--i: 12; --w: 70px"></span>
</div>
</div>
<div class="loader__content">
<div class="loader__side-bar side-bar">
<div class="side-bar__buttons">
<span class="skeleton" style="--i: 2; --w: 25px"></span>
<div id="sidebar-tabs-skeleton" class="side-bar__tabs">
<span class="skeleton" style="--i: 3; --w: 25px"></span>
<span class="skeleton" style="--i: 4; --w: 25px"></span>
<span class="skeleton" style="--i: 5; --w: 25px"></span>
</div>
<span class="skeleton" style="--i: 6; --w: 25px"></span>
</div>
<div class="side-bar__menu">
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 7; --w: 15px"></span>
<span class="skeleton" style="--i: 8; --w: 160px"></span>
</div>
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 9; --w: 15px"></span>
<span class="skeleton" style="--i: 10; --w: 200px"></span>
</div>
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 11; --w: 15px"></span>
<span class="skeleton" style="--i: 12; --w: 120px"></span>
</div>
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 13; --w: 15px"></span>
<span class="skeleton" style="--i: 14; --w: 160px"></span>
</div>
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 15; --w: 15px"></span>
<span class="skeleton" style="--i: 16; --w: 130px"></span>
</div>
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 17; --w: 15px"></span>
<span class="skeleton" style="--i: 18; --w: 180px"></span>
</div>
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 19; --w: 15px"></span>
<span class="skeleton" style="--i: 20; --w: 80px"></span>
</div>
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 21; --w: 15px"></span>
<span class="skeleton" style="--i: 22; --w: 120px"></span>
</div>
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 23; --w: 15px"></span>
<span class="skeleton" style="--i: 24; --w: 140px"></span>
</div>
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 25; --w: 15px"></span>
<span class="skeleton" style="--i: 26; --w: 170px"></span>
</div>
<div class="side-bar__menu-item">
<span class="skeleton skeleton_circle" style="--i: 27; --w: 15px"></span>
<span class="skeleton" style="--i: 28; --w: 130px"></span>
</div>
</div>
</div>
<div class="loader__main-page"></div>
</div>
<script>
const userName = pageInfo.userName || 'anonymous';
const menuState = JSON.parse(
localStorage.getItem(`isp_main_menu_state__${userName}`),
);
const hasMenuState = Boolean(menuState && menuState.hasOwnProperty('menuExpanded'));
const isExpanded = hasMenuState ? menuState.menuExpanded : true;
if (!isExpanded) {
document
.getElementById('isp-skeleton-loader')
.classList.add('loader_collapsed');
}
if (pageInfo.topBarLogo) {
document.getElementById('isp-skeleton-loader__image').src =
pageInfo.topBarLogo;
}
if(pageInfo.isModernmenu){
document.getElementById('sidebar-tabs-skeleton').remove();
}
</script>
</div>
<link rel="modulepreload" href="/manimg/dragon/chunk-P5ECH4E2.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-ZTSJF7T7.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-LEQN3D2Q.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-PK74BOF4.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-UIMIPCPG.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-BKOP7W6P.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-EI5KBZMB.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-WUJDRKKX.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-25EXV7IU.js"/><link rel="modulepreload" href="/manimg/dragon/chunk-CPXWTLES.js"/><script src="/manimg/dragon/polyfills-LGTYHHQW.js" type="module"></script><script src="/manimg/dragon/main-5U3L6IFR.js" type="module"></script></body>
</html>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- replace function -->
<xsl:template name="replace">
<xsl:param name="input"></xsl:param>
<xsl:param name="from"></xsl:param>
<xsl:param name="to"></xsl:param>
<xsl:choose>
<xsl:when test="contains($input, $from)">
<xsl:value-of select="substring-before($input, $from)"></xsl:value-of>
<xsl:value-of select="$to"></xsl:value-of>
<xsl:call-template name="replace">
<xsl:with-param name="input" select="substring-after($input, $from)"></xsl:with-param>
<xsl:with-param name="from" select="$from"></xsl:with-param>
<xsl:with-param name="to" select="$to"></xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$input"></xsl:value-of>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>