PageSourceSearch

https://www.codecrafters.com/chunk-7DYUEB3W.js

js codecrafters.com collected 2026-10-09 00:56:29 UTC 172,584 bytes, 17 lines download raw bytes

1import{A as g_,Aa as rn,Ba as an,Ca as ln,Da as Tn,E as N,Ea as An,Fa as Pn,G as Ue,Ga as dn,Ha as On,J as we,N as Kt,V as Qt,Y as rt,Z as Le,a as R_,b as M,d as l,e as P,ea as m_,f as M_,fa as jt,ga as le,ha as $,l as r,la as Jt,m as _,ma as Zt,n as e,na as en,o as s,oa as _n,pa as tn,qa as nn,r as H,ra as on,s as Y,t,ta as Te,u as Ge,ua as Sn,v as ve,va as sn,w as st,wa as j,x as F_,xa as Q,z as f_,za as b}from"./chunk-2JXCJT4B.js";var En=()=>["/","AbilityFTPServer","BuyNow"],Ae=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-link-afs-buy-now"]],decls:2,vars:2,consts:()=>{let S;return S=$localize`Buy now`,[S,[3,"route"]]},template:function(n,i){n&1&&(_(0,"app-link",1),t(1,0),e()),n&2&&r("route",Ue(1,En))},dependencies:[Le],encapsulation:2})}}return o})();var un=()=>["/","AbilityFTPServer","Download"],Pe=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-link-afs-download"]],decls:2,vars:2,consts:()=>{let S;return S=$localize`Download`,[S,[3,"route"]]},template:function(n,i){n&1&&(_(0,"app-link",1),t(1,0),e()),n&2&&r("route",Ue(1,un))},dependencies:[Le],encapsulation:2})}}return o})();var Nn=["*"],cn=()=>["/","AbilityFTPServer","Features"];function Cn(o,hn){o&1&&(_(0,"span"),t(1,0),e())}var ae=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-link-afs-features"]],ngContentSelectors:Nn,decls:3,vars:2,consts:()=>{let S;return S=$localize`Features`,[S,[3,"route"]]},template:function(n,i){n&1&&(f_(),_(0,"app-link",1),g_(1,0,null,Cn,2,0),e()),n&2&&r("route",Ue(1,cn))},dependencies:[Le],encapsulation:2})}}return o})();var Rn=()=>["/","AbilityFTPServer"],Oe=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-link-afs-overview"]],decls:2,vars:2,consts:()=>{let S;return S=$localize`Overview`,[S,[3,"route"]]},template:function(n,i){n&1&&(_(0,"app-link",1),t(1,0),e()),n&2&&r("route",Ue(1,Rn))},dependencies:[Le],encapsulation:2})}}return o})();var G=(()=>{class o{constructor(){this.support=we(),this.text=we(),this.bookmark=we()}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-link-afs-support"]],inputs:{support:[1,"support"],text:[1,"text"],bookmark:[1,"bookmark"]}
1,decls:1,vars:3,consts:[["product","AbilityFTPServer",3,"support","text","bookmark"]],template:function(n,i){n&1&&s(0,"app-link-support",0),n&2&&r("support",i.support())("text",i.text())("bookmark",i.bookmark())},dependencies:[Jt],encapsulation:2})}}return o})();var Mn=["*"],U=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-support-footer"]],ngContentSelectors:Mn,decls:2,vars:1,consts:[["product","AbilityFTPServer",3,"supports"]],template:function(n,i){n&1&&(f_(),_(0,"app-nav-footer",0),g_(1),e()),n&2&&r("supports",i.afsSupportService.Supports)},dependencies:[Te],encapsulation:2})}}return o})();var h_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-activity"]],decls:32,vars:5,consts:()=>{let S;S=$localize`Activity`;let n;n=$localize`Activity`;let i;i=$localize` The activity page allows you to analyze usage patterns through 3 detailed graphs. The graphs also automatically adjust and scale according to the current data range. To adjust the displayed data, simply tick or un-tick the appropriate options within the legend and select a filter method from the drop down list. The storage lifetime of activity data is adjustable from within the ${"\uFFFD#4\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: settings.
2`;let O;O=$localize`Time range`;let p;p=$localize` This allows you to select the time range in which to display the data. Most of the filter options which begin with 'Last' will enable the graphs to automatically update. The bottom 'Custom' filter option allows you to customize the exact time range. `;let u;u=$localize`Data graph`;let E;E=$localize`This graph displays data flows in and out of the FTP server.`;let R;R=$localize`Connections graph`;let F;F=$localize`This graph displays connection events such as number of connections, SSL hand shakes and logins.`;let f;f=$localize`File graph`;let c;return c=$localize`This graph displays file events such as uploads / downloads, folder viewing and deletions.`,[n,i,O,p,u,E,R,F,f,c,[3,"supp
2ort"],["header",S,"bookmark","activity","image","afs/Activity.png","imageFull","afs/AFSMain.png"],["header",""]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),H(3,1),s(4,"app-link-afs-support",10),Y(),e(),_(5,"app-support-section",11)(6,"app-support-list")(7,"app-support-item")(8,"span",12),t(9,2),e(),_(10,"span"),t(11,3),e()(),_(12,"app-support-item")(13,"span",12),t(14,4),e(),_(15,"span"),t(16,5),e()(),_(17,"app-support-item")(18,"span",12),t(19,6),e(),_(20,"span"),t(21,7),e()(),_(22,"app-support-item")(23,"span",12),t(24,8),e(),_(25,"span"),t(26,9),e()()()(),_(27,"app-afs-support-footer"),s(28,"app-link-afs-support",10)(29,"app-link-afs-support",10)(30,"app-link-afs-support",10)(31,"app-link-afs-support",10),e()),n&2&&(l(4),r("support",i.afsSupportService.Admin),l(24),r("support",i.afsSupportService.Admin),l(),r("support",i.afsSupportService.Status),l(),r("support",i.afsSupportService.Sessions),l(),r("support",i.afsSupportService.Logs))},dependencies:[G,b,Q,j,U],encapsulation:2})}}return o})();var I_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-admin"]],decls:102,vars:1,consts:()=>{let S;S=$localize`Admin`;let n;n=$localize`IP address control`;let i;i=$localize`IP address control entry`;let O;O=$localize`Admin`;let p;p=$localize`These settings control administration of the FTP server and overall management of startup and data recording services.`;let u;u=$localize`Admin ports`;let E;E=$localize` This option controls what port the administration control service listens on. This value should be entered into remote administration clients when attempting to connect to the service. This option allows multiple ports and also for ports to listen on a single IP address. Please enter multiple ports in the format: "port1;port2:port3;ip;host". `;let R;R=$localize`Admin user`;let F;F=$localize`This is the username that is required by remote administration clients.`;let f;f=$localize`Admin password`;let c;c=$localize`This is the password that is required by remote administration clients.`;let g;g=$localize`Settings auto reload interval (minutes)`;let m;m=$localize` This value controls how often the settings are reloaded into the FTP server. If you intend to perform external manipulation of the settings or use clustering, a lower value is recommended. `;let L;L=$localize`Auto delete monitoring data after (days)`;let h;h=$localize` This value controls the maximum lifetime of activity and session data. This ensures that the FTP server will be restricted in how much data it can collect over time. `;let X;X=$localize`Auto delete logs data after (days)`;let x;x=$localize`This value controls the maximum lifetime of log data. This ensures that the FTP server will be restricted in how much data it can collect over time.`;let V;V=$localize`Auto activate`;let A;A=$localize`When the FTP server service first loads, this option will control whether it is activated by default. It is recommended that you enable this option.`;let B;B=$localize`Auto load tray icon`;let q;q=$localize` This option controls whether the administration client application is pre-loaded when a user logs into Windows. This allows for quick loading of the administration client and also the presence of a system tray icon. `;let K;K=$localize`Enable IP address control`;let C;C=$localize`If enabled, the entries within the list box will be enforced.`;let y;y=$localize`IP address control`;let w;w=$localize` This is the list of allowed and denied IP addresses, in order of execution from top to bottom. If an entry matches the client IP address, then the provided 'Allow' or 'Deny' option will be enforced. `;let J;J=$localize`Allow`;let Z;Z=$localize`If selected, and the provided IP address or range matches the connection's IP address, then the connection will be allowed access.`;let ee;ee=$localize`Deny`;let v;v=$localize`If selected, and the provided IP address or range matches the connection's IP address, then the connection will be denied access and disconnected.`;let _e;_e=$localize`IP address`;let te;te=$localize`Will evaluate true if the connection's IP address exactly matches this IP address.`;let ne;ne=$localize`IP address and subnet mask`;let oe;oe=$localize`Will evaluate true if the connection's IP address matches this IP address. Both IP addresses will be filtered by the provided subnet mask before comparison.`;let ie;ie=$localize`IP address range`;let d;d=$localize`Will evaluate true if the connection's IP address falls between the provided IP addresses.`;let k;k=$localize`IP address of host or domain`;let Se;Se=$localize`Will evaluate true if the connection's IP address matches one of the IP addresses of the provided host or domain.`;let se;se=$localize`Reverse IP address lookup matches`;let re;re=$localize` Will evaluate true if the connection's reverse IP address lookup matches the provided host or domain. This match allows the use of asterisks (e.g. *.codecrafters.com). `;let D;D=$localize`Any locally assigned IP address`;let de;return de=$localize`Will evaluate true if the connection is local (i.e. the client and server processes are running on the same computer).`,[O,p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,y,w,J,Z,ee,v,_e,te,ne,oe,ie,d,k,Se,se,re,D,de,["header",S,"bookmark","admin","image","afs/Admin.png"],["header",""],["header",n,"bookmark","ip-control","image","afs/AdminIPControl.png"],["header",i,"bookmark","ip-control-entry","image","afs/IPControlEntry.png"],[3,"supp
2ort"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",38)(5,"app-support-list")(6,"app-support-item")(7,"span",39),t(8,2),e(),_(9,"span"),t(10,3),e()(),_(11,"app-support-item")(12,"span",39),t(13,4),e(),_(14,"span"),t(15,5),e()(),_(16,"app-support-item")(17,"span",39),t(18,6),e(),_(19,"span"),t(20,7),e()(),_(21,"app-support-item")(22,"span",39),t(23,8),e(),_(24,"span"),t(25,9),e()(),_(26,"app-support-item")(27,"span",39),t(28,10),e(),_(29,"span"),t(30,11),e()(),_(31,"app-support-item")(32,"span",39),t(33,12),e(),_(34,"span"),t(35,13),e()(),_(36,"app-support-item")(37,"span",39),t(38,14),e(),_(39,"span"),t(40,15),e()(),_(41,"app-support-item")(42,"span",39),t(43,16),e(),_(44,"span"),t(45,17),e()()()(),_(46,"app-support-section",40)(47,"app-support-list")(48,"app-support-item")(49,"span",39),t(50,18),e(),_(51,"span"),t(52,19),e()(),_(53,"app-support-item")(54,"span",39),t(55,20),e(),_(56,"span"),t(57,21),e()()()(),_(58,"app-support-section",41)(59,"app-support-list")(60,"app-support-item")(61,"span",39),t(62,22),e(),_(63,"span"),t(64,23),e()(),_(65,"app-support-item")(66,"span",39),t(67,24),e(),_(68,"span"),t(69,25),e()(),_(70,"app-support-item")(71,"span",39),t(72,26),e(),_(73,"span"),t(74,27),e()(),_(75,"app-support-item")(76,"span",39),t(77,28),e(),_(78,"span"),t(79,29),e()(),_(80,"app-support-item")(81,"span",39),t(82,30),e(),_(83,"span"),t(84,31),e()(),_(85,"app-support-item")(86,"span",39),t(87,32),e(),_(88,"span"),t(89,33),e()(),_(90,"app-support-item")(91,"span",39),t(92,34),e(),_(93,"span"),t(94,35),e()(),_(95,"app-support-item")(96,"span",39),t(97,36),e(),_(98,"span"),t(99,37),e()()()(),_(100,"app-afs-support-footer"),s(101,"app-link-afs-support",42),e()),n&2&&(l(101),r("support",i.afsSupportService.TutorialINIFiles))},dependencies:[b,Q,j,U,G],encapsulation:2})}}return o})();var $_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-connect"]],decls:45,vars:1,consts:()=>{let S;S=$localize`Servers`;let n;n=$localize`Remote server`;let i;i=$localize`Connect`;let O;O=$localize` By default the administration interface will manage the locally installed FTP server. However, the key benefit of a separate administration interface is that you can fully control the FTP server from any location. From a remote location you have access to all the same administration features. To setup a remote computer for access to the FTP server, you must ensure you install at least the client side half of Ability FTP Server. Additionally, if you have enabled security restrictions for the 'Admin' settings, you must ensure the new remote computer's IP address will be allowed to connect.
3`;let p;p=$localize`Connect to local server`;let u;u=$localize`This option will set the administration client interface to connect to a locally running service.`;let E;E=$localize`Connect to remote server`;let R;R=$localize`This option will set the administration client interface to connect to a remote service.`;let F;F=$localize`Name`;let f;f=$localize`This will identify the server settings in the Servers list.`;let c;c=$localize`Host`;let g;g=$localize`This can be any host, domain or IP address.`;let m;m=$localize`Port`;let L;L=$localize`This should match the port value in the Admin options of the remote service. The default port is 7200.`;let h;h=$localize`User`;let X;X=$localize`This should match the user set in the Admin options of the remote service. The default user is 'admin'.`;let x;x=$localize`Password`;let V;return V=$localize`This should match the password set in the Admin options of the remote service.`,[i,O,p,u,E,R,F,f,c,g,m,L,h,X,x,V,["header",S,"bookmark","servers","image","afs/Servers.png"],["header",""],["header",n,"bookmark","remote-server","image","afs/Server.png"],[3,"support"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",16)(5,"app-support-list")(6,"app-support-item")(7,"span",17),t(8,2),e(),_(9,"span"),t(10,3),e()(),_(11,"app-support-item")(12,"span",17),t(13,4),e(),_(14,"span"),t(15,5),e()()()(),_(16,"app-support-section",18)(17,"app-support-list")(18,"app-support-item")(19,"span",17),t(20,6),e(),_(21,"span"),t(22,7),e()(),_(23,"app-support-item")(24,"span",17),t(25,8),e(),_(26,"span"),t(27,9),e()(),_(28,"app-support-item")(29,"span",17),t(30,10),e(),_(31,"span"),t(32,11),e()(),_(33,"app-support-item")(34,"span",17),t(35,12),e(),_(36,"span"),t(37,13),e()(),_(38,"app-support-item")(39,"span",17),t(40,14),e(),_(41,"span"),t(42,15),e()()()(),_(43,"app-afs-support-footer"),s(44,"app-link-afs-support",19),e()),n&2&&(l(44),r("support",i.afsSupportService.Admin))},dependencies:[b,Q,j,U,G],encapsulation:2})}}return o}
3)();var U_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-credits"]],decls:29,vars:0,consts:()=>{let S;S=$localize`OpenSSL`;let n;n=$localize`RSA`;let i;i=$localize`Credits`;let O;O=$localize`Code Crafters would like to thank the following organizations for algorithms and components imported and used within Ability FTP Server.`;let p;p=$localize`SSL / TLS`;let u;u=$localize`Socket communication and encryption algorithms.`;let E;E=$localize`Public key encryption`;let R;R=$localize`Derived from the RSA Data Security, Inc. Public Key Encryption Algorithm.`;let F;F=$localize`AES`;let f;f=$localize`Derived from the RSA Data Security, Inc. AES Advanced Encryption Standard Algorithm.`;let c;c=$localize`MD5`;let g;return g=$localize`Derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm.`,[i,O,p,u,E,R,F,f,c,g,["header",S],["header",""],["header",n]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",10)(5,"app-support-list")(6,"app-support-item")(7,"span",11),t(8,2),e(),_(9,"span"),t(10,3),e()()()(),_(11,"app-support-section",12)(12,"app-support-list")(13,"app-support-item")(14,"span",11),t(15,4),e(),_(16,"span"),t(17,5),e()(),_(18,"app-support-item")(19,"span",11),t(20,6),e(),_(21,"span"),t(22,7),e()(),_(23,"app-support-item")(24,"span",11),t(25,8),e(),_(26,"span"),t(27,9),e()()()(),s(28,"app-afs-support-footer"))},dependencies:[b,Q,j,U],encapsulation:2})}}return o})();var ye=(()=>{class o{constructor(){this.afsReleaseService=M(le),this.version=we(3)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-eula"]],inputs:{version:[1,"version"]},decls:2,vars:2,consts:[[3,"product","version"]],template:function(n,i){n&1&&s(0,"app-eula",0)(1,"app-afs-support-footer"),n&2&&r("product",i.afsReleaseService.AbilityFTPServer)("version",i.version())},dependencies:[_n,U],encapsulation:2})}}return o})();var L_=(()=>{class o{constructor(){this.afsReleaseService=M(le),this.afsSupportService=M($),this.faqService=M(Qt)}open(S,n){this.faqService.open(S,n)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-faq"]],decls:79,vars:5,consts:()=>{let S;S=$localize`How can I buy Ability FTP Server?`;let n;n=$localize`You can buy Ability FTP Server on our website with a variety of payment methods. For more information, please view the ${"\uFFFD#6\uFFFD"}:START_TAG_APP_LINK_AFS_BUY_NOW:${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_BUY_NOW: page.`;let i;i=$localize`How do I configure my router and firewall for Ability FTP Server?`;let O;O=$localize` If your server is behind a firewall or router you will need to allow the relevant ports for the FTP server through. The ports that must be configured for firewalls and routers include port 21 (standard FTP port) and port 990 (for implicit SSL). If you have changed these default port values on your FTP server then you should allow your port values instead. When FTP clients are using PASV mode for files transfers, the FTP server needs to be able to open additional ports. Therefore you must also allow ports 1024 - 5000 through any firewalls and routers. If you have enabled and set a PASV port range for the FTP server (see the ${"\uFFFD#12\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page for more information), then you will need to allow those port values instead. If the FTP server is behind a router then it is always a good idea to enter the router's IP address into the FTP server. This will ensure that PASV mode transfers are negotiated to the correct IP address for 'over the Internet' transfers. `;let p;p=$localize`How do I access my FTP server using a web browser?`;let u;u=$localize`If you want to access your FTP server from any location using a web browser, there are several ways in which you can do this:`;let E;E=$localize`Enter ftp://yourdomain.com. This will prompt for a user name and password if there is no anonymous account.`;let R;R=$localize`Enter ftp://[email protected]. This will prompt for just the password.`;let F;F=$localize` Enter ftp://user:[email protected]. This will give direct access to your account. However, this method shows your password in the browser title and may remain in your last visited links. This is not recommended for security reasons. `;let f;f=$localize`How do group access rights affect all associated users?`;let c;c=$localize` If a group enables the 'file read' access right, this only means that all associated users are allowed to enable 'file read'. If a user doesn't enable 'file read' then any sessions of that user will not be able to download files. If a group doesn't enable 'file read', then any user which attempts to enable 'file read' will be ignored and sessions of that user will still not be able to download files. Only if both the user and group enable 'file read' will downloading be allowed. `;let g;g=$localize`I can log in to my FTP account but cannot upload any files, what am I doing wrong?`;let m;m=$localize` If you manage to login but are restricted from access to writing, creating folders or similar then you most likely have some access restrictions placed on either your user settings or group settings (if the user belongs to a group). Check these settings to make sure that you have enabled appropriate access. The default setting for a user or group is for file and folder read access only. Be aware of the implications of how group access rights overrule user access rights as explained by ${"\uFFFD#36\uFFFD"}:START_LINK:How do group access rights affect all associated users?${"\uFFFD/#36\uFFFD"}:CLOSE_LINK:`;let L;L=$localize`I can log in to my FTP account but cannot see any of my files, what am I doing wrong?`;let h;h=$localize` The first and most obvious thing to check is that there are actually files in your account. If this is not the problem, you should also check that you have set a root folder for the user. However, the most common cause of this problem is a router or firewall. FTP connections use two individual connections; one for commands and the other for data (such as files and folder listings). If the data connection is blocked by a router or firewall, then you will not be able to view the contents of any folder. Please see ${"\uFFFD#42\uFFFD"}:START_LINK: How do I configure my router and firewall for Ability FTP Server? ${"\uFFFD/#42\uFFFD"}:CLOSE_LINK: for more details. `;let X;X=$localize`Why can't I log in to my FTP account?`;let x;x=$localize` First double check that your client settings match your server user settings. Please see ${"\uFFFD#49\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#49\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: for more details on this. If your settings are fine then it is one of several possible setup problems: `;let V;V=$localize`You may have incorrectly configured your Domain Name Server (DNS) settings. Check that your domain name correctly points to your server's IP address.`;let A;A=$localize` You may have incorrectly configured your router or firewall. Please see ${"\uFFFD#55\uFFFD"}:START_LINK:How do I configure my router and firewall for Ability FTP Server?${"\uFFFD/#55\uFFFD"}:CLOSE_LINK: for more details. `;let B;B=$localize` You may have Antivirus software running on your server which is disrupting your FTP connections. It is recommended not to use client type Antivirus software on a server for conflict reasons like this. `;let q;q=$localize`What is an Anonymous account and how do I create one?`;let K;K=$localize` Some FTP servers (especially public servers) have an account created called 'anonymous'. This allows a client to login into an FTP server without the need for a password (usually to access some free downloads). Ability FTP Server supports anonymous accounts by simply allowing you to create a user like any other but by calling it 'anonymous'. All users that are created in Ability FTP Server must have a password set. However, in the case of the anonymous user, this is not required. However, it is still possible for you to set a password for the anonymous user (to prevent normal public access). `;let C;C=$localize`How do you set up access to shared folders on other computers?`;let y;y=$localize` This can be achieved by specifying the shared folder in the same place where you would normally specify a local folder path. However, the shared folder cannot be accessed via a mapped drive and so you must use the full path name (e.g. \\\\pc1\\shared). Sometimes it is important that you also setup the NT Service correctly. By default an NT Service runs under a default account which has no access permissions to shared folders on other computers. To gain this permission you will need to change the account which the NT Service runs under. This can be done by opening the Services option dialog. Once opened, you can adjust the properties of the 'Ability FTP Server' service and set a different account. For the changes to take effect you must restart the Ability FTP Server NT Service. `;let w;w=$localize`What versions of Windows are supported?`;let J;J=$localize`Ability FTP Server supports all versions of windows from Windows XP and Windows Server 2003 to the latest available versions.`;let Z;Z=$localize`How do I uninstall Ability FTP Server?`;let ee;return ee=$localize` You can uninstall Ability FTP Server by either using the Windows "Uninstall a program" feature or by executing the Ability FTP Server uninstaller located at "${"\uFFFD0\uFFFD"}:INTERPOLATION:" or whichever folder you chose to install your Ability FTP Server to. Note that this will uninstall the softw
3are but will leave some configuration and log folders in case you want to re-install again in the future. If you want to completely remove all Ability FTP Server files then please also delete the entire "${"\uFFFD1\uFFFD"}:INTERPOLATION_1:" or other chosen installation folder after using the uninstaller. `,[S,n,i,O,p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,y,w,J,Z,ee,["bookmark","HowCanIBuyAbilityFTPServer",3,"open"],["question",""],["bookmark","HowDoIConfigureMyRouterAndFirewallForAbilityFTPServer"],[3,"support"],["bookmark","HowDoIAccessMyFTPServerUsingAWebBrowser"],["bookmark","HowDoGroupAccessRightsAffectAllAssociatedUsers"],["bookmark","ICanLogInToMyFTPAccountButCannotUploadAnyFilesWhatAmIDoingWrong"],["href","",3,"click"],["bookmark","ICanLogInToMyFTPAccountButCannotSeeAnyOfMyFilesWhatAmIDoingWrong"],["bookmark","WhyCantILogInToMyFTPAccount"],["bookmark","WhatIsAnAnonymousAccountAndHowDoICreateOne"],["bookmark","HowDoYouSetUpAccessToSharedFoldersOnOtherComputers"],["bookmark","WhatVersionsOfWindowsAreSupported"],["bookmark","HowDoIUninstallAbilityFTPServer"]]},template:function(n,i){n&1&&(_(0,"app-faqs")(1,"app-faq",28)(2,"span",29),t(3,0),e(),_(4,"span"),H(5,1),s(6,"app-link-afs-buy-now"),Y(),e()(),_(7,"app-faq",30)(8,"span",29),t(9,2),e(),_(10,"span"),H(11,3),s(12,"app-link-afs-support",31),Y(),e()(),_(13,"app-faq",32)(14,"span",29),t(15,4),e(),_(16,"span")(17,"p"),t(18,5),e(),_(19,"ul")(20,"li"),t(21,6),e(),_(22,"li"),t(23,7),e(),_(24,"li"),t(25,8),e()()()(),_(26,"app-faq",33)(27,"span",29),t(28,9),e(),_(29,"span"),t(30,10),e()(),_(31,"app-faq",34)(32,"span",29),t(33,11),e(),_(34,"span"),H(35,12),_(36,"a",35),F_("click",function(p){return i.open("HowDoGroupAccessRightsAffectAllAssociatedUsers",p)}),e(),Y(),e()(),_(37,"app-faq",36)(38,"span",29),t(39,13),e(),_(40,"span"),H(41,14),_(42,"a",35),F_("click",function(p){return i.open("HowDoIConfigureMyRouterAndFirewallForAbilityFTPServer",p)}),e(),Y(),e()(),_(43,"app-faq",37)(44,"span",29),t(45,15),e(),_(46,"span")(47,"p"),H(48,16),s(49,"app-link-afs-support",31),Y(),e(),_(50,"ul")(51,"li"),t(52,17),e(),_(53,"li"),H(54,18),_(55,"a",35),F_("click",function(p){return i.open("HowDoIConfigureMyRouterAndFirewallForAbilityFTPServer",p)}),e(),Y(),e(),_(56,"li"),t(57,19),e()()()(),_(58,"app-faq",38)(59,"span",29),t(60,20),e(),_(61,"span"),t(62,21),e()(),_(63,"app-faq",39)(64,"span",29),t(65,22),e(),_(66,"span"),t(67,23),e()(),_(68,"app-faq",40)(69,"span",29),t(70,24),e(),_(71,"span"),t(72,25),e()(),_(73,"app-faq",41)(74,"span",29),t(75,26),e(),_(76,"span"),t(77,27),e()()(),s(78,"app-afs-support-footer")),n&2&&(l(),r("open",!0),l(11),r("support",i.afsSupportService.FTP),l(37),r("support",i.afsSupportService.TutorialFTPClient),l(28),Ge(i.afsReleaseService.UninstallFile)(i.afsReleaseService.InstallFolder),ve(77))},dependencies:[nn,tn,Ae,G,U],encapsulation:2})}}return o})();var y_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-ftp"]],decls:141,vars:3,consts:()=>{let S;S=$localize`FTP`;let n;n=$localize`Protocol`;let i;i=$localize`Limits`;let O;O=$localize`IP address control`;let p;p=$localize`FTP`;let u;u=$localize` These settings control the general behavior of the FTP server and allow you to personalize the server to your needs. These options affect the running of your FTP server, restrictions on usage and the SSL services.
4`;let E;E=$localize`Ports`;let R;R=$localize` This option controls what port the main FTP protocol listens on. This value should be entered into FTP clients when attempting to connect. This option allows multiple ports and also for ports to listen on a single IP address. Please enter multiple ports in the format: "port1;port2:port3;ip;host". `;let F;F=$localize`Idle timeout (seconds)`;let f;f=$localize`If a connection remains idle, this value will control the period of time before the connection is forcefully shutdown.`;let c;c=$localize`Maximum connections`;let g;g=$localize`This option allows a restriction to be placed on the maximum number of connections that can be made to the server at any one time.`;let m;m=$localize`Maximum connections per IP address`;let L;L=$localize` This option allows a restriction to be placed on the maximum number of connections for each IP address. This is useful if you want to ensure that a single computer does not abuse the FTP server by opening too many FTP connections. `;let h;h=$localize`Enable SSL`;let X;X=$localize`This allows you to quickly and easily enable or disable the use of SSL / TLS within the FTP server.`;let x;x=$localize`Encrypt data connection by default`;let V;V=$localize` FTP uses a separate connection for transferring files. Even when using SSL / TLS, this is normally un-encrypted. This this will set the data connection to be encrypted by default. `;let A;A=$localize`Enable explicit SSL`;let B;B=$localize` This allows SSL / TLS connections using the normal FTP port. SSL / TLS encryption is only used if an FTP client issues an 'AUTH SSL' or 'AUTH TLS' command during login. This is the simplest and most supported method of SSL. `;let q;q=$localize`Enable implicit SSL`;let K;K=$localize` Implicit SSL allows the FTP server to additionally allocate another port for SSL connections. Communication on this port requires less overhead as SSL negotiation is done immediately, removing the need for plain text commands to initialize SSL communication. `;let C;C=$localize`SSL ports`;let y;y=$localize` This option controls what port the FTP protocol impl
4icit SSL port listens on. This value should be entered into FTP clients when attempting to connect via implicit SSL. This option allows multiple ports and also for ports to listen on a single IP address. Please enter multiple ports in the format: "port1;port2:port3;ip;host". `;let w;w=$localize`SSL certificate`;let J;J=$localize` This option controls which SSL certificate will be used for SSL sessions. For more information on how to edit the SSL certificates, please view the ${"\uFFFD#56\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#56\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `;let Z;Z=$localize`Allow users to enable password changing`;let ee;ee=$localize` If this is enabled and a user has this option enabled, any logged in session for that user can send the 'SITE CPWD (new password)' command to change the user's password. If this option is disabled, all users and groups will not allow the password to be changed. `;let v;v=$localize`Block timeout prevention activities`;let _e;_e=$localize` Most FTP clients attempt to prevent an FTP connection from closing when the connection enters an idle state. Enabling this option will prevent these activities and ensure only users who are truly using the server maintain an open connection. `;let te;te=$localize`Place deleted files into the recycle bin`;let ne;ne=$localize` This option will cause any deleted files to be placed into the recycle bin. This allows you to ensure deleted files are protected and can be retrieved after deletion (provided the recycle bin has the available space). `;let oe;oe=$localize`Allow site to site file transfers (FXP)`;let ie;ie=$localize` If this is enabled, the server will allow logged in users to perform site to site transfers. Site to site transfers is a name given to the action where an FTP client can connect two FTP servers together and transfer files directly between them. However, this has potential security implications so it is recommended not to enable this feature. Ability FTP Server does have additional security built in to reduce the danger that site to site transfers introduce, but there is still no guarantee that this is will make site to site transfers completely safe. `;let d;d=$localize`Use server timezone instead of GMT for file timestamps`;let k;k=$localize` If this is enabled, the server will display and update file timestamps based on the server's local timezone rather than the recommended default of a GMT timezone. Many FTP clients will use a GMT based server timestamp and then adjust the timezone locally. However, this setting may be needed for some FTP clients. `;let Se;Se=$localize`PASV port range`;let se;se=$localize` This option allows you to limit the range of ports used for data connections by the server. This is mainly useful for avoiding port conflicts and reducing port ranges to be configured for firewalls and routers. `;let re;re=$localize`PASV IP address`;let D;D=$localize` By default, PASV mode data connections will use the computer's IP address. However, if the computer is behind a router, then that IP address will usually be an internal network IP address and not a valid Internet IP address. By setting this option, the FTP server will ensure that the router's IP address is issued to the FTP client and therefore allow PASV mode transfers. If your server is behind a router then you should enter the router's IP address in this option. `;let de;de=$localize`Maximum upload speed per user (KB/s)`;let z;z=$localize` This option allows you to restrict the bandwidth allowance for the uploading of files per user. This value is shared between all the sessions of a particular user, so if the limit was set to 10 KB/s, the result would be that two simultaneous uploads for that user would be limited to 5 KB/s each. `;let Ee;Ee=$localize`Maximum download speed per user (KB/s)`;let ue;ue=$localize` This option allows you to restrict the bandwidth allowance for the downloading of files per user. This value is shared between all the sessions of a particular user, so if the limit was set to 10 KB/s, the result would be that two simultaneous downloads for that user would be limited to 5 KB/s each. `;let Ne;Ne=$localize`Ban file types`;let ce;ce=$localize` This option allows a restriction to be placed on which file types are allowed to be uploaded onto the server. This is useful for preventing dangerous file types, such as executables, which could potentially contain viruses. `;let Ce;Ce=$localize`Limit executable file types`;let Re;Re=$localize` This option allows a restriction to be placed on which file types are allowed to be executed on the server by users which have the file execute access right. If this option is disabled, then all file types will be allowed. If a file type is executed which is 'non-executable' (i.e. a text file, document, image etc.), then the file is o
4pened using the default application designated to open that file. `;let Me;Me=$localize`Allow parameters in 'Execute' commands`;let Fe;Fe=$localize` If this is enabled and a user has file execution access rights (the ability send a 'SITE EXEC' command), parameters will be allowed and passed onto the executable file. It is recommended that this option is not enabled as execution parameters cannot be checked for security, which could inadvertently cause a security hole in your FTP server. Also, users with file execution access rights should have a strong password which is known only by trusted users. `;let fe;fe=$localize`Enable anti-hammering`;let ge;ge=$localize` Enabling this option will cause a user to be blocked if they fail to login after five attempts. Blocking is based on the user's IP address and they will remain blocked for ten minutes. This technique helps prevent rogue password cracking software from guessing your user passwords. Additionally, Ability FTP Server always pauses for five seconds when a password is incorrect, which also helps protect passwords. `;let me;me=$localize`Enable IP address control`;let he;he=$localize`If enabled, the entries within the list box will be enforced.`;let Ie;Ie=$localize`IP address control`;let $e;return $e=$localize` This is the list of allowed and denied IP addresses, in order of execution from top to bottom. If an entry matches the client IP address, then the provided 'Allow' or 'Deny' option will be enforced. `,[p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,y,w,J,Z,ee,v,_e,te,ne,oe,ie,d,k,Se,se,re,D,de,z,Ee,ue,Ne,ce,Ce,Re,Me,Fe,fe,ge,me,he,Ie,$e,["header",S,"bookmark","ftp","image","afs/FTP.png"],["header",""],[3,"support"],["header",n,"bookmark","protocol","image","afs/FTPProtocol.png"],["header",i,"bookmark","limits","image","afs/FTPLimits.png"],["header",O,"bookmark","ip-control","image","afs/FTPIPControl.png"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",52)(5,"app-support-list")(6,"app-support-item")(7,"span",53),t(8,2),e(),_(9,"span"),t(10,3),e()(),_(11,"app-support-item")(12,"span",53),t(13,4),e(),_(14,"span"),t(15,5),e()(),_(16,"app-support-item")(17,"span",53),t(18,6),e(),_(19,"span"),t(20,7),e()(),_(21,"app-support-item")(22,"span",53),t(23,8),e(),_(24,"span"),t(25,9),e()(),_(26,"app-support-item")(27,"span",53),t(28,10),e(),_(29,"span"),t(30,11),e()(),_(31,"app-support-item")(32,"span",53),t(33,12),e(),_(34,"span"),t(35,13),e()(),_(36,"app-support-item")(37,"span",53),t(38,14),e(),_(39,"span"),t(40,15),e()(),_(41,"app-support-item")(42,"span",53),t(43,16),e(),_(44,"span"),t(45,17),e()(),_(46,"app-support-item")(47,"span",53),t(48,18),e(),_(49,"span"),t(50,19),e()(),_(51,"app-support-item")(52,"span",53),t(53,20),e(),_(54,"span"),H(55,21),s(56,"app-link-afs-support",54),Y(),e()()()(),_(57,"app-support-section",55)(58,"app-support-list")(59,"app-support-item")(60,"span",53),t(61,22),e(),_(62,"span"),t(63,23),e()(),_(64,"app-support-item")(65,"span",53),t(66,24),e(),_(67,"span"),t(68,25),e()(),_(69,"app-support-item")(70,"span",53),t(71,26),e(),_(72,"span"),t(73,27),e()(),_(74,"app-support-item")(75,"span",53),t(76,28),e(),_(77,"span"),t(78,29),e()(),_(79,"app-support-item")(80,"span",53),t(81,30),e(),_(82,"span"),t(83,31),e()(),_(84,"app-support-item")(85,"span",53),t(86,32),e(),_(87,"span"),t(88,33),e()(),_(89,"app-support-item")(90,"span",53),t(91,34),e(),_(92,"span"),t(93,35),e()()()(),_(94,"app-support-section",56)(95,"app-support-list")(96,"app-support-item")(97,"span",53),t(98,36),e(),_(99,"span"),t(100,37),e()(),_(101,"app-support-item")(102,"span",53),t(103,38),e(),_(104,"span"),t(105,39),e()(),_(106,"app-support-item")(107,"span",53),t(108,40),e(),_(109,"span"),t(110,41),e()(),_(111,"app-support-item")(112,"span",53),t(113,42),e(),_(114,"span"),t(115,43),e()(),_(116,"app-support-item")(117,"span",53),t(118,44),e(),_(119,"span"),t(120,45),e()(),_(121,"app-support-item")(122,"span",53),t(123,46),e(),_(124,"span"),t(125,47),e()()()(),_(126,"app-support-section",57)(127,"app-support-list")(128,"app-support-item")(129,"span",53),t(130,48),e(),_(131,"span"),t(132,49),e()(),_(133,"app-support-item")(134,"span",53),t(135,50),e(),_(136,"span"),t(137,51),e()()()(),_(138,"app-afs-support-footer"),s(139,"app-link-afs-support",54)(140,"app-link-afs-support",54),e(
4)),n&2&&(l(56),r("support",i.afsSupportService.SSLCertificates),l(83),r("support",i.afsSupportService.TutorialGeneral),l(),r("support",i.afsSupportService.TutorialSSL))},dependencies:[b,Q,j,G,U],encapsulation:2})}}return o})();var G_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-license"]],decls:23,vars:1,consts:()=>{let S;S=$localize`License`;let n;n=$localize`License`;let i;i=$localize`Once you have purchased Ability FTP Server you can manage your license using these options. This allows you to activate a license key and view what your license allows.`;let O;O=$localize`License status`;let p;p=$localize`This displays your license edition and the expiry date for updates. When you change your settings, this information will update and track the changes.`;let u;u=$localize`Activate license key`;let E;E=$localize`This allows you to change your license key.`;let R;R=$localize`License features`;let F;return F=$localize`This shows which features your license allows.`,[n,i,O,p,u,E,R,F,["header",S,"bookmark","license","image","afs/License.png"],["header",""],[3,"support"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",8)(5,"app-support-list")(6,"app-support-item")(7,"span",9),t(8,2),e(),_(9,"span"),t(10,3),e()(),_(11,"app-support-item")(12,"span",9),t(13,4),e(),_(14,"span"),t(15,5),e()(),_(16,"app-support-item")(17,"span",9),t(18,6),e(),_(19,"span"),t(20,7),e()()()(),_(21,"app-afs-support-footer"),s(22,"app-link-afs-support",10),e()),n&2&&(l(22),r("support",i.afsSupportService.TutorialLicense))},dependencies:[b,Q,j,U,G],encapsulation:2})}}return o})();var v_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-logs"]],decls:91,vars:5,consts:()=>{let S;S=$localize`Logs`;let n;n=$localize`Filters`;let i;i=$localize`Logs`;let O;O=$localize` Ability FTP Server records extensive logs for all activity which can occur while the service is live. This includes information about when the application loads as well as administration and session activity. There is also a separate copy of logging information stored for each user. This copy allows you to analyze a particular users activity if required. The logs page enables you to search, view and also save extracts from this information. The storage lifetime of logging data is adjustable from within the ${"\uFFFD#4\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: settings.
5`;let p;p=$localize`Time range`;let u;u=$localize` The information shown on the logs page represents all the log entries that fall within the selected time range and match the provided filter settings. Adjusting the allowed time range can be done by selecting the appropriate option from the drop down list. At the bottom of the list there is also a 'Custom' option which allows you to customize the exact time range to show. `;let E;E=$localize`Filters`;let R;R=$localize`This opens the filter dialog which will enable you to search the log files for specific information.`;let F;F=$localize`Refresh`;let f;f=$localize`This will cause the server to re-search the logs based on your current criteria.`;let c;c=$localize`Save as`;let g;g=$localize`This allows you to save the displayed entries into a text file.`;let m;m=$localize`Copy`;let L;L=$localize`This will copy the selected entries into the clipboard. This allows you to paste the information into another text processing application or an email.`;let h;h=$localize`Select all`;let X;X=$localize`This will highlight all the displayed log entries.`;let x;x=$localize` To enable you to get the most from the logs page, you can filter searches using the Filters button. This dialog provides various options to filter down the results. All the available options support the use of asterisks (e.g. '* Failed') and leaving an option blank defaults to allowing anything for that option. `;let V;V=$localize`FTP logs`;let A;A=$localize`Filter all results down to administration events, settings changes, server activation and session activity.`;let B;B=$localize`Application logs`;let q;q=$localize`Filter all results down to application state changes and administrator connections.`;let K;K=$localize`User logs`;let C;C=$localize`Filter all results down to a particular user. Simply enter the username in the 'User' option to ensure the appropriate user is selected.`;let y;y=$localize`User`;let w;w=$localize`Only available for user logs. This should match the 'User' option of the required user.`;let J;J=$localize`Session ID`;let Z;Z=$localize`Every connection is given a session ID and this enables you to display selected transcripts for any one connection.`;let ee;ee=$localize`Remote IP address`;let v;v=$localize`This option allows you to display selected entries from a certain IP address.`;let _e;_e=$localize`Action`;let te;te=$localize`This option allows you to display selected entries that correspond to certain actions (e.g. 'Login *', '*Delete*').`;let ne;ne=$localize`Details`;let oe;oe=$localize`This option allows you to display selected entries that have a specific detail. This can include information such as a filename, user, PASV port IP address etc.`;let ie;ie=$localize`Errors`;let d;return d=$localize`A few log entries can generate error messages. This option allows you to search those particular entries.`,[i,O,p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,y,w,J,Z,ee,v,_e,te,ne,oe,ie,d,[3,"supp
5ort"],["header",S,"bookmark","logs","image","afs/Logs.png"],["header",""],["header",n,"bookmark","filters","image","afs/LogsFilter.png"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),H(3,1),s(4,"app-link-afs-support",33),Y(),e(),_(5,"app-support-section",34)(6,"app-support-list")(7,"app-support-item")(8,"span",35),t(9,2),e(),_(10,"span"),t(11,3),e()(),_(12,"app-support-item")(13,"span",35),t(14,4),e(),_(15,"span"),t(16,5),e()(),_(17,"app-support-item")(18,"span",35),t(19,6),e(),_(20,"span"),t(21,7),e()(),_(22,"app-support-item")(23,"span",35),t(24,8),e(),_(25,"span"),t(26,9),e()(),_(27,"app-support-item")(28,"span",35),t(29,10),e(),_(30,"span"),t(31,11),e()(),_(32,"app-support-item")(33,"span",35),t(34,12),e(),_(35,"span"),t(36,13),e()()()(),_(37,"app-support-section",36)(38,"p"),t(39,14),e(),_(40,"app-support-list")(41,"app-support-item")(42,"span",35),t(43,15),e(),_(44,"span"),t(45,16),e()(),_(46,"app-support-item")(47,"span",35),t(48,17),e(),_(49,"span"),t(50,18),e()(),_(51,"app-support-item")(52,"span",35),t(53,19),e(),_(54,"span"),t(55,20),e()(),_(56,"app-support-item")(57,"span",35),t(58,21),e(),_(59,"span"),t(60,22),e()(),_(61,"app-support-item")(62,"span",35),t(63,23),e(),_(64,"span"),t(65,24),e()(),_(66,"app-support-item")(67,"span",35),t(68,25),e(),_(69,"span"),t(70,26),e()(),_(71,"app-support-item")(72,"span",35),t(73,27),e(),_(74,"span"),t(75,28),e()(),_(76,"app-support-item")(77,"span",35),t(78,29),e(),_(79,"span"),t(80,30),e()(),_(81,"app-support-item")(82,"span",35),t(83,31),e(),_(84,"span"),t(85,32),e()()()(),_(86,"app-afs-support-footer"),s(87,"app-link-afs-support",33)(88,"app-link-afs-support",33)(89,"app-link-afs-support",33)(90,"app-link-afs-support",33),e()),n&2&&(l(4),r("support",i.afsSupportService.Admin),l(83),r("support",i.afsSupportService.Admin),l(),r("support",i.afsSupportService.Status),l(),r("support",i.afsSupportService.Activity),l(),r("support",i.afsSupportService.Sessions))},dependencies:[G,b,Q,j,U],encapsulation:2})}}return o})();var w_=(()=>{class o{constructor(){this.afsSupportService=M($),this.tags=[{availability:$localize`Always`,tags:[{name:"SYST_CMDLIST",description:$localize`Server command list`},{name:"SYST_CMDLIST_SITE",description:$localize`Server SITE command list`},{name:"SYST_CURRENTTIME",description:$localize`Server current system time`},{name:"SYST_USERCOUNT",description:$localize`Total number of users logged in`},{name:"SYST_USERCOUNT_MAX",description:$localize`Total number of users logged in, showing maximum (e.g. 1 of 5)`},{name:"SYST_TIMEOUT",description:$localize`Idle connection timeout`},{name:"SYST_LINE_STAR",description:$localize`A full row of '*'s`},{name:"SYST_LINE_EQUALS",description:$localize`A full row of '='s`},{name:"SYST_LINE_DASH",description:$localize`A full row of '-'s`},{name:"SESS_SERVERIP",description:$localize`Server IP`},{name:"SESS_CLIENTIP",description:$localize`Connected client's IP.`}]},{availability:$localize`After Login`,tags:[{name:"ACCT_USERCOUNT",description:$localize`Number of users (sessions) logged in using the current user`},{name:"ACCT_USERCOUNT_MAX",description:$localize`Number of users (sessions) logged in using the current user, showing maximum (e.g. 1 of 5)`},{name:"ACCT_SPACELEFT",description:$localize`User allocation space left ("unlimited" or KB value)`},{name:"ACCT_CREDS",description:$localize`Current number of credits`},{name:"ACCT_DOWNCRED",description:$localize`Credits per KB downloaded (e.g. 3 or -3)`},{name:"ACCT_DOWNCRED_POS",description:$localize`Credits per KB downloaded (without negative)`},{name:"ACCT_DOWNCRED_TYPE",description:$localize`'lose' or 'gain' credits when downloading`},{name:"ACCT_UPCRED",description:$localize`Credits per KB uploaded (e.g. 3 or -3)`},{name:"ACCT_UPCRED_POS",description:$localize`Credits per KB uploaded (without negative)`},{name:"ACCT_UPCRED_TYPE",description:$localize`'lose' or 'gain' credits when uploading`}]},{availability:$localize`When Relevant`,tags:[{name:"SESS_DIR",description:$localize`Current working directory for current session`},{name:"SESS_RNFR",description:$localize`Last 'Rename From' (RNFR) path used`},{name:"SESS_LASTPATH",description:$localize`Last path parameter used in any command`},{name:"SESS_USER",description:$localize`Last parameter used for USER command`}]}]}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-messages"]],decls:24,vars:1,consts:()=>{let S;S=$localize`Messages`;let n;n=$localize`Message tags`;let i;i=$localize`Messages`;let O;O=$localize` These settings control the welcome messages and other server responses given by the FTP server to clients. There are three main areas of messages that can be controlled. The first section is for Welcome messages (before and after login). The second set of messages are used for responses to various commands used by the FTP Server. The third and final section is to define messages for a large variety of failure scenarios within the system.
6`;let p;p=$localize`Wrap lines longer than (characters)`;let u;u=$localize` For display purposes, lines longer than this specified length 
6will be 'wrapped' onto multiple lines, each with a maximum number of characters of this length. `;let E;E=$localize`Message`;let R;R=$localize`This is a description of which message you are editing in the 'Message text' box.`;let F;F=$localize`Message text`;let f;return f=$localize` This is the text that will be sent with the appropriate reply code to the FTP client. You can use multi-line messages as well as a large variety of system defined tags as detailed below. `,[i,O,p,u,E,R,F,f,["header",S,"bookmark","messages","image","afs/Messages.png"],["header",""],["header",n,"bookmark","message-tags"],[3,"tags"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",8)(5,"app-support-list")(6,"app-support-item")(7,"span",9),t(8,2),e(),_(9,"span"),t(10,3),e()(),_(11,"app-support-item")(12,"span",9),t(13,4),e(),_(14,"span"),t(15,5),e()(),_(16,"app-support-item")(17,"span",9),t(18,6),e(),_(19,"span"),t(20,7),e()()()(),_(21,"app-support-section",10),s(22,"app-tags",11),e(),s(23,"app-afs-support-footer")),n&2&&(l(22),r("tags",i.tags))},dependencies:[b,Q,j,rn,U],encapsulation:2})}}return o})();var D_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-sessions"]],decls:20,vars:5,consts:()=>{let S;S=$localize`Sessions`;let n;n=$localize`Controlling live sessions`;let i;i=$localize`Sessions`;let O;O=$localize` It is important that the administrator has the ability to view and control currently connected users in real time; this is the purpose behind the sessions list. Through this page you can instantly monitor all connected users and also control them with the 'Stop' and 'Disconnect' buttons. This ensures that you always have control over the FTP server and have the ability to control and prevent abusive users. The sessions list also displays past connections and the appropriate statistics. The storage lifetime of session data is adjustable from within the ${"\uFFFD#4\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: settings.
7`;let p;p=$localize` The information shown on the session page represents all the sessions that fall within the selected time range, this includes both currently connected sessions and past sessions. Adjusting the displayed time range can be done by selecting the appropriate option from the drop down list. Most of the options which begin with the word 'Last' will enable the list to automatically update. At the bottom of the list there is a 'Custom' option which allows you to customize the exact time range to show. Each line displays when the session started, the duration of the session, which user was logged in, the client side IP address, the current or last action, the remote file or folder the last action was performed on, the amount of data transferred and how many file events occurred. By double clicking a session or by clicking the 'View logs' button, you will be taken to a list of log entries associated with that session. `;let u;u=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_STRONG:Time Range${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_STRONG: - This allows you to select the time range in which to display the data. Most of the filter options which begin with 'Last' will enable the graphs to automatically update. The bottom 'Custom' filter option allows you to customize the exact time range. `;let E;return E=$localize` If you wish to disconnect or stop the transfer of a session which is currently connected, you can select the session in the list and then click on the appropriate 'Stop' or 'Disconnect' button. A message box will prompt you for the reason for the action which upon clicking OK, will be sent to the user just as they are stopped or disconnected. The message in the prompt will also be saved for later use. Actions performed on users take effect immediately although you may still have to wait a few seconds for the list to update. `,[i,O,p,u,E,[3,"support"],["header",S,"bookmark","sessions","image","afs/Sessions.png"],["header",n,"bookmark","controlling-live-sessions","image","afs/SessionsDisconnectUsers.png"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),H(3,1),s(4,"app-link-afs-support",5),Y(),e(),_(5,"app-support-section",6)(6,"p"),t(7,2),e(),_(8,"app-support-list")(9,"li"),H(10,3),s(11,"strong"),Y(),e()()(),_(12,"app-support-section",7)(13,"p"),t(14,4),e()(),_(15,"app-afs-support-footer"),s(16,"app-link-afs-support",5)(17,"app-link-afs-support",5)(18,"app-link-afs-support",5)(19,"app-link-afs-support",5),e()),n&2&&(l(4),r("support",i.afsSupportService.Admin),l(12),r("support",i.afsSupportService.Admin),l(),r("support",i.afsSupportService.Status),l(),r("support",i.afsSupportService.Activity),l(),r("support",i.afsSupportService.Logs))},dependencies:[G,b,Q,U],encapsulation:2})}}return o}
7)();var b_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-social-media-and-mailing-lists"]],decls:2,vars:0,template:function(n,i){n&1&&s(0,"app-social-media-and-mailing-lists")(1,"app-afs-support-footer")},dependencies:[Sn,U],encapsulation:2})}}return o})();var X_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-ssl-certificates"]],decls:98,vars:2,consts:()=>{let S;S=$localize`SSL certificates`;let n;n=$localize`Create SSL certificate`;let i;i=$localize`Import SSL certificate`;let O;O=$localize`SSL certificates`;let p;p=$localize` If you want to enable any of the SSL options then you will need to provide an SSL certificate. This dialog will allow you to view, create, import and delete your SSL certificates.
8`;let u;u=$localize`Create`;let E;E=$localize`This will allow you to create your own self signed certificate.`;let R;R=$localize`Import`;let F;F=$localize` If you already have a certificate and private key pair that you wish to use with Ability FTP Server, the Import facility allows you to load these in for use with SSL. `;let f;f=$localize`View`;let c;c=$localize`This will use your default certificate viewer and open the selected certificate.`;let g;g=$localize`Delete`;let m;m=$localize`This will permanently remove certificates from the FTP server.`;let L;L=$localize`Certificate name`;let h;h=$localize`This is the name that will identify the newly created certificate.`;let X;X=$localize`Common name`;let x;x=$localize`This represents the 'issued to' identifier for the certificate. Because the certificate will be self signed, this will also be the 'issued by' identifier.`;let V;V=$localize`Email address`;let A;A=$localize`This is the email address that any queries or other contact related to the certificate should be directed to.`;let B;B=$localize`Organization`;let q;q=$localize`This is the name of the organization that the certificate is intended for.`;let K;K=$localize`Department`;let C;C=$localize`This is the department that the certificate is intended for within an organization.`;let y;y=$localize`Town or city`;let w;w=$localize`This is the city or town where the organization using the certificate is based.`;let J;J=$localize`State or region`;let Z;Z=$localize`This is the state or region where the organization using the certificate is based.`;let ee;ee=$localize`Country`;let v;v=$localize`This is the country where the organization using the certificate is based.`;let _e;_e=$localize`Expiry date`;let te;te=$localize`This lets you control the time span for which this certificate can be used.`;let ne;ne=$localize`Private key length`;let oe;oe=$localize`This is the size of the private key that will be used with the certificate.`;let ie;ie=$localize`Private key`;let d;d=$localize` You can either enter the key file to be used or use the browse button to search for its location. The private key will normally be of file type '.key'. However, Ability FTP Server is very versatile and can load in other file types as long as they contain a valid RSA Base64 encoded private key. It is not uncommon to have a combined file of format '.pem' which can contain both private key and certificate data. Ability FTP Server will extract the relevant parts and save them as separate files in its 'certs' folder. The private key and certificate are also checked to make sure they match each other. If the key and certificate filenames are different, the key will be renamed to match the certificate for simplicity. `;let k;k=$localize`Certificate`;let Se;Se=$localize` You can either enter the certificate file to be used or use the browse button to search for its location. The certificate will normally be of file type '.crt' or '.cer'. However, Ability FTP Server is very versatile and can load in other file types as long as they contain a valid certificate. It is not uncommon to have a combined file of format '.pem' which can contain both private key and certificate data. Ability FTP Server will extract the relevant parts and save them as separate files in its 'certs' folder. The key and certificate are also checked to make sure they match each other. If the key and certificate filenames are different, the key will be renamed to match the certificate for simplicity. `;let se;se=$localize`Certificate name (optional)`;let re;return re=$localize` This gives you the option of renaming both the key and certificate files with a new name. This is useful if the previous filenames were ambiguous or not descriptive for the intended use. `,[O,p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,y,w,J,Z,ee,v,_e,te,ne,oe,ie,d,k,Se,se,re,["header",S,"bookmark","ssl-certificates","image","afs/SSLCertificates.png"],["header",""],["header",n,"bookmark","create-ssl-certificate","image","afs/SSLCertificatesCreate.png"],["header",i,"bookmark","import-ssl-certificate","image","afs/SSLCertificatesImport.png"],[3,"supp
8ort"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",36)(5,"app-support-list")(6,"app-support-item")(7,"span",37),t(8,2),e(),_(9,"span"),t(10,3),e()(),_(11,"app-support-item")(12,"span",37),t(13,4),e(),_(14,"span"),t(15,5),e()(),_(16,"app-support-item")(17,"span",37),t(18,6),e(),_(19,"span"),t(20,7),e()(),_(21,"app-support-item")(22,"span",37),t(23,8),e(),_(24,"span"),t(25,9),e()()()(),_(26,"app-support-section",38)(27,"app-support-list")(28,"app-support-item")(29,"span",37),t(30,10),e(),_(31,"span"),t(32,11),e()(),_(33,"app-support-item")(34,"span",37),t(35,12),e(),_(36,"span"),t(37,13),e()(),_(38,"app-support-item")(39,"span",37),t(40,14),e(),_(41,"span"),t(42,15),e()(),_(43,"app-support-item")(44,"span",37),t(45,16),e(),_(46,"span"),t(47,17),e()(),_(48,"app-support-item")(49,"span",37),t(50,18),e(),_(51,"span"),t(52,19),e()(),_(53,"app-support-item")(54,"span",37),t(55,20),e(),_(56,"span"),t(57,21),e()(),_(58,"app-support-item")(59,"span",37),t(60,22),e(),_(61,"span"),t(62,23),e()(),_(63,"app-support-item")(64,"span",37),t(65,24),e(),_(66,"span"),t(67,25),e()(),_(68,"app-support-item")(69,"span",37),t(70,26),e(),_(71,"span"),t(72,27),e()(),_(73,"app-support-item")(74,"span",37),t(75,28),e(),_(76,"span"),t(77,29),e()()()(),_(78,"app-support-section",39)(79,"app-support-list")(80,"app-support-item")(81,"span",37),t(82,30),e(),_(83,"span"),t(84,31),e()(),_(85,"app-support-item")(86,"span",37),t(87,32),e(),_(88,"span"),t(89,33),e()(),_(90,"app-support-item")(91,"span",37),t(92,34),e(),_(93,"span"),t(94,35),e()()()(),_(95,"app-afs-support-footer"),s(96,"app-link-afs-support",40)(97,"app-link-afs-support",40),e()),n&2&&(l(96),r("support",i.afsSupportService.TutorialSSL),l(),r("support",i.afsSupportService.FTP))},dependencies:[b,Q,j,U,G],encapsulation:2})}}return o})();var k_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-status"]],decls:60,vars:3,consts:()=>{let S;S=$localize`Status`;let n;n=$localize`Status`;let i;i=$localize` The status page allows you to quickly view the current status of the FTP server and the overall activity since the FTP server was last loaded. This information is automatically updated every second.
9`;let O;O=$localize`Server status`;let p;p=$localize`Current active state and the time since first activation.`;let u;u=$localize`Active ports`;let E;E=$localize`Current main FTP port and also the SSL port if SSL is enabled.`;let R;R=$localize`Data in`;let F;F=$localize`Total data received by the server.`;let f;f=$localize`Data out`;let c;c=$localize`Total data sent by the server.`;let g;g=$localize`Current connections`;let m;m=$localize`Current number of connected users (sessions).`;let L;L=$localize`Total connections`;let h;h=$localize`Total connections made to the server.`;let X;X=$localize`SSL connections`;let x;x=$localize`Total successful and failed SSL hand shakes to the server.`;let V;V=$localize`Logins`;let A;A=$localize`Total successful and failed logins into the server.`;let B;B=$localize`File activity`;let q;q=$localize`Total number of files uploaded, downloaded and deleted.`;let K;K=$localize`Folder activity`;let C;return C=$localize`Total number of folders created, viewed and deleted.`,[n,i,O,p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,["header",S,"bookmark","status","image","afs/Status.png","imageFull","afs/AFSStatus.png"],["header",""],[3,"support"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",22)(5,"app-support-list")(6,"app-support-item")(7,"span",23),t(8,2),e(),_(9,"span"),t(10,3),e()(),_(11,"app-support-item")(12,"span",23),t(13,4),e(),_(14,"span"),t(15,5),e()(),_(16,"app-support-item")(17,"span",23),t(18,6),e(),_(19,"span"),t(20,7),e()(),_(21,"app-support-item")(22,"span",23),t(23,8),e(),_(24,"span"),t(25,9),e()(),_(26,"app-support-item")(27,"span",23),t(28,10),e(),_(29,"span"),t(30,11),e()(),_(31,"app-support-item")(32,"span",23),t(33,12),e(),_(34,"span"),t(35,13),e()(),_(36,"app-support-item")(37,"span",23),t(38,14),e(),_(39,"span"),t(40,15),e()(),_(41,"app-support-item")(42,"span",23),t(43,16),e(),_(44,"span"),t(45,17),e()(),_(46,"app-support-item")(47,"span",23),t(48,18),e(),_(49,"span"),t(50,19),e()(),_(51,"app-support-item")(52,"span",23),t(53,20),e(),_(54,"span"),t(55,21),e()()()(),_(56,"app-afs-support-footer"),s(57,"app-link-afs-support",24)(58,"app-link-afs-support",24)(59,"app-link-afs-support",24),e()),n&2&&(l(57),r("support",i.afsSupportService.Activity),l(),r("support",i.afsSupportService.Sessions),l(),r("support",i.afsSupportService.Logs))},dependencies:[b,Q,j,U,G],encapsulation:2})}}return o}
9)();var z_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tools"]],decls:80,vars:0,consts:()=>{let S;S=$localize`Version 2 import`;let n;n=$localize`Version 1 import`;let i;i=$localize`Check for updates`;let O;O=$localize`Client update`;let p;p=$localize`Tools`;let u;u=$localize` This page describes in detail how to take full advantage of the built in tools. These will save you time when transferring from other Ability FTP Server versions or simply allow you to update the software quickly and easily.
10`;let E;E=$localize` When upgrading from version 2, this tool will safely transfer your settings over to the new system. We strongly recommend manually checking all settings, users and groups after transfer to ensure they were all correctly imported. Please note that running this tool can only be performed on the actual computer running the FTP service, remote clients will have this option grayed out. `;let R;R=$localize`Path`;let F;F=$localize`This is the source file path where to transfer the settings from, this is normally the installation folder of Ability FTP Server 2.`;let f;f=$localize`Browse`;let c;c=$localize`This allows you to manually select a source file path.`;let g;g=$localize`Search`;let m;m=$localize`This will automatically scan your hard drive for any installations of Ability FTP Server 2. Any found potential sources will be listed in the box below.`;let L;L=$localize`Errors`;let h;h=$localize`This contains a list of any problems encountered during the transfer.`;let X;X=$localize`Start`;let x;x=$localize`This will initiate the transfer of the correctly entered source file path.`;let V;V=$localize`Stop`;let A;A=$localize` This will cancel any current search or transfer. Doing this during a transfer may result in some settings still being modified and only part of the version 2 settings could be imported. `;let B;B=$localize` When upgrading from version 1, this tool is vital in safely transferring your settings over to the new system. Since version 2, we completely changed the storage method into a more flexible and externally accessible INI file system. We also changed how some settings work and so this will correctly map as best as possible your original settings to the new ones. We strongly recommend manually checking all settings, users and groups after transfer to ensure they were all correctly imported. Please note that running this tool can only be performed on the actual computer running the FTP service, remote clients will have this option grayed out. `;let q;q=$localize`Path`;let K;K=$localize`This is the source file path where to transfer the settings from, this is normally the installation folder of Ability FTP Server 1.`;let C;C=$localize`Browse`;let y;y=$localize`This allows you to manually select a source file path.`;let w;w=$localize`Search`;let J;J=$localize`This will automatically scan your hard drive for any installations of Ability FTP Server 1. Any found potential sources will be listed in the box below.`;let Z;Z=$localize`Errors`;let ee;ee=$localize`This contains a list of any problems encountered during the transfer.`;let v;v=$localize`Start`;let _e;_e=$localize`This will initiate the transfer of the correctly entered source file path.`;let te;te=$localize`Stop`;let ne;ne=$localize` This will cancel any current search or transfer. Doing this during a transfer may result in some settings still being modified and only part of the version 1 settings could be imported. `;let oe;oe=$localize` To ensure your FTP server is up to date with the latest software updates, we recommend you use this tool regularly. The update tool will check if your license entitles you to updates and if so, contact our website to query if you are running the latest version. If a newer version is available, you will need to click 'Next' to proceed with the download. Once downloaded, you will again be prompted to 'Install' the update. This will result in the FTP service and administration interface closing and the installation process being run. It is important that at the end of the installation you run the administration client interface to ensure the FTP service is restored. Please note that running this tool can only be performed on the actual computer running the FTP service, remote clients will have this option grayed out. `;let ie;return ie=$localize` When you connect remotely using the administration client interface, you may sometimes be informed that the FTP service is running a newer version than your client. This usually occurs when the FTP service computer has installed a newer update and this is the first time you have logged in with your remote client. To update the client, simply follow the on screen instructions, which usually involves downloading the latest update directly from the FTP service. If the FTP service cannot provide this, you will need to manually ${"\uFFFD#78\uFFFD"}:START_TAG_APP_LINK_AFS_DOWNLOAD:${"\uFFFD/#78\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_DOWNLOAD: the update directly from our website. `,[p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,y,w,J,Z,ee,v,_e,te,ne,oe,ie,["header",S,"bookmark","version-2-import","image","afs/ToolImport2.png"],["header",""],["header",n,"bookmark","version-1-import","image","afs/ToolImport1.png"],["header",i,"bookmark","check-for-updates","image","afs/ToolUpdate.png"],["header",O,"bookmark","client-update","image","afs/ToolClientUpdate.png"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",30)(5,"p"),t(6,2),e(),_(7,"app-support-list")(8,"app-support-item")(9,"span",31),t(10,3),e(),_(11,"span"),t(12,4),e()(),_(13,"app-support-item")(14,"span",31),t(15,5),e(),_(16,"span"),t(17,6),e()(),_(18,"app-support-item")(19,"span",31),t(20,7),e(),_(21,"span"),t(22,8),e(
10)(),_(23,"app-support-item")(24,"span",31),t(25,9),e(),_(26,"span"),t(27,10),e()(),_(28,"app-support-item")(29,"span",31),t(30,11),e(),_(31,"span"),t(32,12),e()(),_(33,"app-support-item")(34,"span",31),t(35,13),e(),_(36,"span"),t(37,14),e()()()(),_(38,"app-support-section",32)(39,"p"),t(40,15),e(),_(41,"app-support-list")(42,"app-support-item")(43,"span",31),t(44,16),e(),_(45,"span"),t(46,17),e()(),_(47,"app-support-item")(48,"span",31),t(49,18),e(),_(50,"span"),t(51,19),e()(),_(52,"app-support-item")(53,"span",31),t(54,20),e(),_(55,"span"),t(56,21),e()(),_(57,"app-support-item")(58,"span",31),t(59,22),e(),_(60,"span"),t(61,23),e()(),_(62,"app-support-item")(63,"span",31),t(64,24),e(),_(65,"span"),t(66,25),e()(),_(67,"app-support-item")(68,"span",31),t(69,26),e(),_(70,"span"),t(71,27),e()()()(),_(72,"app-support-section",33)(73,"p"),t(74,28),e()(),_(75,"app-support-section",34)(76,"p"),H(77,29),s(78,"app-link-afs-download"),Y(),e()(),s(79,"app-afs-support-footer"))},dependencies:[b,Q,j,Pe,U],encapsulation:2})}}return o})();var H_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-anonymous-account"]],decls:7,vars:1,consts:()=>{let S;S=$localize`Anonymous account`;let n;n=$localize`Creating an anonymous account`;let i;return i=$localize` Some FTP servers (especially public servers) have an account created called 'anonymous'. This allows a client to login into an FTP server without the need for a password (usually to access some free downloads). Ability FTP Server supports anonymous accounts by simply allowing you to create a user like any other but by calling it 'anonymous'. All users that are created in Ability FTP Server must have a password set. However, in the case of the anonymous user, this is not required. However, it is still possible for you to set a password for the anonymous user (to prevent normal public access). `,[n,i,["header",S,"image","afs/UserAnonymous.png"],[3,"support"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"app-support-section",2)(3,"p"),t(4,1),e()(),_(5,"app-afs-support-footer"),s(6,"app-link-afs-support",3),e()),n&2&&(l(6),r("support",i.afsSupportService.UsersAndGroups))},dependencies:[b,U,G],encapsulation:2})}}return o})();var Y_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-credits"]],decls:13,vars:2,consts:()=>{let S;S=$localize`What are credits and why use them?`;let n;n=$localize`Upload / download ratios`;let i;i=$localize`Using credits`;let O;O=$localize` The credits feature of Ability FTP Server offers a powerful facility which can be used to restrict how much users can upload and download, to ensure your FTP server is used exactly how you want it to be.
11`;let p;p=$localize` Credits are a feature which is disabled by default but is available to any user or group. They allow you to setup a virtual currency system where users can earn credits and spend credits, depending on their actions (uploading or downloading). If a certain action requires credits and the user has none, they will not be allowed to perform that action. A good example of how credits help is in an FTP server which requires users to upload files to be able to download files. Another use could be to sell bandwidth to users via credits, and set a charge for both downloads and uploads. This way, a certain user would only allow a fixed amount of usage and would ensure that your users only get what they pay for. `;let u;return u=$localize` Another common term used by other FTP servers is the 'upload / download ratios' idea. Although our method has all the same functionality, we decided to adjust the concept as the idea of credits is much easier to understand and use. Also, users logging in to an account with credits enabled can see the current amount of credits they have to spend and are informed of all charges imposed. `,[i,O,p,u,["header",S,"bookmark","what-are-credits-and-why-use-them?","image","afs/Credits.gif"],["header",n,"bookmark","upload-download-ratios"],[3,"supp
11ort"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",4)(5,"p"),t(6,2),e()(),_(7,"app-support-section",5)(8,"p"),t(9,3),e()(),_(10,"app-afs-support-footer"),s(11,"app-link-afs-support",6)(12,"app-link-afs-support",6),e()),n&2&&(l(11),r("support",i.afsSupportService.TutorialGroups),l(),r("support",i.afsSupportService.UsersAndGroups))},dependencies:[b,U,G],encapsulation:2})}}return o})();var x_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-ftp-client"]],decls:46,vars:2,consts:()=>{let S;S=$localize`Creating an account in your FTP client`;let n;n=$localize`Setting up your FTP client`;let i;i=$localize`This page explains how to set up your FTP client to send and receive files via FTP.`;let O;O=$localize` Most FTP clients are designed for access to multiple accounts or multiple FTP servers. So before you can access your files you will need to create a new account in the client. You will normally be asked for the following information `;let p;p=$localize`Server`;let u;u=$localize`This should be your domain, IP address or network computer name which resolves to the location of your FTP server.`;let E;E=$localize`Anonymous login`;let R;R=$localize`If you want to access an anonymous account on the server this option usually allows you to skip entering any login details.`;let F;F=$localize`User name`;let f;f=$localize`This must match the user name specified for the FTP user on the server.`;let c;c=$localize`Password`;let g;g=$localize`This must match the password specified for the FTP user on the server.`;let m;m=$localize`Use PASV mode`;let L;L=$localize` PASV mode allows the server to open ports to accept a data connection for file transfers instead of the client. This is useful for FTP clients which are behind a firewall or router and are unable to accept data connections from the server. `;let h;h=$localize`SSL / TLS`;let X;X=$localize` If your client supports SSL / TLS, you can enable this to allow files to be sent and received securely. For more details, please view the ${"\uFFFD#38\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#38\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `;let x;x=$localize`Remote port`;let V;return V=$localize`The default FTP port is 21 and you should only change this value if you have changed the FTP Port on the server.`,[n,i,O,p,u,E,R,F,f,c,g,m,L,h,X,x,V,["header",S,"bookmark","creating-an-account-in-your-ftp-client"],["header",""],[3,"support"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",17)(5,"p"),t(6,2),e(),_(7,"app-support-list")(8,"app-support-item")(9,"span",18),t(10,3),e(),_(11,"span"),t(12,4),e()(),_(13,"app-support-item")(14,"span",18),t(15,5),e(),_(16,"span"),t(17,6),e()(),_(18,"app-support-item")(19,"span",18),t(20,7),e(),_(21,"span"),t(22,8),e()(),_(23,"app-support-item")(24,"span",18),t(25,9),e(),_(26,"span"),t(27,10),e()(),_(28,"app-support-item")(29,"span",18),t(30,11),e(),_(31,"span"),t(32,12),e()(),_(33,"app-support-item")(34,"span",18),t(35,13),e(),_(36,"span"),H(37,14),s(38,"app-link-afs-support",19),Y(),e()(),_(39,"app-support-item")(40,"span",18),t(41,15),e(),_(42,"span"),t(43,16),e()()()(),_(44,"app-afs-support-footer"),s(45,"app-link-afs-support",19),e()),n&2&&(l(38),r("support",i.afsSupportService.TutorialSSL),l(7),r("support",i.afsSupportService.TutorialSSL))},dependencies:[b,Q,j,G,U],encapsulation:2})}}return o})();var V_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-general"]],decls:55,vars:14,consts:()=>{let S;S=$localize`New installations`;let n;n=$localize`Using users and groups`;let i;i=$localize`Editing FTP messages and replies`;let O;O=$localize`FTP security`;let p;p=$localize`General setup`;let u;u=$localize`This page explains how to configure the FTP server and how to take advantage of the many security options.`;let E;E=$localize` Once installed, we highly recommend you examine all the settings and also read this support guide to ensure you fully understand how to use the available features. All the options in Ability FTP Server are designed to be self-explanatory and usually the support guide is only needed to help explain the occasional option. If at anytime you are unsure of an option, pressing the F1 key will open the support guide on the relevant page. `;let R;
11R=$localize`Running for the first time`;let F;F=$localize` When the software is first loaded after installation, you will probably be prompted to register or start the main process. The main process is what hosts the FTP server service and manages your settings and status information. After clicking 'Yes' and when the main process is successfully started, the administration interface will be displayed. If you are running Windows Vista, then you will need to ensure the administration interface is started with the 'Run as administrator' option enabled. Without this, Ability FTP Server will have not have permission to setup the main process. For more information on its behavior, please view the ${"\uFFFD#11\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `;let f;f=$localize`Creating the first user`;let c;c=$localize` The next logical step is to create your first user account which can be done by simply clicking on the 'Settings' tab, selecting Users and then clicking the 'Add' button. Once you have created your user and clicked 'OK' , you will then be able to use any FTP client to access the new user account. For more information on how to create a user, please view the ${"\uFFFD#16\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `;let g;g=$localize`Preparing your security and limits`;let m;m=$localize` The next step most administrators take is to review the security and limits settings. These allow you to customize the FTP server to your needs and also allow you to enable powerful security options. It is important that these features are examined as these will help protect your FTP server against abusive clients. For more information on these settings, please view the ${"\uFFFD#21\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#21\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `;let L;L=$localize` An advanced feature of Ability FTP Server comes from the ability to assign a user to a particular group. This capability allows much easier and quicker management of the users and also helps ensure the FTP server remains secure. The relationship between a user and its group is that all associated users inherit all settings and limits from the group. For more information on how users and groups are related please view the ${"\uFFFD#25\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#25\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `;let h;h=$localize` Ability FTP Server allows you to edit multi-line responses to almost all of the replies and messages which are sent in response to commands sent by clients. The most popular message which users edit is the welcome message after a user logs in. Any message or reply could contain important notices, information on the status of the server, the status of the logged-in user and more. For more information on how to edit the messages, please view the ${"\uFFFD#29\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#29\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `;let X;X=$localize` The security options available in Ability FTP Server are there purely to help protect your FTP server. Making good use of these features will not only help protect your files but also give you peace of mind. `;let x;x=$localize`SSL protection`;let V;V=$localize` Usually user names, passwords and files sent through FTP connections are sent in clear text. This is fine in most circumstances but it is possible for this information to be intercepted by another party whilst crossing the Internet. Files containing sensitive or confidential material would not be safe unless some method of encryption was enabled on the connection. Ability FTP Server fully supports SSL / TLS, which allow 256-bit encryption to be used on any data sent between the client and the server. For more details how SSL can be used, please view the ${"\uFFFD#37\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#37\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `;let A;A=$localize`IP address control`;let B;B=$localize` A powerful feature of Ability FTP Server is the ability to restrict access based on the client's IP address and host address. This means that you could limit access to important accounts from certain computers on the Internet or your network. This is useful for preventing unauthorized users from gaining access to an account by guessing the password. IP address control rules can be set for the entire FTP server, for certain groups or for individual users. For more information, please view the ${"\uFFFD#42\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#42\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `;let q;q=$localize`Other security options`;let K;return K=$localize` Other security options include anti-hammering, which allows you to automatically block an IP address which gets the password wrong too many times. This prevents 'brute force' attacks which rely on trying hundreds of passwords to gain access. For more details on anti-hammering and the other options please, please view the ${"\uFFFD#47\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#47\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `,[p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,["header",S,"bookmark","new-installations"],[3,"supp
11ort"],["header",n,"bookmark","using-users-and-groups"],["header",i,"bookmark","editing-ftp-messages-and-replies"],["header",O,"bookmark","ftp-security"],["bookmark","ip-control",3,"support"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",18)(5,"p"),t(6,2),e(),_(7,"h3"),t(8,3),e(),_(9,"p"),H(10,4),s(11,"app-link-afs-support",19),Y(),e(),_(12,"h3"),t(13,5),e(),_(14,"p"),H(15,6),s(16,"app-link-afs-support",19),Y(),e(),_(17,"h3"),t(18,7),e(),_(19,"p"),H(20,8),s(21,"app-link-afs-support",19),Y(),e()(),_(22,"app-support-section",20)(23,"p"),H(24,9),s(25,"app-link-afs-support",19),Y(),e()(),_(26,"app-support-section",21)(27,"p"),H(28,10),s(29,"app-link-afs-support",19),Y(),e()(),_(30,"app-support-section",22)(31,"p"),t(32,11),e(),_(33,"h3"),t(34,12),e(),_(35,"p"),H(36,13),s(37,"app-link-afs-support",19),Y(),e(),_(38,"h3"),t(39,14),e(),_(40,"p"),H(41,15),s(42,"app-link-afs-support",23),Y(),e(),_(43,"h3"),t(44,16),e(),_(45,"p"),H(46,17),s(47,"app-link-afs-support",19),Y(),e()(),_(48,"app-afs-support-footer"),s(49,"app-link-afs-support",19)(50,"app-link-afs-support",19)(51,"app-link-afs-support",19)(52,"app-link-afs-support",19)(53,"app-link-afs-support",19)(54,"app-link-afs-support",19),e()),n&2&&(l(11),r("support",i.afsSupportService.TutorialInterface),l(5),r("support",i.afsSupportService.UsersAndGroups),l(5),r("support",i.afsSupportService.FTP),l(4),r("support",i.afsSupportService.TutorialGroups),l(4),r("support",i.afsSupportService.Messages),l(8),r("support",i.afsSupportService.TutorialSSL),l(5),r("support",i.afsSupportService.FTP),l(5),r("support",i.afsSupportService.FTP),l(2),r("support",i.afsSupportService.TutorialInterface),l(),r("support",i.afsSupportService.TutorialGroups),l(),r("support",i.afsSupportService.TutorialCredits),l(),r("support",i.afsSupportService.Messages),l(),r("support",i.afsSupportService.TutorialSSL),l(),r("support",i.afsSupportService.FTP))},dependencies:[b,G,U],encapsulation:2})}}return o})();var W_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-groups"]],decls:62,vars:3,consts:()=>{let S;S=$localize`The concept`;let n;n=$localize`Nested groups`;let i;i=$localize`Using groups`;let O;O=$localize` An advanced feature of Ability FTP Server comes from the ability to assign a user to a particular group. This capability allows much easier and quicker management of the users and also helps ensure the FTP server remains secure. The relationship between a user and its group is that all associated users inherit all settings and limits from the group. However, this concept can often be a little confusing and so to ease understanding this page clarifies a few important details.
12`;let p;p=$localize`The best way of understanding the relationship between a user and a group is to understand the purpose of groups. Groups exist for only two reasons:`;let u;u=$localize`To allow sharing of similar settings amongst multiple users which will help speed up administration.`;let E;E=$localize`To help protect against human error and keep the FTP server secure.`;let R;R=$localize` If a user is part of a group, the user can then only behave within the limitations set by the group. This idea ensures that if a group disallows a particular feature (i.e. file writing), then all associated users will also disallow it. This idea also extends to parameter type limits (e.g. maximum upload speed), which ensures that a limit set by a group will also be placed on associated users. This means that a user is always limited to the group settings, or if required, can set further limitation but cannot remove or reduce the group limits. If a user defines a reduced limit, then this is capped to the group limit. The list below defines the behavior of each available setting for users: `;let F;F=$localize`General access rights`;let f;f=$localize` Users can only enable the rights (permissions) which are also enabled by the group. For a user to be allowed certain access rights, both the user and group must enable the access right. `;
12let c;c=$localize`Password changing`;let g;g=$localize`Both the user, group and overall settings must have this enabled for it to be allowed.`;let m;m=$localize`Root folder`;let L;L=$localize` If a group does not define a root folder, the user is allowed to define any folder of its choice. If a group sets a root folder, then all associated users will share this same root folder. It is also allowed to include the tag ####USER#### in the file path. This results in each user's folder being dynamically generated. If the folder path does not exist, the FTP server will attempt to create the folder when the user logs in. `;let h;h=$localize`Virtual folders`;let X;X=$localize` A user can define any virtual folder of its choice. Any group defined virtual folder is inherited into all associated users. Should the user and group define the same named virtual folder, the group's virtual folder will hide the user's virtual folder. It is also allowed to include the tag ####USER#### in the file path. This results in each user's folder being dynamically generated. If the folder path does not exist, the FTP server will attempt to create the folder when the user logs in. `;let x;x=$localize`Start in folder`;let V;V=$localize`This behaves exactly the same as the 'root folder' setting.`;let A;A=$localize`Limits and credits`;let B;B=$localize` If a group does not define a limit, then the user setting is used. If a group defines a limit, then all the associated users can either obey the limit or set a lower limit. `;let q;q=$localize`IP address control`;let K;K=$localize` If a group does not define any IP address controls, then just the user settings are used. If a group defines any, then the group list is executed first and if no match is found, the users list will be processed next. This ensures groups can take priority over which IP addresses are allowed, but if a group does not define a 'Deny/Allow all' type entry, then the user can add to the list. `;let C;C=$localize`A group's purpose is to define any commonly shared settings and also define the upper limits to which all associated users are allowed.`;let y;return y=$localize` Another benefit of Ability FTP Server is that not only can users be part of a group, groups can also be part of another group. This functionality allows commonly shared settings between groups to be placed into a higher group to further speed and help management. The relationship between two groups is exactly the same as a user and a group (the parent group takes precedence). `,[i,O,p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,y,["header",S,"bookmark","the-concept","image","afs/Groups.png"],[3,"hasHeader"],["header",""],["header",n,"bookmark","nested-groups"],[3,"support"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",22)(5,"p"),t(6,2),e(),_(7,"app-support-list")(8,"app-support-item",23)(9,"span"),t(10,3),e()(),_(11,"app-support-item",23)(12,"span"),t(13,4),e()()(),_(14,"p"),t(15,5),e(),_(16,"app-support-list")(17,"app-support-item")(18,"span",24),t(19,6),e(),_(20,"span"),t(21,7),e()(),_(22,"app-support-item")(23,"span",24),t(24,8),e(),_(25,"span"),t(26,9),e()(),_(27,"app-support-item")(28,"span",24),t(29,10),e(),_(30,"span"),t(31,11),e()(),_(32,"app-support-item")(33,"span",24),t(34,12),e(),_(35,"span"),t(36,13),e()(),_(37,"app-support-item")(38,"span",24),t(39,14),e(),_(40,"span"),t(41,15),e()(),_(42,"app-support-item")(43,"span",24),t(44,16),e(),_(45,"span"),t(46,17),e()(),_(47,"app-support-item")(48,"span",24),t(49,18),e(),_(50,"span"),t(51,19),e()()(),_(52,"blockquote")(53,"strong")(54,"q")(55,"span"),t(56,20),e()()()()(),_(57,"app-support-section",25)(58,"p"),t(59,21),e()(),_(60,"app-afs-support-footer"),s(61,"app-link-afs-support",26),e()),n&2&&(l(8),r("hasHeader",!1),l(3),r("hasHeader",!1),l(50),r("support",i.afsSupportService.UsersAndGroups))},dependencies:[b,Q,j,U,G],encapsulation:2})}}return o})();var B_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-hardware"]],decls:48,vars:0,consts:()=>{let S;S=$localize`Routers and firewalls`;let n;n=$localize`Minimum hardware requirements`;let i;i=$localize`Memory considerations`;let O;O=$localize`Hard drive performance`;let p;p=$localize`Setting up your hardware`;let u;u=$localize`This page gives a few pointers in choosing the right hardware for the FTP server and also how to configure a router or firewall.`;let E;E=$localize` Most connections to the Internet involve a router or firewall. If one is present then you will need to configure it to allow certain ports through to the FTP server. This usually involves either accessing the softw
12are (if it's a software router or firewall) or accessing a HTML interface (if it's a hardware router or firewall). Here you will have the option of choosing a port to accept connections on and a destination computer and port which the connection will be routed to. For the FTP server to function correctly, the list below describes the default ports which may require forwarding. `;let R;R=$localize`Service`;let F;F=$localize`Port`;let f;f=$localize`Implicit SSL port`;let c;c=$localize`FTP`;let g;g=$localize` If you have changed any of the ports then you will need to use your new port values instead. Also, if you have set any ports to bind to a particular IP address, you must ensure that the destination computer information for the port forwarding is set to the correct IP address. If the FTP server is behind a router then it is always a good idea to enter the router's IP address into the FTP server. This will ensure that PASV mode transfers are negotiated to the correct IP address for 'over the Internet' transfers. `;let m;m=$localize`Surprisingly, a server doesn't necessarily have to be a high specification machine. You could minimally host your FTP with the following:`;let L;L=$localize` 1GHz or Higher CPU${"[\uFFFD#31\uFFFD\uFFFD/#31\uFFFD|\uFFFD#32\uFFFD\uFFFD/#32\uFFFD|\uFFFD#33\uFFFD\uFFFD/#33\uFFFD]"}:LINE_BREAK: 2GB RAM${"[\uFFFD#31\uFFFD\uFFFD/#31\uFFFD|\uFFFD#32\uFFFD\uFFFD/#32\uFFFD|\uFFFD#33\uFFFD\uFFFD/#33\uFFFD]"}:LINE_BREAK: 100GB Hard Drive${"[\uFFFD#31\uFFFD\uFFFD/#31\uFFFD|\uFFFD#32\uFFFD\uFFFD/#32\uFFFD|\uFFFD#33\uFFFD\uFFFD/#33\uFFFD]"}:LINE_BREAK: Broadband Internet Connection `,L=st(L);let h;h=$localize` The main thing that needs to be fast is the Internet connection. However, with a lot of traffic coming into your server you may find a higher specification server more effective. A better configuration could be: `;let X;X=$localize` 2GHz or Higher CPU (dual or quad core)${"[\uFFFD#38\uFFFD\uFFFD/#38\uFFFD|\uFFFD#39\uFFFD\uFFFD/#39\uFFFD|\uFFFD#40\uFFFD\uFFFD/#40\uFFFD]"}:LINE_BREAK: 4GB High Speed RAM (possibly more with a very busy server)${"[\uFFFD#38\uFFFD\uFFFD/#38\uFFFD|\uFFFD#39\uFFFD\uFFFD/#39\uFFFD|\uFFFD#40\uFFFD\uFFFD/#40\uFFFD]"}:LINE_BREAK: 500GB High Speed Hard Solid State Drive (possibly more when storing a large amount of files)${"[\uFFFD#38\uFFFD\uFFFD/#38\uFFFD|\uFFFD#39\uFFFD\uFFFD/#39\uFFFD|\uFFFD#40\uFFFD\uFFFD/#40\uFFFD]"}:LINE_BREAK: High Speed Broadband Internet Connection (the faster the better) `,X=st(X);let x;x=$localize` It's very important to have enough memory on your server as busy servers will always perform much quicker with plenty of memory. Most of the important application data is usually stored in memory. Therefore, the more memory you have, the more applications you can safely run. If your server starts to run low on memory, it will start to use the hard drive more. This is often referred to as page file memory and usually results in the system slowing considerably. If the computer has a good amount of memory, commonly accessed files on the hard drive can be 'cached' into memory to improve general performance. This is intended to help reduce the bottle-neck of hard drive access, which compared to normal memory access is very slow. Also, once a system starts to run low on memory and page file use is increased, the system becomes more unstable and is more susceptible to crashes. To put it simply: 'More memory means a more stable and efficient server'. `;let V;return V=$localize` To add to the above memory considerations, it is worth noting that with a very busy server, the hard drive is often responsible for bad performance. Ensuring a fast Hard Drive (at least 7200RPM) is a key element of your server's hardware configuration. Additionally, if the server begins to make more use of page files, then a good hard drive will help maintain performance under exceptionally large demands. `,[p,u,E,R,F,f,c,g,m,L,h,X,x,V,["header",S,"bookmark","routers-and-firewalls"],[1,"table","table-bordered","table-sm","text-center","w-xl-50"],[1,"table-info"],[1,"col-4"],["header",n,"bookmark","minimum-hardware-requirements"],["header",i,"bookmark","memory-considerations"],["header",O,"bookmark","hard-drive-performance"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",14)(5,"p"),t(6,2),e(),_(7,"table",15)(8,"thead")(9,"tr",16)(10,"th",17),t(11,3),e(),_(12,"th",17),t(13,4),e(),_(14,"th",17),t(15,5),e()()(),_(16,"tbody")(17,"tr")(18,"td",17),t(19,6),e(),_(20,"td",17),N(21,"21"),e(),_(22,"td",17),N(23,"990"),e()()()(),_(24,"p"),t(25,7),e()(),_(26,"app-support-section",18)(27,"p"),t(28,8),e(),_(29,"blockquote"),H(30,9),s(31,"br")(32,"br")(33,"br"),Y(),e(),_(34,"p"),t(35,10),e(),_(36,"blockquote"),H(37,11),s(38,"br")(39,"br")(40,"br"),Y(),e()(),_(41,"app-support-section",19)(42,"p"),t(43,12),e(
12)(),_(44,"app-support-section",20)(45,"p"),t(46,13),e()(),s(47,"app-afs-support-footer"))},dependencies:[b,U],encapsulation:2})}}return o})();var q_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-ini-files"]],decls:166,vars:4,consts:()=>{let S;S=$localize`Automatic reloading`;let n;n=$localize`INI file structure`;let i;i=$localize`Editing INI files`;let O;O=$localize`This page describes in detail how to externally manage the FTP server settings using other scripts and applications.`;let p;p=$localize` Ability FTP Server is designed for external control of all available settings. This is possible through the use of INI files which are simple text files editable by any script, application or text editor. The FTP server periodically checks for any changes and then automatically loads in the new settings. The frequency of this checking is controlled by the ${"\uFFFD#7\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: settings. `;let u;u=$localize` Each INI file follows the same structure and is made from a list of value pairs (e.g. attribute=value) of which there are 3 types; strings (text), numbers and booleans (where 1 is true and 0 is false). `;let E;E=$localize`Example 1: A section of the ftp.ini:`;let R;R=$localize` Some INI files also help organise information into sets, which are composed of an opening brace ('${"\uFFFD0\uFFFD"}:INTERPOLATION:') symbol and a name, the value pairs and a closing brace ('${"\uFFFD1\uFFFD"}:INTERPOLATION_1:') symbol. `;let F;F=$localize`Example 2: A section of the client.ini:`;let f;f=$localize`Some INI files which contain undefined amounts of data can use unnamed value pairs or parameters. It is also quite common for sets to be nested within other sets.`;let c;c=$localize`Example 3: A section of the users.ini`;let g;g=$localize`Any spaces at the beginning of a line are always ignored. To help structure a complex file, every set adds a space before its contained data (as in Example 3).`;let m;m=$localize`Simple appending`;let L;return L=$localize` If you do not wish to parse the INI file but simply change an option, this can be done by appending a new value pair onto the end of the file. When Ability FTP Server finds more than one value pair with the same name, the last one in the file will always be used. To add a new user or group, you can simply append a new set onto the end of the appropriate file. `,[i,O,p,u,E,R,F,f,c,g,m,L,["header",S,"bookmark","automatic-reloading"],[3,"support"],["header",n,"bookmark","ini-file-structure"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",12)(5,"p"),H(6,2),s(7,"app-link-afs-support",13),Y(),e()(),_(8,"app-support-section",14)(9,"p"),t(10,3),e(),_(11,"p"),t(12,4),e(),_(13,"blockquote"),N(14," allowexecparams=1"),s(15,"br"),N(16," allowpasschange=0"),s(17,"br"),N(18," allowsitetosite=0"),s(19,"br"),N(20," antihammering=0"),s(21,"br"),N(22," blocktimeoutstopping=0"),s(23,"br"),N(24," deletetorecyclebin=1"),s(25,"br"),N(26," idletimeout=300"),s(27,"br"),N(28," maxdownloadspeedperuser=307200"),s(29,"br"),N(30," maxuploadspeedperuser=512000"),s(31,"br"),N(32," maxusers=100"),s(33,"br"),N(34," maxusersperip=0"),s(35,"br"),N(36," pasvip=192.168.1.200"),s(37,"br"),N(38," pasvrangelower=11300"),s(39,"br"),N(40," pasvrangeupper=11305"),s(41,"br"),e(),_(42,"p"),t(43,5),e(),_(44,"p"),t(45,6),e(),_(46,"blockquote"),N(47," windowheight=570"),s(48,"br"),N(49," windowleft=240"),s(50,"br"),N(51," windowstate=0"),s(52,"br"),N(53," windowtop=212"),s(54,"br"),N(55," windowwidth=800"),s(56,"br"),N(57," { activitytimespan"),s(58,"br"),N(59," \xA0customtype=22"),s(60,"br"),N(61," \xA0enddatetime=20100107120000000"),s(62,"br"),N(63," \xA0number=1"),s(64,"br"),N(65," \xA0startdatetime=20100107090000000"),s(66,"br"),N(67," \xA0type=16"),s(68,"br"),N(69," }"),s(70,"br"),N(71," { logstimespan"),s(72,"br"),N(73," \xA0customtype=22"),s(74,"br"),N(75," \xA0enddatetime=20100107115131929"),s(76,"br"),N(77," \xA0number=1"),s(78,"br"),N(79," \xA0startdatetime=20100107114410533"),s(80,"br"),N(81," \xA0type=1"),s(82,"br"),N(83," } "),e(),_(84,"p"),t(85,7),e(),_(86,"p"),t(87,8),e(),_(88,"blockquote"),N(89," usemaxaccountsize=1"),s(90,"br"),N(91," usemaxdownloadspeed=0"),s(92,"br"),N(93," usemaxuploadspeed=0"),s(94,"br"),N(95," usemaxusers=0"),s(96,"br"),N(97," user=test"),s(98,"br"),N(99," userootpath=1"),s(100,"br"),N(101," usestartdir=0"),s(102,"br"),N(103," { ips"),s(104,"br"),N(105," \xA0-=+ip=192.168.2.9"),s(106,"br"),N(107," \xA0-=+ip=192.168.2.17"),s(108,"br"),N(109," \xA0-=+ip=192.168.2.91"),s(110,"br"),N(111," \xA0-=-ipmask=0.0.0.0/0.0.0.0"),s(112,"br"),N(113," }"),s(114,"br"),N(115," { vfolders"),s(116,"br"),N(117," \xA0{ -"),s(118,"br"),N(119," \xA0\xA0counts=1"),s(120,"br"),N(121," \xA0\xA0creditsignored=0"),s(122,"br"),N(123," \xA0\xA0maxsize=0"),s(124,"br"),N(125," \xA0\xA0name=/test1"),s(126,"br"),N(127," \xA0\xA0path=e:\\testing\\test ftp\\test1\\"),s(128,"br"),N(129," \xA0\xA0rights=18"),s(130,"br"),N(131," \xA0\xA0usemaxsize=0"),s(132,"br"),N(133," \xA0\xA0visible=1"),s(134,"br"),N(135," \xA0}"),s(136,"br"),N(137," \xA0{ -"),s(138,"br"),N(139," \xA0\xA0counts=1"),s(140,"br"),N(141," \xA0\xA0creditsignored=0"),s(142,"br"),N(143," \xA0\xA0maxsize=0"),s(144,"br"),N(145," \xA0\xA0name=/test2"),s(146,"br"),N(147," \xA0\xA0path=e:\\testing\\test ftp\\test2\\"),s(148,"br"),N(149," \xA0\xA0rights=18"),s(150,"br"),N(151," \xA0\xA0usemaxsize=0"),s(152,"br"),N(153," \xA0\xA0visible=1"),s(154,"br"),N(155," \xA0}"),s(156,"br"),N(157," } "),e(),_(158,"p"),t(159,9),e(),_(160,"h3"),t(161,10),e(),_(162,"p"),t(163,11),e()(),_(164,"app-afs-support-footer"),s(165,"app-link-afs-support",13),e()),n&2&&(l(7),r("support",i.afsSupportService.Admin),l(36),Ge("{")("}"),ve(43),l(122),r("support",i.afsSupportService.Admin))},dependencies:[b,G,U],encapsulation:2})}}return o}
12)();var K_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-interface"]],decls:17,vars:0,consts:()=>{let S;S=$localize`Understanding the different processes`;let n;n=$localize`Local and remote administration`;let i;i=$localize`Interface layout`;let O;O=$localize`Editing and saving changes`;let p;p=$localize`Using the interface`;let u;u=$localize` This page describes in detail how to take full advantage of the administration client interface. Because Ability FTP Server contains many features, it may take several minutes to learn where particular settings are located. This tutorial will enable you to quickly learn how to use the interface and help you understand where settings can be found.
13`;let E;E=$localize` Ability FTP Server is split into multiple applications of which each perform different tasks. The most important two are afsmain.exe and afsclient.exe. The 'afsmain' process runs invisibly in the background and is managed automatically. The 'afsclient' process is the administration client interface and enables you to view the status of Ability FTP Server and fully control the settings and activation state. By default the installation process will add a shortcut to your desktop and start menu to load the administration interface. `;let R;R=$localize` By default the administration interface will manage the locally installed FTP server. However, the key benefit of a separate administration interface is that you can fully control the FTP server from any location. By accessing the drop down menu 'File' and selecting 'Connect...', you can enter network address information and connect to other FTP server processes on your network or across the Internet. From a remote location you have access to all the same administration features. To setup a remote computer for access to the FTP server, you must ensure you install at least the client side half of Ability FTP Server. Additionally, if you have enabled security restrictions for the 'Admin' settings, you must ensure the new remote computer's IP address will be allowed to connect. `;let F;F=$localize` To help speed up administration of the FTP server, the status and settings information are divided into two main areas which can be selected by clicking on either the 'Status' or 'Settings' tabs at the top of the interface. Within each of these two main areas are a selection of sub-pages which can be accessed from the icons on the left hand side of the interface. Once you have selected the required icon, the appropriate page will be displayed in main part of the interface. `;let f;return f=$localize` If you make any changes to an area of the settings, you will notice that the Save button at the bottom of the dialog becomes enabled. By clicking the Save button, you can quickly save any changes you make. If there is a problem with your configuration, you will be informed of the problem and the save action will not complete. If you have made a change and then attempt to jump to another unrelated area in the settings, you will be asked if you want to save the changes. Until you have either saved the changes or discarded it, you will not be able to leave that area of the settings. If you wish to restore the settings back to their original installation state, you can click on the 'Reset' button. `,[p,u,E,R,F,f,["header",S,"bookmark","understanding-the-different-processes"],["header",n,"bookmark","local-and-remote-administration","image","afs/MenuConnect.png"],["header",i,"bookmark","interface-layout","image","afs/Navigation.png"],["header",O,"bookmark","editing-and-saving-changes"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),t(3,1),e(),_(4,"app-support-section",6)(5,"p"),t(6,2),e()(),_(7,"app-support-section",7)(8,"p"),t(9,3),e()(),_(10,"app-support-section",8)(11,"p"),t(12,4),e()(),_(13,"app-support-section",9)(14,"p"),t(15,5),e()(),s(16,"app-afs-support-footer"))},dependencies:[b,U],encapsulation:2})}}return o})();var Q_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-license"]],decls:16,vars:2,consts:()=>{let S;S=$localize`Free 30 day trial`;let n;n=$localize`Licenses`;let i;i=$localize`Obtaining a license`;let O;O=$localize` This page describes in detail what licenses are available and how you can purchase a license. For more detailed information on each option of the License settings, please view the ${"\uFFFD#4\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page.
14`;let p;p=$localize` When you first install Ability FTP Server, you will be given a 30 day trial to decide if the softw
14are suits your needs before purchasing a license. This trial will have all features enabled and will operate in Enterprise mode. After the 30 days have passed, the software will continue to run in a limited freeware mode. If you want more features than available in the freeware mode, you must purchase a license key. For more information on the available features in each license, please view the ${"\uFFFD#8\uFFFD"}:START_TAG_APP_LINK_AFS_FEATURES:${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_FEATURES: page. `;let u;return u=$localize` A valid license comes from a single license key and each license key can only be installed on a single computer. Each license allows access to one of two possible editions: Personal or Enterprise. Only the Enterprise edition has all available features enabled and allows business use with unlimited users and domains. For more information on the features available in each edition, please view the ${"\uFFFD#12\uFFFD"}:START_TAG_APP_LINK_AFS_FEATURES:${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_FEATURES: page. `,[i,O,p,u,[3,"support"],["header",S,"bookmark","free-30-day-trial"],["header",n,"bookmark","licenses"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),H(3,1),s(4,"app-link-afs-support",4),Y(),e(),_(5,"app-support-section",5)(6,"p"),H(7,2),s(8,"app-link-afs-features"),Y(),e()(),_(9,"app-support-section",6)(10,"p"),H(11,3),s(12,"app-link-afs-features"),Y(),e()(),_(13,"app-afs-support-footer"),s(14,"app-link-afs-support",4)(15,"app-link-afs-features"),e()),n&2&&(l(4),r("support",i.afsSupportService.License),l(10),r("support",i.afsSupportService.License))},dependencies:[G,b,ae,U],encapsulation:2})}}return o})();var j_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-security"]],decls:16,vars:2,consts:()=>{let S;S=$localize`FTP server security`;let n;n=$localize`Secure streamlining`;let i;i=$localize`Firewalls`;let O;O=$localize`Important security considerations`;let p;p=$localize` These pages contain useful information on how to ensure your FTP server remains secure. For more detailed information on what each option of the security settings, please view the ${"\uFFFD#4\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page.
15`;let u;u=$localize` There are quite a number of things that can be done to enhance the security of your FTP server. First, you can prevent potentially dangerous file types such as 'exe', 'pif', 'scr', 'com' and 'bat' from being allowed onto the server. A very important security improvement is to limit access to your important users by restricting the IP addresses that are allowed access. If you intend to keep the FTP server private, you could also change the listening ports to non-standard values, effectively hiding your FTP server. In particular, remote administration should be set to a non-standard port to help protect your system from users trying to gain access by guessing your password. Finally, making good use of the built in security features such as anti-hammering, SSL and others will help ensure your files are secured. `;let E;E=$localize` Ability FTP Server contains many advanced features which are intended to make the software flexible. However, in a lot of cases, some are not required. We recommend that to ensure security is at its best, you disable services which are not used (e.g. if you don't use File Execution or Site to Site transfers then disable them). With fewer services running, there are fewer portals for hackers to attempt a break in. This does not only apply to our FTP server; other services such as web servers, email servers, windows file sharing and others can also be streamlined. `;let R;return R=$localize` As well as limiting the services that you run on your server, it is also a good idea to use a firewall to restrict access to only the ports needed. This way you can be sure that there are no ports accessible through flaws in Windows or other software. You should always build your security by starting with a 'brick wall' (firewall) around your server then letting through just the bits you want as and when they are needed. `,[O,p,u,E,R,[3,"supp
15ort"],["header",S,"bookmark","ftp-server-security"],["header",n,"bookmark","secure-streamlining"],["header",i,"bookmark","firewalls"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),H(3,1),s(4,"app-link-afs-support",5),Y(),e(),_(5,"app-support-section",6)(6,"p"),t(7,2),e()(),_(8,"app-support-section",7)(9,"p"),t(10,3),e()(),_(11,"app-support-section",8)(12,"p"),t(13,4),e()(),_(14,"app-afs-support-footer"),s(15,"app-link-afs-support",5),e()),n&2&&(l(4),r("support",i.afsSupportService.FTP),l(11),r("support",i.afsSupportService.FTP))},dependencies:[G,b,U],encapsulation:2})}}return o})();var J_=(()=>{class o{constructor(){this.afsReleaseService=M(le),this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-tutorial-ssl"]],decls:45,vars:6,consts:()=>{let S;S=$localize`What is SSL?`;let n;n=$localize`Certificates`;let i;i=$localize`Configuring SSL`;let O;O=$localize`Creating certificates`;let p;p=$localize`Importing certificates`;let u;u=$localize`Using SSL`;let E;E=$localize` This page explains how to set up SSL to send and receive files securely via FTP. For more detailed information on what each option of the 'Security' dialog performs, please view the ${"\uFFFD#4\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page.
16`;let R;R=$localize` The Secure Socket Layer (SSL) is used to encrypt data as it is sent down a connection. This protects data from being intercepted for malicious use via what is referred to as a 'man in the middle' attack. With SSL, if any information is intercepted it will be useless without the relevant information needed to decrypt it. Therefore when using SSL, you have a guarantee that the data you send and receive is always safe and secure. `;let F;F=$localize` SSL also deals with authenticating both client and server by using certificates to validate their identity. This is especially important for preventing a 'masquerade' attack. This is where a third party can actually pretend to be your server in order to gain sensitive material or send harmful viruses to your users. SSL certificates ensure that the server you are connecting to is the server you intended to connect to. `;let f;f=$localize` When using SSL with Ability FTP Server, there are a few things that you need to understand in order to configure your server correctly. First of all, the server must have at least one certificate for SSL connections to use. These will be used to validate the servers identity to clients. Ability FTP Server supports two different modes for which SSL can be used, these are 'Explicit SSL' and 'Implicit SSL'. `;let c;c=$localize`Explicit SSL`;let g;g=$localize` Explicit SSL operates such that a connection to the server is made on the normal service port. Communication initially starts in plain text until the client issues an authentication command, which then leads to certificate verification and a secure SSL connection being negotiated. If all goes well, then the server and client will proceed to send all further commands and replies encrypted using SSL. `;let m;m=$localize`Implicit SSL`;let L;L=$localize` Implicit SSL allows the server to specify a different port dedicated to SSL communication. Any connections made to this port require immediate negotiation of certificates and SSL, avoiding any communication in plain text whatsoever. `;let h;h=$localize`Data channel encryption`;let X;X=$localize` The security standard for FTP states that the data channel remains insecure by default. This means that SSL encryption would usually only be enabled on the command channel. Although this would protect from eavesdropping of user names, passwords and file locations, the uploaded and downloaded files would remain vulnerable. By setting the data channel to be encrypted by default, the FTP client does not have to implicitly state encryption of the data channel. However, you must ensure that the FTP client is able to deal with an automatically encrypted data channel. `;let x;x=$localize`Certificates`;let V;V=$localize` On the Security tab of the settings dialog for Ability FTP Server, there is a button that will take you to the certificate management area. This area allows you to create and also import certificates to be used with the server's SSL communication. To use SSL, you must have at least one certificate installed in Ability FTP Server and you must also select one certificate as the default. `;let A;A=$localize` Creating new certificates is the simplest method of acquiring a certificate. Simply click 'Create' and fill in the necessary information. If you are unsure of any option, you can always press F1 on any open dialog to open the support guide on the relevant page. All certificates require a private key and Ability FTP Server will either create a 4096 bit key or 2048 bit key depen
16ding on your selection. Larger private keys will provide stronger security on your connections so a 4096 bit key is recommended. Once all options are completed, simply click 'Create' again and your new certificate will be generated and ready to use. `;let B;B=$localize`Certificate signing requests (CSR)`;let q;q=$localize` When you create a new certificate using Ability FTP Server, three files related to that certificate are generated in the 'certs' folder (usually '${"\uFFFD0\uFFFD"}:INTERPOLATION:'). These include a private key (.key) file, a certificate signing request (.csr) and a self signed certificate (.crt). Normally, you use the self signed certificate and corresponding private key for SSL communication. However, if you want to have your certificates signed by a trusted certificate authority, such as VeriSign, you can send them the certificate signing request (.csr) file. They can sign this and send you back a new certificate (.crt or .cer) file. To use this new certificate you must import this back into Ability FTP Server using the original private key (.key) and newly signed certificate (.crt or .cer). For more details on importing certificates please read below. `;let K;return K=$localize` If you choose to import an existing certificate, you must have access to the certificate file and the relevant private key used to create it. These can be in a range of formats. Usually a private key is contained in a '.key' file and the certificate in either a '.crt' or '.cer' file. However, it is also common to produce a combined private key / certificate pair in a single file suffixed '.pem'. Ability FTP Server can take any known format of RSA base64 encoded private keys and certificates. It then loads in the pair and checks the integrity to ensure that they match each other. Once the pair has been successfully checked, they are copied to the 'certs' folder in the '.key' and '.crt' format. If the files have different names (e.g. cert2.key / bobscert.crt) then the key is renamed to match the certificate (i.e. bobscert.key / bobscert.crt). You can also specify an entirely new name for both to be renamed to. For more information, please view the ${"\uFFFD#40\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#40\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. `,[u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,[3,"support"],["header",S,"bookmark","what-is-ssl?","image","Padlock.gif"],["header",n,"bookmark","certificates"],["header",i,"bookmark","configuring-ssl"],["header",O,"bookmark","creating-certificates"],["header",p,"bookmark","importing-certificates"],["bookmark","import-ssl-certificate",3,"support"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),H(3,1),s(4,"app-link-afs-support",17),Y(),e(),_(5,"app-support-section",18)(6,"p"),t(7,2),e(),_(8,"app-support-section",19)(9,"p"),t(10,3),e()()(),_(11,"app-support-section",20)(12,"p"),t(13,4),e(),_(14,"h3"),t(15,5),e(),_(16,"p"),t(17,6),e(),_(18,"h3"),t(19,7),e(),_(20,"p"),t(21,8),e(),_(22,"h3"),t(23,9),e(),_(24,"p"),t(25,10),e(),_(26,"h3"),t(27,11),e(),_(28,"p"),t(29,12),e()(),_(30,"app-support-section",21)(31,"p"),t(32,13),e(),_(33,"h3"),t(34,14),e(),_(35,"p"),t(36,15),e()(),_(37,"app-support-section",22)(38,"p"),H(39,16),s(40,"app-link-afs-support",23),Y(),e()(),_(41,"app-afs-support-footer"),s(42,"app-link-afs-support",17)(43,"app-link-afs-support",17)(44,"app-link-afs-support",17),e()),n&2&&(l(4),r("support",i.afsSupportService.TutorialSecurity),l(32),Ge(i.afsReleaseService.CertsFolder),ve(36),l(4),r("support",i.afsSupportService.SSLCertificates),l(2),r("support",i.afsSupportService.TutorialSecurity),l(),r("support",i.afsSupportService.SSLCertificates),l(),r("support",i.afsSupportService.FTP))},dependencies:[G,b,U],encapsulation:2})}}return o})();var Z_=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-update-history"]],decls:308,vars:54,consts:()=>{let S;S=$localize`Update history`;let n;n=$localize`OpenSSL to version 4.0.0.`;let i;i=$localize`OpenSSL to version 3.6.1.`;let O;O=$localize`TLS version 1.3.`;let p;p=$localize`OpenSSL to version 3.4.0.`;let u;u=$localize`Activity data graph y-axis to scale up to a maximum of 10,000 rather than 50,000 before changing units.`;let E;E=$localize`Data sizes to display in KB, MB, GB, TB and PB with rounding and decimal formatting.`;let R;R=$localize`Activity Graph mouseover summary to only show when the application is focused.`;let F;F=$localize`Default SSL Mode to TLS v1.2.`;let f;f=$localize`TLS v1.1 and v1.2 SSL modes.`;let c;c=$localize`SSL certificate private key length to 4096 bits.`;let g;g=$localize`OpenSSL back to version 1.0.2L to fix stability issues.`;let m;m=$localize`OpenSSL to version 1.0.2n.`;let L;
16L=$localize`Logging into an account with an invalid network folder path could cause the system to lock temporarily.`;let h;h=$localize`Initial release of Ability FTP Server 3.`;let X;X=$localize`Version 2 to 3 transfer tool.`;let x;x=$localize`Online activation license system.`;let V;V=$localize`FTP Protocol setting to use the server's timezone instead of GMT for file timestamps.`;let A;A=$localize`OpenSSL to version 1.0.2j.`;let B;B=$localize`Common Runtime Files installation to Visual C++ Redistributable 2015.`;let q;q=$localize`SSL import certificate was not working correctly.`;let K;K=$localize`Online activation license system.`;let C;C=$localize`SSL import certificate was not working correctly.`;let y;y=$localize`OpenSSL to version 1.0.2h.`;let w;w=$localize`Setting to select a specific SSL version.`;let J;J=$localize`Reintroduced support for SSL v2/3.`;let Z;Z=$localize`OpenSSL to version 1.0.2d.`;let ee;ee=$localize`Windows 7 compatibility issues.`;let v;v=$localize`OpenSSL to version 1.0.2c.`;let _e;_e=$localize`Help manual to be fully online.`;let te;te=$localize`OpenSSL to version 1.0.2a.`;let ne;ne=$localize`File browse dialog.`;let oe;oe=$localize`Freeware mode now correctly runs after the initial 30 day trial period ends.`;let ie;ie=$localize`Freeware mode that runs after the initial 30 day trial period ends.`;let d;d=$localize`Expiry period on all newly purchased Ability FTP Server licenses.`;let k;k=$localize`OpenSSL to version 1.0.1L.`;let Se;Se=$localize`Use of SSL 2 and 3 to address PoodleBleed vulnerabilities.`;let se;se=$localize`OpenSSL to version 1.0.1j.`;let re;re=$localize`OpenSSL to version 1.0.1i.`;let D;D=$localize`Added digital signature to installation for greater security.`;let de;de=$localize` OpenSSL to version 1.0.1g which includes the heartbleed vulnerability fix. Although no previous versions of Ability FTP Server were ever affected by this vulnerability. `;let z;z=$localize`Accuracy of monitoring graphs when processing large time lines.`;let Ee;Ee=$localize`Some minor interface issues.`;let ue;ue=$localize`SSL support.`;let Ne;Ne=$localize`Connections could occasionally be interrupted by an unintentional service restart during heavy load.`;let ce;ce=$localize`SSL setting to enable only SSL version 3 and TLS.`;let Ce;Ce=$localize`Sometimes file sizes were reported incorrectly.`;let Re;Re=$localize`Interface can now correctly allow creation of nested group.`;let Me;Me=$localize`Some licenses would incorrectly only load the first 25 users after a reboot.`;let Fe;Fe=$localize`The server now accepts lower case parameters in the TYPE command.`;let fe;fe=$localize`Restriction to 20,000 files per directory has been increased to 50,000 files per directory.`;let ge;ge=$localize`Retrieving and setting file times now work purely in GMT time as is common amongst other servers and clients.`;let me;me=$localize`Installer now supports customizing the installed components.`;let he;he=$localize`Several new error messages to client interface when connection to server fails.`;let Ie;Ie=$localize`Installing and Uninstalling now correctly manage any running services and applications.`;let $e;$e=$localize`Admin interface can now be navigated completely without a mouse by using CTRL and the arrow keys.`;let I;I=$localize`When closing the client, the warning message is now more accurate.`;let be;be=$localize`All clients with resume support should now work correctly.`;let Xe;Xe=$localize`Performing an update could result in an unnecessary error message.`;let ke;ke=$localize`Client interface will now be able to correctly save its settings when running on Vista and Windows 7.`;let ze;ze=$localize`Tabbing between settings on the client interface is now correctly ordered.`;let He;He=$localize`Minor activity graph alignment issue.`;let Ye;Ye=$localize`Client interface executable file now correctly shows the icon.`;let xe;xe=$localize`Initial beta release of Ability FTP Server 2.`;let Ve;Ve=$localize`Entirely new administration interface.`;let We;We=$localize`Remote administration interface which enables full admin access from any location.`;let Be;Be=$localize`Remote administration protocol which enables full admin access via a telnet-style command line.`;let qe;qe=$localize`Real-time status information.`;let Ke;Ke=$localize`Graphical information for real-time and past activity.`;let Qe;Qe=$localize`Log search and view facility.`;let je;je=$localize`Session viewer to examine and control real-time and past connections.`;let Je;Je=$localize`Support for larger than 4 GB files and folders.`;let Ze;Ze=$localize`Multi-port listening capability.`;let e_;e_=$localize`Settings and users are stored in externally accessible INI files.`;let __;__=$localize`Process management to ensure server stays online.`;let t_;t_=$localize`Improved IP address management rules.`;let n_;n_=$localize`Log format for easier access and searching.`;let o_;o_=$localize`Many new optimizations that allow the FTP server run several times faster.`;let i_;i_=$localize`Transfer speeds are now greatly optimized and will now use maximum available bandwidth.`;let S_;S_=$localize`Support for Windows Vista, Windows 2008 and Windows 7.`;let s_;s_=$localize`SSL connections now only allow strong ciphers.`;let r_;r_=$localize`Remote admin group page used the obsolete file modify access right.`;let a_;a_=$localize`TLS mode now uses SSL version 2/3 for better client compatibility.`;let l_;l_=$localize`'File append' and 'file delete' access rights.`;let T_;T_=$localize`STOU command now supports parameters.`;let A_;A_=$localize`Updating the installation can be performed while the FTP server is still online.`;let P_;P_=$localize`Corrupt SSL certificates could cause the dialog interface to crash.`;let d_;d_=$localize`All site commands to 'HELP' response.`;let O_;O_=$localize`Hidden files are now excluded from folder listings.`;let p_;p_=$localize`'####USER####' tag for use in the group's root folder and virtual folder paths.`;let E_;E_=$localize`Windows XP theme support to the dialog interface.`;let u_;u_=$localize`Renaming of files or folders to the same name now results in a positive response.`;let N_;N_=$localize`Banned file type limits could be bypassed by placing a '.' on the end of the filename.`;let c_;c_=$localize`SSL Version 3 support.`;let T;
16T=$localize`Folder listings now also include the year.`;let at;at=$localize`Thread pooling to improve efficiency.`;let lt;lt=$localize`Update history to help manual.`;let Tt;Tt=$localize`Un-installation now removes the NT Service (only works if installed as 1.13 or above).`;let At;At=$localize`Virtual Folder modified time now displays the time of the actual folder.`;let Pt;Pt=$localize`File modified time was always displayed as GMT time.`;let dt;dt=$localize`If NT Service button was not shown it was still possible to use ALT-N to press it.`;let Ot;Ot=$localize`SSL certificate generation now self signs the certificate.`;let pt;pt=$localize`Responses descriptions are more client friendly.`;let Et;Et=$localize`If 'folder view' is enabled, blank folder listings are now sent in place of the 550 message.`;let ut;ut=$localize`'SITE EXEC' command.`;let Nt;Nt=$localize`Icon changes when users are logged into the server.`;let ct;ct=$localize`'APPE' should have created a file if one didn't exist.`;let Ct;Ct=$localize`'CWD' should have work with no parameters.`;let Rt;Rt=$localize`If Site-to-Site transfers is enabled, PASV data ports should listen on all IP addresses not just one.`;let Mt;Mt=$localize`Remote admin deleting an account did not the kick connected users.`;let Ft;Ft=$localize`Support for certificate signing request files.`;let ft;ft=$localize`Router IP address setting for full router compatibility.`;let gt;gt=$localize`Deactivation is now more efficient. Previously, it could occasionally take several minutes to deactivate.`;let mt;mt=$localize`Support for SSL / TLS.`;let ht;ht=$localize`Binding to a single IP address setting.`;let It;It=$localize`Configurable port range for PASV transfers.`;let $t;$t=$localize`Support for LIST/NLST flags (i.e.–aL)`;let Ut;Ut=$localize`Support *.dat style LIST/NLST requests.`;let Lt;Lt=$localize`Support for advanced message control.`;let yt;yt=$localize`Improved help manual.`;let Gt;Gt=$localize`Various dialog interface improvements.`;let vt;vt=$localize`Daylight saving time issue.`;let wt;wt=$localize`Handle resource leak.`;let Dt;Dt=$localize`Spelling error on groups.html.`;let bt;bt=$localize`Various minor dialog interface issues.`;let Xt;Xt=$localize`'Delete to recycle bin' setting.`;let kt;kt=$localize`Banned file list.`;let zt;zt=$localize`Flag for virtual folders so they can be exempt from credit rules.`;let Ht;Ht=$localize`Independent optional logs for each account.`;let Yt;Yt=$localize`Support for STOU command.`;let xt;xt=$localize`Log view to remote admin.`;let Vt;Vt=$localize`Copy function into remote admin.`;let Wt;Wt=$localize`Support for network path names (e.g. \\\\pc3\\shared).`;let Bt;Bt=$localize`Accounts now ordered in alphabetical order in remote admin too.`;let qt;return qt=$localize`'xUXTHEME.DLL' bug.`,[S,n,i,O,p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,y,w,J,Z,ee,v,_e,te,ne,oe,ie,d,k,Se,se,re,D,de,z,Ee,ue,Ne,ce,Ce,Re,Me,Fe,fe,ge,me,he,Ie,$e,I,be,Xe,ke,ze,He,Ye,xe,Ve,We,Be,qe,Ke,Qe,je,Je,Ze,e_,__,t_,n_,o_,i_,S_,s_,r_,a_,l_,T_,A_,P_,d_,O_,p_,E_,u_,N_,c_,T,at,lt,Tt,At,Pt,dt,Ot,pt,Et,ut,Nt,ct,Ct,Rt,Mt,Ft,ft,gt,mt,ht,It,$t,Ut,Lt,yt,Gt,vt,wt,Dt,bt,Xt,kt,zt,Ht,Yt,xt,Vt,Wt,Bt,qt,["version","3.1.2",3,"day","month","year"],["version","3.1.1",3,"day","month","year"],["version","3.1.0",3,"day","month","year"],["version","3.0.3",3,"day","month","year"],["version","3.0.2",3,"day","month","year"],["version","3.0.1",3,"day","month","year"],["version","3.0.0",3,"day","month","year"],["version","2.2.0",3,"day","month","year"],["version","2.1.6",3,"day","month","year"],["version","2.1.5",3,"day","month","year"],["version","2.1.4",3,"day","month","year"],["version","2.1.3",3,"day","month","year"],["version","2.1.2",3,"day","month","year"],["version","2.1.1",3,"day","month","year"],["version","2.1.0",3,"day","month","year"],["version","2.0.8",3,"day","month","year"],["version","2.0.7",3,"day","month","year"],["version","2.0.6",3,"day","month","year"],["version","2.0.5"],["version","2.0.4"],["version","2.0.3"],["ver
16sion","2.0.2"],["version","2.0.1b"],["version","1.20"],["version","1.18"],["version","1.17"],["version","1.16"],["version","1.15"],["version","1.14"],["version","1.13"],["version","1.12"],["version","1.11"],["version","1.10"],["version","1.10b"],["version","1.09b"],["version","1.04"],["version","1.03"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"app-update-section",135)(3,"app-update-item-updated"),t(4,1),e()(),_(5,"app-update-section",136)(6,"app-update-item-updated"),t(7,2),e()(),_(8,"app-update-section",137)(9,"app-update-item-added"),t(10,3),e(),_(11,"app-update-item-updated"),t(12,4),e(),_(13,"app-update-item-updated"),t(14,5),e(),_(15,"app-update-item-updated"),t(16,6),e(),_(17,"app-update-item-fixed"),t(18,7),e()(),_(19,"app-update-section",138)(20,"app-update-item-updated"),t(21,8),e(),_(22,"app-update-item-fixed"),t(23,9),e()(),_(24,"app-update-section",139)(25,"app-update-item-updated"),t(26,10),e(),_(27,"app-update-item-updated"),t(28,11),e()(),_(29,"app-update-section",140)(30,"app-update-item-updated"),t(31,12),e(),_(32,"app-update-item-fixed"),t(33,13),e()(),_(34,"app-update-section",141)(35,"app-update-item"),t(36,14),e(),_(37,"app-update-item-added"),t(38,15),e(),_(39,"app-update-item-added"),t(40,16),e(),_(41,"app-update-item-added"),t(42,17),e(),_(43,"app-update-item-updated"),t(44,18),e(),_(45,"app-update-item-updated"),t(46,19),e(),_(47,"app-update-item-fixed"),t(48,20),e()(),_(49,"app-update-section",142)(50,"app-update-item-added"),t(51,21),e(),_(52,"app-update-item-fixed"),t(53,22),e()(),_(54,"app-update-section",143)(55,"app-update-item-updated"),t(56,23),e()(),_(57,"app-update-section",144)(58,"app-update-item-added"),t(59,24),e(),_(60,"app-update-item-updated"),t(61,25),e()(),_(62,"app-update-section",145)(63,"app-update-item-updated"),t(64,26),e(),_(65,"app-update-item-fixed"),t(66,27),e()(),_(67,"app-update-section",146)(68,"app-update-item-updated"),t(69,28),e()(),_(70,"app-update-section",147)(71,"app-update-item-updated"),t(72,29),e(),_(73,"app-update-item-updated"),t(74,30),e(),_(75,"app-update-item-fixed"),t(76,31),e()(),_(77,"app-update-section",148)(78,"app-update-item-fixed"),t(79,32),e()(),_(80,"app-update-section",149)(81,"app-update-item-added"),t(82,33),e(),_(83,"app-update-item-removed"),t(84,34),e(),_(85,"app-update-item-updated"),t(86,35),e()(),_(87,"app-update-section",150)(88,"app-update-item-removed"),t(89,36),e(),_(90,"app-update-item-updated"),t(91,37),e()(),_(92,"app-update-section",151)(93,"app-update-item-updated"),t(94,38),e(),_(95,"app-update-item-updated"),t(96,39),e()(),_(97,"app-update-section",152)(98,"app-update-item-updated"),t(99,40),e()(),_(100,"app-update-section",153)(101,"app-update-item-updated"),t(102,41),e(),_(103,"app-update-item-fixed"),t(104,42),e()(),_(105,"app-update-section",154)(106,"app-update-item-updated"),t(107,43),e(),_(108,"app-update-item-fixed"),t(109,44),e()(),_(110,"app-update-section",155)(111,"app-update-item-added"),t(112,45),e(),_(113,"app-update-item-fixed"),t(114,46),e(),_(115,"app-update-item-fixed"),t(116,47),e(),_(117,"app-update-item-fixed"),t(118,48),e(),_(119,"app-update-item-fixed"),t(120,49),e(),_(121,"app-update-item-fixed"),t(122,50),e(),_(123,"app-update-item-fixed"),t(124,51),e()(),_(125,"app-update-section",156)(126,"app-update-item-added"),t(127,52),e(),_(128,"app-update-item-added"),t(129,53),e(),_(130,"app-update-item-added"),t(131,54),e(),_(132,"app-update-item-added"),t(133,55),e(),_(134,"app-update-item-updated"),t(135,56),e(),_(136,"app-update-item-fixed"),t(137,57),e(),_(138,"app-update-item-fixed"),t(139,58),e(),_(140,"app-update-item-fixed"),t(141,59),e(),_(142,"app-update-item-fixed"),t(143,60),e(),_(144,"app-update-item-fixed"),t(145,61),e(),_(146,"app-update-item-fixed"),t(147,62),e()(),_(148,"app-update-section",157)(149,"app-update-item"),t(150,63),e(),_(151,"app-update-item-added"),t(152,64),e(),_(153,"app-update-item-added"),t(154,65),e(),_(155,"app-update-item-added"),t(156,66),e(),_(157,"app-update-item-added"),t(158,67),e(),_(159,"app-update-item-added"),t(160,68),e(),_(161,"app-update-item-added"),t(162,69),e(),_(163,"app-update-item-added"),t(164,70),e(),_(165,"app-update-item-added"),t(166,71),e(),_(167,"app-update-item-added"),t(168,72),e(),_(169,"app-update-item-added"),t(170,73),e(),_(171,"app-update-item-added"),t(172,74),e(
16),_(173,"app-update-item-updated"),t(174,75),e(),_(175,"app-update-item-updated"),t(176,76),e()(),_(177,"app-update-section",158)(178,"app-update-item-added"),t(179,77),e(),_(180,"app-update-item-added"),t(181,78),e(),_(182,"app-update-item-added"),t(183,79),e()(),_(184,"app-update-section",159)(185,"app-update-item-updated"),t(186,80),e(),_(187,"app-update-item-fixed"),t(188,81),e(),_(189,"app-update-item-fixed"),t(190,82),e()(),_(191,"app-update-section",160)(192,"app-update-item-added"),t(193,83),e(),_(194,"app-update-item-updated"),t(195,84),e(),_(196,"app-update-item-updated"),t(197,85),e(),_(198,"app-update-item-fixed"),t(199,86),e()(),_(200,"app-update-section",161)(201,"app-update-item-added"),t(202,87),e(),_(203,"app-update-item-added"),t(204,88),e(),_(205,"app-update-item-added"),t(206,89),e(),_(207,"app-update-item-added"),t(208,90),e(),_(209,"app-update-item-updated"),t(210,91),e(),_(211,"app-update-item-fixed"),t(212,92),e()(),_(213,"app-update-section",162)(214,"app-update-item-added"),t(215,93),e(),_(216,"app-update-item-updated"),t(217,94),e()(),_(218,"app-update-section",163)(219,"app-update-item-added"),t(220,95),e()(),_(221,"app-update-section",164)(222,"app-update-item-added"),t(223,96),e(),_(224,"app-update-item-added"),t(225,97),e(),_(226,"app-update-item-updated"),t(227,98),e(),_(228,"app-update-item-fixed"),t(229,99),e(),_(230,"app-update-item-fixed"),t(231,100),e()(),_(232,"app-update-section",165)(233,"app-update-item-updated"),t(234,101),e(),_(235,"app-update-item-updated"),t(236,102),e(),_(237,"app-update-item-updated"),t(238,103),e()(),_(239,"app-update-section",166)(240,"app-update-item-added"),t(241,104),e(),_(242,"app-update-item-added"),t(243,105),e(),_(244,"app-update-item-fixed"),t(245,106),e(),_(246,"app-update-item-fixed"),t(247,107),e(),_(248,"app-update-item-fixed"),t(249,108),e(),_(250,"app-update-item-fixed"),t(251,109),e()(),_(252,"app-update-section",167)(253,"app-update-item-added"),t(254,110),e(),_(255,"app-update-item-added"),t(256,111),e()(),_(257,"app-update-section",168)(258,"app-update-item-updated"),t(259,112),e()(),_(260,"app-update-section",169)(261,"app-update-item-added"),t(262,113),e(),_(263,"app-update-item-added"),t(264,114),e(),_(265,"app-update-item-added"),t(266,115),e(),_(267,"app-update-item-added"),t(268,116),e(),_(269,"app-update-item-added"),t(270,117),e(),_(271,"app-update-item-added"),t(272,118),e(),_(273,"app-update-item-updated"),t(274,119),e(),_(275,"app-update-item-updated"),t(276,120),e(),_(277,"app-update-item-fixed"),t(278,121),e(),_(279,"app-update-item-fixed"),t(280,122),e()(),_(281,"app-update-section",170)(282,"app-update-item-fixed"),t(283,123),e(),_(284,"app-update-item-fixed"),t(285,124),e()(),_(286,"app-update-section",171)(287,"app-update-item-added"),t(288,125),e(),_(289,"app-update-item-added"),t(290,126),e(),_(291,"app-update-item-added"),t(292,127),e(),_(293,"app-update-item-added"),t(294,128),e(),_(295,"app-update-item-added"),t(296,129),e(),_(297,"app-update-item-added"),t(298,130),e(),_(299,"app-update-item-added"),t(300,131),e(),_(301,"app-update-item-added"),t(302,132),e(),_(303,"app-update-item-updated"),t(304,133),e(),_(305,"app-update-item-fixed"),t(306,134),e()(),s(307,"app-afs-support-footer")),n&2&&(l(2),r("day",1)("month",6)("year",2026),l(3),r("day",6)("month",2)("year",2026),l(3),r("day",6)("month",11)("year",2024),l(11),r("day",3)("month",1)("year",2020),l(5),r("day",6)("month",9)("year",2018),l(5),r("day",19)("month",2)("year",2018),l(5),r("day",20)("month",2)("year",2017),l(15),r("day",20)("month",2)("year",2017),l(5),r("day",16)("month",6)("year",2016),l(3),r("day",8)("month",11)("year",2015),l(5),r("day",16)("month",7)("year",2015),l(5),r("day",1)("month",7)("year",2015),l(3),r("day",13)("month",5)("year",2015),l(7),r("day",17)("month",2)("year",2015),l(3),r("day",4)("month",2)("year",2015),l(7),r("day",13)("month",10)("year",2014),l(5),r("day",4)("month",9)("year",2014),l(5),r("day",18)("month",4)("year",2014))},dependencies:[dn,Pn,ln,Tn,an,An,U],encapsulation:2})}}return o})();var et=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-users-and-groups"]],decls:236,vars:5,consts:()=>{let S;S=$localize`Users / groups`;let n;n=$localize`User / group`;let i;i=$localize`Access rights`;let O;O=$localize`Folders`;let p;p=$localize`Virtual folder`;let u;u=$localize`Limits`;let E;E=$localize`IP address control`;let R;R=$localize`IP address control entry`;let F;F=$localize`Users and groups`;let f;f=$localize` Ability FTP Server has been designed to offer a large amount of control over users while avoiding unnecessary complexity. This control is made quicker, easier and safer by the use of groups (which help to manipulate multiple users at the same time). The relationship between a user and a group is documented in detail in the ${"\uFFFD#4\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. Users and groups have almost identical control options and therefore once you understand how to set up a user, all you need to learn for groups is how they affect users belonging to them.
17`;let c;c=$localize`Add`;let g;g=$localize`This allows you to add a user / group.`;let m;m=$localize`Edit`;let L;L=$localize`Once created, this allows you to edit an existing user / group.`;let h;h=$localize`Copy`;let X;X=$localize`This allows you to easily duplicate the settings of an existing user or group to help save time creating additional users or groups with similar settings.`;let x;x=$localize`Delete`;let V;V=$localize`This allows you to delete a user / group. You will be warned of deleti
17ons to prevent unnecessary removals.`;let A;A=$localize`Enable user / group`;let B;B=$localize` If you untick this option, the user (or in a group all the users associated with the group) will become disabled. This can be used to temporarily disable a user without having to delete the user. `;let q;q=$localize`User / group name`;let K;K=$localize`For a user, this is the login name and also the user name. For a group, this is simply the group name.`;let C;C=$localize`Password`;let y;y=$localize`This allows you to control the password of the user (not available in group controls).`;let w;w=$localize`Part of group`;let J;J=$localize` This allows you to set the user or group to be part of a group. The effect of this is documented in the ${"\uFFFD#49\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#49\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. It is possible for groups to be part of other groups. This opens up the possibility of nested groups and complex tree like structures. However, the most common use is just to assign a user to a group. `;let Z;Z=$localize`Only allow login with SSL`;let ee;ee=$localize` With this enabled, only users who are connecting via SSL / TLS will be allowed access. This is useful if you want to protect important files by forcing users to login securely. `;let v;v=$localize`Allow users to change the password`;let _e;_e=$localize` With this enabled, any logged in user can send the 'SITE CPWD (new password)' command to change the user password. If this option is disabled in a group, then none of the associated users would be allowed to change the password. Please note that this option is also controlled via the overall FTP settings security option which also has to be enabled for password changing to work. `;let te;te=$localize`Allow users to execute (run/open) files`;let ne;ne=$localize` With this enabled, any logged in user can send the 'SITE EXEC (file path) (parameters)' command to execute a file on the server. If this option is disabled in a group, then none of the associated users would be allowed this access right. It is recommended that any user which has this enabled should have a strong password that is known only by trusted users. `;let oe;oe=$localize`Always allow login (ignore login limits)`;let ie;ie=$localize` If you set a restriction on the number of users, this will ensure that those limits are ignored. This option is not available for groups and is usually only applied to a special user (such as the account owned by the administrator). `;let d;d=$localize`Log user activities separately`;let k;k=$localize`If required, you can set a user to log a copy of all its activities into a separate log file (for easier analysis).`;let Se;Se=$localize`Access rights`;let se;se=$localize` This allows you to control the overall access permissions the user has. These settings not only affect the root folder but also any virtual folders in the user. So by disabling 'file read', all virtual folders will also disallow file reading (even if they are set to allow it). If 'file read' was enabled here but not in a virtual folder, then that virtual folder would still disallow file reading. If a group did not enable 'file read' then all the associated users and their virtual folders would not be granted file read access. By enabling 'file read' in a group, all associated users do not automatically get 'file read' access, but instead are just allowed to enable 'File read'. Please note that 'file append' requires the 'file write' permission to also be set. Additionally, 'file delete' will also allow files to be renamed. `;let re;re=$localize`Root folder`;let D;D=$localize` If a user requires a root folder this is where it is set. If a user is not given a root folder then the users will only be able to access and write to the assigned virtual folders. If this option is set in a group then all associated users will share this same root folder. Groups are also allowed to include the tag ####USER#### in the file path. This results in each user's folder being dynamically generated. If the entered folder does not exist, the FTP server will attempt to create the folder when the user logs in. `;let de;de=$localize`Start in folder`;let z;z=$localize` When a user first logs in, by default they are placed in the root folder. However, if you want them to be placed in a certain subfolder (e.g. "latest news", to ensure users have a chance to read your latest news updates) you can set the start folder. `;let Ee;Ee=$localize`Virtual folders`;let ue;ue=$localize` This is the list of virtual folders which will appear and be accessible as though they were real folders in the user's root folder. When setting the name of a virtual folder you can set it to be a subfolder (e.g. "/uploads/special files"). This would cause a logged in user to see an "uploads" folder in the root folder and then a "special files" folder would appear in the "uploads" folder. However, in most cases a simple name like "/uploads" is used. If a group defines a virtual folder, all associated users will inherit the virtual folder. Should the group define a virtual folder which has the same name as a virtual folder in an associated user, the user's virtual folder is ignored and only the group's virtual folder will be accessible. Groups are also allowed to include the tag ####USER#### in the file path. This results in each user's folder being dynamically generated. If the entered folder does not exist, the FTP server will attempt to create the folder when the user logs in. `;let Ne;Ne=$localize`Name`;
17let ce;ce=$localize` This is the name and also the remote path description of the virtual folder. When setting the name of the virtual folder you can set it to be a subfolder (e.g. "/uploads/special files"). This would cause a logged in user to see an "uploads" folder in the root folder and then a "special files" folder appear in the "uploads" folder. However, in most cases a simple name like "/uploads" is used. `;let Ce;Ce=$localize`Path`;let Re;Re=$localize`This is the physical location of the virtual folder on the computer or network.`;let Me;Me=$localize`Maximum size (MB)`;let Fe;Fe=$localize` If a virtual folder should require a maximum limit of the amount of storage space it can use then you can set this value here. Once a virtual folder reaches this limit then no more files can be written into the virtual folder until some space is freed. `;let fe;fe=$localize`Visible in folder view`;let ge;ge=$localize` If you disable this option, the virtual folder will become 'invisible'. This is useful if you want a particular folder and its contents to remain secret. Although the virtual folder is not visible, it is still accessible. `;let me;me=$localize`Counts towards current account size`;let he;he=$localize` If the user has a limitation on its hard drive space use (maximum size on the Limits page), then the virtual folder will be taken into account when calculating the current disk space used. For shared virtual folders this is often disabled but if a virtual folder is private to a particular user then this option is often enabled. `;let Ie;Ie=$localize`Exempt from credit rules (free files)`;let $e;$e=$localize` If you use the credits system, this allows you to create a 'free' access folder. This folder will operate independently of the credit rules and will allow users to upload and download without restriction (subject to access rights). `;let I;I=$localize`Access rights`;let be;be=$localize` These controls allow you to restrict the access permissions for the virtual folder. However, these access rights are still limited by the user's overall access rights (i.e. if the user's overall 'file read' permission is disabled, then the virtual folder will not be allowed 'file read' access regardless). Please note that 'file append' requires the 'file write' permission to also be set. Additionally, 'file delete' will also allow files to be renamed. `;let Xe;Xe=$localize`Maximum size (MB)`;let ke;ke=$localize` This restricts the user to a fixed amount of hard drive storage (disk quota control). Once the user contains or exceeds the amount of data specified here, no more file writing will be allowed until space is freed. `;let ze;ze=$localize`Maximum upload speed (KB/s)`;let He;He=$localize` This option allows you to restrict the bandwidth allowance for the uploading of files. This value is shared between all the sessions of this user, so if the limit was set to 10 KB/s, the result would be that 2 simultaneous uploads on the same user be limited to 5 KB/s each. `;let Ye;Ye=$localize`Maximum download speed (KB/s)`;let xe;xe=$localize` This option allows you to restrict the bandwidth allowance for the downloading of files. This value is shared between all the sessions of this user, so if the limit was set to 10 KB/s, the result would be that 2 simultaneous downloads on the same user be limited to 5 KB/s each. `;let Ve;Ve=$localize`Maximum users`;let We;We=$localize`This option allows a restriction to be placed on the maximum allowed number of sessions logged in at the same time.`;let Be;Be=$localize`Enable credits`;let qe;qe=$localize` This enables or disables the credit system for this user. For more information on credits you can view the ${"\uFFFD#163\uFFFD"}:START_TAG_APP_LINK_AFS_SUPPORT:${"\uFFFD/#163\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_SUPPORT: page. If a group enabled credits then all associated users would also have credits enabled. `;let Ke;Ke=$localize`Credits per uploaded KB`;let Qe;Qe=$localize`This allows you to specify how many credits are given or taken on uploads. This value can be either positive or negative.`;let je;je=$localize`Credits per downloaded KB`;let Je;Je=$localize`This allows you to specify how many credits are given or taken on downloads. This value can be either positive or negative.`;let Ze;Ze=$localize`Current credits`;let e_;e_=$localize` This allows you to adjust the current number of credits or preset the credits on a new user. This option is not available to groups because the current credits are only relevant to a particular user. `;let __;__=$localize`Enable IP address control`;let t_;t_=$localize`If enabled, the entries within the list box will be enforced.`;let n_;n_=$localize`IP address control`;let o_;o_=$localize` This is the list of allowed and denied IP addresses, in order of execution from top to bottom. If an entry matches the client IP address, then the provided 'Allow' or 'Deny' option will be enforced. `;let i_;i_=$localize`Allow`;let S_;S_=$localize`If selected, and the provided IP address or range matches the connection's IP address, then the connection will be allowed access.`;let s_;s_=$localize`Deny`;let r_;r_=$localize`If selected, and the provided IP address or range matches the connection's IP address, then the connection will be denied access and disconnected.`;let a_;a_=$localize`IP address`;let l_;l_=$localize`Will evaluate true if the connection's IP address exactly matches this IP address.`;let T_;T_=$localize`IP address and subnet mask`;let A_;A_=$localize`Will evaluate true if the connection's IP address matches this IP address. Both IP addresses will be filtered by the provided subnet mask before comparison.`;let P_;P_=$localize`IP address range`;let d_;d_=$localize`Will evaluate true if the connection's IP address falls between the provided IP addresses.`;let O_;O_=$localize`IP address of host or domain`;let p_;p_=$localize`Will evaluate true if the connection's IP address matches one of the IP addresses of the provided host or domain.`;let E_;E_=$localize`Reverse IP address lookup matches`;let u_;u_=$localize` Will evaluate true if the connection's reverse IP address lookup matches the provided host or domain. This match allows the use of asterisks (e.g. *.codecrafters.com). `;let N_;N_=$localize`Any locally assigned IP address`;let c_;return c_=$localize`Will evaluate true if the connection is local (i.e. the client and server processes are running on the same computer).`,[F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,y,w,J,Z,ee,v,_e,te,ne,oe,ie,d,k,Se,se,re,D,de,z,Ee,ue,Ne,ce,Ce,Re,Me,Fe,fe,ge,me,he,Ie,$e,I,be,Xe,ke,ze,He,Ye,xe,Ve,We,Be,qe,Ke,Qe,je,Je,Ze,e_,__,t_,n_,o_,i_,S_,s_,r_,a_,l_,T_,A_,P_,d_,O_,p_,E_,u_,N_,c_,[3,"supp
17ort"],["header",S,"bookmark","users-groups","image","afs/Users.png"],["header",""],["header",n,"bookmark","user-group","image","afs/User.png"],["header",i,"bookmark","access-rights","image","afs/UserAccessRights.png"],["header",O,"bookmark","folders","image","afs/UserFolders.png"],["header",p,"bookmark","virtual-folder","image","afs/UserVirtualFolder.png"],["header",u,"bookmark","limits","image","afs/UserLimits.png"],["header",E,"bookmark","ip-control","image","afs/UserIPControl.png"],["header",R,"bookmark","ip-control-entry","image","afs/IPControlEntry.png"]]},template:function(n,i){n&1&&(_(0,"h1"),t(1,0),e(),_(2,"p"),H(3,1),s(4,"app-link-afs-support",86),Y(),e(),_(5,"app-support-section",87)(6,"app-support-list")(7,"app-support-item")(8,"span",88),t(9,2),e(),_(10,"span"),t(11,3),e()(),_(12,"app-support-item")(13,"span",88),t(14,4),e(),_(15,"span"),t(16,5),e()(),_(17,"app-support-item")(18,"span",88),t(19,6),e(),_(20,"span"),t(21,7),e()(),_(22,"app-support-item")(23,"span",88),t(24,8),e(),_(25,"span"),t(26,9),e()()()(),_(27,"app-support-section",89)(28,"app-support-list")(29,"app-support-item")(30,"span",88),t(31,10),e(),_(32,"span"),t(33,11),e()(),_(34,"app-support-item")(35,"span",88),t(36,12),e(),_(37,"span"),t(38,13),e()(),_(39,"app-support-item")(40,"span",88),t(41,14),e(),_(42,"span"),t(43,15),e()(),_(44,"app-support-item")(45,"span",88),t(46,16),e(),_(47,"span"),H(48,17),s(49,"app-link-afs-support",86),Y(),e()(),_(50,"app-support-item")(51,"span",88),t(52,18),e(),_(53,"span"),t(54,19),e()(),_(55,"app-support-item")(56,"span",88),t(57,20),e(),_(58,"span"),t(59,21),e()(),_(60,"app-support-item")(61,"span",88),t(62,22),e(),_(63,"span"),t(64,23),e()(),_(65,"app-support-item")(66,"span",88),t(67,24),e(),_(68,"span"),t(69,25),e()(),_(70,"app-support-item")(71,"span",88),t(72,26),e(),_(73,"span"),t(74,27),e()()()(),_(75,"app-support-section",90)(76,"app-support-list")(77,"app-support-item")(78,"span",88),t(79,28),e(),_(80,"span"),t(81,29),e()()()(),_(82,"app-support-section",91)(83,"app-support-list")(84,"app-support-item")(85,"span",88),t(86,30),e(),_(87,"span"),t(88,31),e()(),_(89,"app-support-item")(90,"span",88),t(91,32),e(),_(92,"span"),t(93,33),e()(),_(94,"app-support-item")(95,"span",88),t(96,34),e(),_(97,"span"),t(98,35),e()()()(),_(99,"app-support-section",92)(100,"app-support-list")(101,"app-support-item")(102,"span",88),t(103,36),e(),_(104,"span"),t(105,37),e()(),_(106,"app-support-item")(107,"span",88),t(108,38),e(),_(109,"span"),t(110,39),e()(),_(111,"app-support-item")(112,"span",88),t(113,40),e(),_(114,"span"),t(115,41),e()(),_(116,"app-support-item")(117,"span",88),t(118,42),e(),_(119,"span"),t(120,43),e()(),_(121,"app-support-item")(122,"span",88),t(123,44),e(),_(124,"span"),t(125,45),e()(),_(126,"app-support-item")(127,"span",88),t(128,46),e(),_(129,"span"),t(130,47),e()(),_(131,"app-support-item")(132,"span",88),t(133,48),e(),_(134,"span"),t(135,49),e()()()(),_(136,"app-support-section",93)(137,"app-support-list")(138,"app-support-item")(139,"span",88),t(140,50),e(),_(141,"span"),t(142,51),e()(),_(143,"app-support-item")(144,"span",88),t(145,52),e(),_(146,"span"),t(147,53),e()(),_(148,"app-support-item")(149,"span",88),t(150,54),e(),_(151,"span"),t(152,55),e()(),_(153,"app-support-item")(154,"span",88),t(155,56),e(),_(156,"span"),t(157,57),e()(),_(158,"app-support-item")(159,"span",88),t(160,58),e(),_(161,"span"),H(162,59),s(163,"app-link-afs-support",86),Y(),e()(),_(164,"app-support-item")(165,"span",88),t(166,60),e(),_(167,"span"),t(168,61),e()(),_(169,"app-support-item")(170,"span",88),t(171,62),e(),_(172,"span"),t(173,63),e()(),_(174,"app-support-item")(175,"span",88),t(176,64),e(),_(177,"span"),t(178,65),e()()()(),_(179,"app-support-section",94)(180,"app-support-list")(181,"app-support-item")(182,"span",88),t(183,66),e(),_(184,"span"),t(185,67),e()(),_(186,"app-support-item")(187,"span",88),t(188,68),e(),_(189,"span"),t(190,69),e()()()(),_(191,"app-support-section",95)(192,"app-support-list")(193,"app-support-item")(194,"span",88),t(195,70),e(),_(196,"span"),t(197,71),e()(),_(198,"app-support-item")(199,"span",88),t(200,72),e(),_(201,"span"),t(202,73),e()(),_(203,"app-support-item")(204,"span",88),t(205,74),e(),_(206,"span"),t(207,75),e()(),_(208,"app-support-item")(209,"span",88),t(210,76),e(),_(211,"span"),t(212,77),e()(),_(213,"app-support-item")(214,"span",88),t(215,78),e(),_(216,"span"),t(217,79),e()(),_(218,"app-support-item")(219,"span",88),t(220,80),e(),_(221,"span"),t(222,81),e()(),_(223,"app-support-item")(224,"span",88),t(225,82),e(),_(226,"span"),t(227,83),e()(),_(228,"app-support-item")(229,"span",88),t(230,84),e(),_(231,"span"),t(232,85),e()()()(),_(233,"app-afs-support-footer"),s(234,"app-link-afs-support",86)(235,"app-link-afs-support",86),e()),n&2&&(l(4),r("support",i.afsSupportService.TutorialGroups),l(45),r("support",i.afsSupportService.TutorialGroups),l(114),r("support",i.afsSupportService.TutorialCredits),l(71),r("support",i.afsSupportService.TutorialGroups),l(),r("support",i.afsSupportService.TutorialCredits))},dependencies:[G,b,Q,j,U],encapsulation:2})}}return o}
17)();var _t=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-version2-eula"]],decls:1,vars:1,consts:[[3,"version"]],template:function(n,i){n&1&&s(0,"app-afs-eula",0),n&2&&r("version",2)},dependencies:[ye],encapsulation:2})}}return o})();var tt=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-version3-eula"]],decls:1,vars:1,consts:[[3,"version"]],template:function(n,i){n&1&&s(0,"app-afs-eula",0),n&2&&r("version",3)},dependencies:[ye],encapsulation:2})}}return o})();var pe=(()=>{class o{constructor(){this.afsReleaseService=M(le),this.afsSupportService=M($)}get currentVersion(){return $localize`Current version is ${this.afsReleaseService.Afs3Release.version}:version:`}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-summary"]],decls:7,vars:2,consts:()=>{let S;return S=$localize` Ability FTP Server incorporates many advanced features with an easy to use interface. This flexible FTP server usually only takes a couple of minutes to configure. Offering powerful control over accounts, the software comes with advanced monitoring to enable you to view and assess activity. The server includes a remote admin facility which allows total control of the server from any location. Other features include 256-bit SSL encryption, anti-hammering and much more. `,[S,[1,"d-flex"],["ngSrc","assets/images/afs/AFSBox.gif","alt","Ability FTP Server","height","178","width","157",1,"d-none","d-md-block"],[1,"d-flex","flex-column","justify-content-center"],[3,"support","text"]]},template:function(n,i){n&1&&(_(0,"div",1),s(1,"img",2),_(2,"div",3)(3,"h3"),s(4,"app-link-afs-support",4),e(),_(5,"p"),t(6,0),e()()()),n&2&&(l(4),r("support",i.afsSupportService.UpdateHistory)("text",i.currentVersion))},dependencies:[Kt,G],encapsulation:2})}}return o})();var De=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-note-features"]],decls:9,vars:0,consts:()=>{let S;S=$localize`Please note`;let n;return n=$localize` Business use and some features require an Enterprise edition license. See ${"\uFFFD#8\uFFFD"}:START_TAG_APP_LINK_AFS_FEATURES:${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_APP_LINK_AFS_FEATURES: for more details. `,[S,n,[1,"mb-0"]]},template:function(n,i){n&1&&(_(0,"p",2)(1,"strong")(2,"span"),t(3,0),e(),N(4,":"),e(),N(5,"\xA0"),_(6,"span"),H(7,1),s(8,"a
17pp-link-afs-features"),Y(),e()())},dependencies:[ae],encapsulation:2})}}return o})();var C_=(()=>{class o{constructor(){this.afsEditionService=M(m_),this.afsReleaseService=M(le)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-buy-now"]],decls:10,vars:2,consts:[[3,"product","editions"],["previous",""],["next",""]],template:function(n,i){n&1&&(s(0,"app-afs-summary"),_(1,"app-buy-now",0),s(2,"app-afs-note-features"),e(),_(3,"app-nav-footer"),s(4,"app-link-afs-overview")(5,"app-link-afs-features")(6,"app-link-afs-download")(7,"app-link-afs-support")(8,"app-link-afs-download",1)(9,"app-link-afs-support",2),e()),n&2&&(l(),r("product",i.afsReleaseService.AbilityFTPServer)("editions",i.afsEditionService.AfsEditions))},dependencies:[pe,Zt,De,Te,Oe,ae,Pe,G],encapsulation:2})}}return o})();var nt=(()=>{class o{constructor(){this.afsReleaseService=M(le)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-download"]],decls:9,vars:1,consts:[[3,"versions"],["previous",""],["next",""]],template:function(n,i){n&1&&(s(0,"app-afs-summary")(1,"app-download",0),_(2,"app-nav-footer"),s(3,"app-link-afs-overview")(4,"app-link-afs-features")(5,"app-link-afs-buy-now")(6,"app-link-afs-support")(7,"app-link-afs-features",1)(8,"app-link-afs-buy-now",2),e()),n&2&&(l(),r("versions",i.afsReleaseService.AfsReleases))},dependencies:[pe,en,Te,Oe,ae,Ae,G],encapsulation:2})}}return o})();var ot=(()=>{class o{constructor(){this.afsEditionService=M(m_),this.afsFeatureService=M(jt)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-features"]],decls:9,vars:2,consts:[[3,"editions","features"],["previous",""],["next",""]],template:function(n,i){n&1&&(s(0,"app-afs-summary")(1,"app-features",0),_(2,"app-nav-footer"),s(3,"app-link-afs-overview")(4,"app-link-afs-download")(5,"app-link-afs-buy-now")(6,"app-link-afs-support")(7,"app-link-afs-overview",1)(8,"app-link-afs-download",2),e()),n&2&&(l(),r("editions",i.afsEditionService.AfsEditions)("features",i.afsFeatureService.AfsFeatures))},dependencies:[pe,on,Te,Oe,Pe,Ae,G],encapsulation:2})}}return o})();var it=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-overview"]],decls:96,vars:1,consts:()=>{let S;S=$localize`Main features`;let n;n=$localize`256-bit SSL / TLS`;let i;i=$localize`Use strong encryption to protect your data.`;let O;O=$localize`Strong security`;let p;p=$localize`Many security features help protect your accounts and data.`;let u;u=$localize`Remote admin`;let E;E=$localize`Full administration from any location.`;let R;R=$localize`Session viewer`;let F;F=$localize`View current and past connections with real-time 'Disconnect user' and 'Stop transfer' options.`;let f;f=$localize`Activity viewer`;let c;c=$localize`View detailed graphs of connection counts, data flow, logins, file actions and more.`;let g;g=$localize`Groups`;let m;m=$localize`Quick and fast account management with powerful group controls.`;let L;L=$localize`Access rights`;let h;h=$localize`Full independent access control for each account, group and virtual folder.`;let X;X=$localize`Virtual folders`;let x;x=$localize`Share folders between accounts and groups with individual permissions and quotas.`;let V;V=$localize`Powerful restrictions`;let A;A=$localize`Control disk quotas, IP address access, allowed file types, transfer speeds and much more.`;let B;B=$localize`Message control`;let q;q=$localize`Edit welcome messages and other server responses.`;let K;K=$localize`Disk quotas`;let C;C=$localize`Set a maximum space allocation for each account and virtual folder.`;let y;y=$localize`Transfer speed and throttle control`;let w;w=$localize`Restrict bandwidth allowance for each account individually.`;let J;J=$localize`Unlimited file size support`;let Z;Z=$localize`Full support for files of any size.`;let ee;ee=$localize`Resumable uploads and downloads`;let v;v=$localize`Full support for resuming broken file transfers.`;let _e;_e=$localize`Remote file execution`;let te;te=$localize`Allow users to run executables on the server.`;let ne;ne=$localize`RFC 959 compliant`;let oe;oe=$localize`Compatible with all standard FTP clients.`;let ie;return ie=$localize`More features`,[n,i,O,p,u,E,R,F,f,c,g,m,L,h,X,x,V,A,B,q,K,C,y,w,J,Z,ee,v,_e,te,ne,oe,ie,["header",S,"imageAlt","Ability FTP Server","image","afs/AFSMainSmall.png","imageFull","afs/AFSMain.png"],["header",""],[3,"hasDetail"],["previous",""],["next",""]]},template:function(n,i){n&1&&(s(0,"app-afs-summary"),_(1,"app-support-section",33)(2,"app-support-list")(3,"app-support-item")(4,"span",34),t(5,0),e(),_(6,"span"),t(7,1),e()(),_(8,"app-support-item")(9,"span",34),t(10,2),e(),_(11,"span"),t(12,3),e()(),_(13,"app-support-item")(14,"span",34),t(15,4),e(),_(16,"span"),t(17,5),e()(),_(18,"app-support-item")(19,"span",34),t(20,6),e(),_(21,"span"),t(22,7),e()(),_(23,"app-support-item")(24,"span",34),t(25,8),e(),_(26,"span"),t(27,9),e()(),_(28,"app-support-item")(29,"span",34),t(30,10),e(),_(31,"span"),t(32,11),e()(),_(33,"app-support-item")(34,"span",34),t(35,12),e(),_(36,"span"),t(37,13),e()(),_(38,"app-support-item")(39,"span",34),t(40,14),e(),_(41,"span"),t(42,15),e()(),_(43,"app-support-item")(44,"span",34),t(45,16),e(),_(46,"span"),t(47,17),e()(),_(48,"app-support-item")(49,"span",34),t(50,18),e(),_(51,"span"),t(52,19),e()(),_(53,"app-support-item")(54,"span",34),t(55,20),e(),_(56,"span"),t(57,21),e()(),_(58,"app-support-item")(59,"span",34),t(60,22),e(),_(61,"span"),t(62,23),e(
17)(),_(63,"app-support-item")(64,"span",34),t(65,24),e(),_(66,"span"),t(67,25),e()(),_(68,"app-support-item")(69,"span",34),t(70,26),e(),_(71,"span"),t(72,27),e()(),_(73,"app-support-item")(74,"span",34),t(75,28),e(),_(76,"span"),t(77,29),e()(),_(78,"app-support-item")(79,"span",34),t(80,30),e(),_(81,"span"),t(82,31),e()(),_(83,"app-support-item",35)(84,"app-link-afs-features",34)(85,"span"),t(86,32),e(),N(87,"..."),e()()(),s(88,"app-afs-note-features"),e(),_(89,"app-nav-footer"),s(90,"app-link-afs-features")(91,"app-link-afs-download")(92,"app-link-afs-buy-now")(93,"app-link-afs-support")(94,"app-link-afs-support",36)(95,"app-link-afs-features",37),e()),n&2&&(l(83),r("hasDetail",!1))},dependencies:[pe,b,Q,j,ae,De,Te,Pe,Ae,G],encapsulation:2})}}return o})();var St=(()=>{class o{constructor(){this.afsSupportService=M($)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=P({type:o,selectors:[["app-afs-support"]],decls:8,vars:1,consts:[[3,"supports"],["previous",""],["next",""]],template:function(n,i){n&1&&(s(0,"app-support",0),_(1,"app-nav-footer"),s(2,"app-link-afs-overview")(3,"app-link-afs-features")(4,"app-link-afs-download")(5,"app-link-afs-buy-now")(6,"app-link-afs-buy-now",1)(7,"app-link-afs-overview",2),e()),n&2&&r("supports",i.afsSupportService.Supports)},dependencies:[sn,Te,Oe,ae,Pe,Ae],encapsulation:2})}}return o})();var Fn=[{path:"",component:it},{path:"BuyNow",children:[{path:"",component:C_},{path:"Resellers",component:C_}]},{path:"Download",component:nt},{path:"Features",component:ot},{path:"Support",children:[{path:"",component:St},{path:"FrequentlyAskedQuestions",component:L_},{path:"Activity",component:h_},{path:"Admin",component:I_},{path:"Connect",component:$_},{path:"Credits",component:U_},{path:"EndUserLicenseAgreement",component:ye},{path:"FTP",component:y_},{path:"License",component:G_},{path:"Logs",component:v_},{path:"Messages",component:w_},{path:"Sessions",component:D_},{path:"SocialMediaAndMailingLists",component:b_},{path:"SSLCertificates",component:X_},{path:"Status",component:k_},{path:"Tools",component:z_},{path:"TutorialAnonymousAccount",component:H_},{path:"TutorialCredits",component:Y_},{path:"TutorialFTPClient",component:x_},{path:"TutorialGeneral",component:V_},{path:"TutorialGroups",component:W_},{path:"TutorialHardware",component:B_},{path:"TutorialINIFiles",component:q_},{path:"TutorialInterface",component:K_},{path:"TutorialLicense",component:Q_},{path:"TutorialSecurity",component:j_},{path:"TutorialSSL",component:J_},{path:"UpdateHistory",component:Z_},{path:"UsersAndGroups",component:et},{path:"Version2EULA",component:_t},{path:"Version3EULA",component:tt}]}],pn=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275mod=M_({type:o})}static{this.\u0275inj=R_({imports:[rt.forChild(Fn),rt]})}}return o})();var fn=[Ae,Pe,ae,Oe,G],gn=[C_,nt,ot,De,it,pe,St,U],mn=[h_,I_,$_,U_,ye,L_,y_,G_,v_,w_,D_,b_,X_,k_,z_,H_,Y_,x_,V_,W_,B_,q_,K_,Q_,j_,J_,Z_,et,_t,tt],ul=[...gn,...mn,...fn],Nl=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275mod=M_({type:o})}static{this.\u0275inj=R_({imports:[On,pn]})}}return o})();export{Nl as AfsModule};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.