diff --git a/dist/fansubid/browser/common.9328880044a7fd63.js b/dist/fansubid/browser/common.9328880044a7fd63.js
deleted file mode 100644
index b95f9a228..000000000
--- a/dist/fansubid/browser/common.9328880044a7fd63.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunkfansubid=self.webpackChunkfansubid||[]).push([[592],{3331:(M,m,t)=>{"use strict";t.d(m,{B:()=>a});var e=t(5934),r=t(4650),f=t(257);let a=(()=>{class i{constructor(n){this.gs=n}get GS(){return this.gs}ngOnInit(){}get discordUrl(){return e.N.discord.join_url}get discordGuildId(){return e.N.discord.guild_id}}return i.\u0275fac=function(n){return new(n||i)(r.Y36(f.U))},i.\u0275cmp=r.Xpm({type:i,selectors:[["app-banner-discord"]],decls:9,vars:3,consts:[[1,"row"],[1,"col-12","sticky-top","bg-bifeldy"],[1,"pt-3","border-bottom-dotted"],[1,"text-bifeldy"],[1,"col-12"],[1,"gradient-border","rgb-border","mx-2","mb-2"],["target","_blank",3,"href"],[1,"w-100",3,"src"]],template:function(n,h){1&n&&(r.TgZ(0,"div",0)(1,"div",1)(2,"h2",2)(3,"b",3),r._uU(4,"Yuk Gabung Obrolan!"),r.qZA()()(),r.TgZ(5,"div",4)(6,"p",5)(7,"a",6),r._UZ(8,"img",7),r.qZA()()()()),2&n&&(r.xp6(7),r.s9C("href",h.discordUrl,r.LSH),r.xp6(1),r.hYB("src","https://discord.com/api/guilds/",h.discordGuildId,"/widget.png?style=banner",h.GS.gridListBreakpoint,"",r.LSH))}}),i})()},4854:(M,m,t)=>{"use strict";t.d(m,{R:()=>f});var e=t(6895),r=t(4650);let f=(()=>{class a{}return a.\u0275fac=function(c){return new(c||a)},a.\u0275mod=r.oAB({type:a}),a.\u0275inj=r.cJS({imports:[e.ez]}),a})()},9530:(M,m,t)=>{"use strict";t.d(m,{u:()=>i});var e=t(5861),r=t(4650),f=t(257),a=t(7845);let i=(()=>{class c{constructor(h,E){this.gs=h,this.ds=E,this.subsDialog=null}ngOnInit(){}ngOnDestroy(){this.subsDialog?.unsubscribe()}showDonateBox(){var h=this;return(0,e.Z)(function*(){h.subsDialog=(yield h.ds.openDonation()).afterClosed().subscribe({next:E=>{h.gs.log("[INFO_DIALOG_CLOSED]",E),h.subsDialog.unsubscribe()}})})()}}return c.\u0275fac=function(h){return new(h||c)(r.Y36(f.U),r.Y36(a.x))},c.\u0275cmp=r.Xpm({type:c,selectors:[["app-banner-donasi"]],decls:8,vars:0,consts:[[1,"row"],[1,"col-12","sticky-top","bg-bifeldy"],[1,"pt-3","border-bottom-dotted"],[1,"text-bifeldy"],[1,"col-12"],[1,"gradient-border","rgb-border","mx-2","mb-2",3,"click"],["src","/assets/img/logo/github.png",1,"w-100"]],template:function(h,E){1&h&&(r.TgZ(0,"div",0)(1,"div",1)(2,"h2",2)(3,"b",3),r._uU(4,"Donasi Perawatan Server"),r.qZA()()(),r.TgZ(5,"div",4)(6,"p",5),r.NdJ("click",function(){return E.showDonateBox()}),r._UZ(7,"img",6),r.qZA()()())}}),c})()},1838:(M,m,t)=>{"use strict";t.d(m,{R:()=>f});var e=t(6895),r=t(4650);let f=(()=>{class a{}return a.\u0275fac=function(c){return new(c||a)},a.\u0275mod=r.oAB({type:a}),a.\u0275inj=r.cJS({imports:[e.ez]}),a})()},913:(M,m,t)=>{"use strict";t.d(m,{g:()=>i});var e=t(6895),r=t(1390),f=t(210),a=t(4650);let i=(()=>{class c{}return c.\u0275fac=function(h){return new(h||c)},c.\u0275mod=a.oAB({type:c}),c.\u0275inj=a.cJS({imports:[e.ez,r.Bz,f.m]}),c})()},8921:(M,m,t)=>{"use strict";t.d(m,{X:()=>_});var e=t(4650),r=t(257),f=t(8381),a=t(6895),i=t(266),c=t(3626);function n(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Portal :: "),e.TgZ(2,"span",10),e._uU(3),e.qZA()()),2&l){const p=e.oxw();e.xp6(3),e.hij(" ",null==p.SS.github?null:p.SS.github.sha," ")}}function h(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Date :: "),e.TgZ(2,"span",10),e._uU(3),e.ALo(4,"date"),e.qZA()()),2&l){const p=e.oxw();e.xp6(3),e.hij(" ",e.xi3(4,1,null==p.SS.github||null==p.SS.github.commit||null==p.SS.github.commit.author?null:p.SS.github.commit.author.date,"d MMM y, hh:mm:ss a z")," ")}}function E(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Message :: "),e.TgZ(2,"span",7),e._uU(3),e.qZA()()),2&l){const p=e.oxw();e.xp6(3),e.hij(" ",null==p.SS.github||null==p.SS.github.commit?null:p.SS.github.commit.message," ")}}function u(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Socket :: "),e.TgZ(2,"span",10),e._uU(3),e.qZA()()),2&l){const p=e.oxw();e.xp6(3),e.hij(" ",null!=p.SS.mySocket&&p.SS.mySocket.id?p.SS.mySocket.id:"Sambungan Terputus"," ")}}function d(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Latency :: "),e.TgZ(2,"span"),e._uU(3),e.qZA()()),2&l){const p=e.oxw();e.xp6(2),e.Gre("text-",p.SS.latency>75?"warning":"success",""),e.xp6(1),e.hij(" ",p.SS.latency," ms ")}}function D(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Nodes :: "),e.TgZ(2,"span",10),e._uU(3),e.qZA()()),2&l){const p=e.oxw();e.xp6(3),e.hij(" ",p.SS.visitor," Koneksi ")}}let _=(()=>{class l{constructor(p,g){this.gs=p,this.ss=g,this.currentServer=null,this.subsServer=null}get SS(){return this.ss}ngOnInit(){this.gs.isBrowser&&(this.subsServer=this.ss.currentServer.subscribe({next:p=>this.currentServer=p}))}ngOnDestroy(){this.subsServer?.unsubscribe()}}return l.\u0275fac=function(p){return new(p||l)(e.Y36(r.U),e.Y36(f.R))},l.\u0275cmp=e.Xpm({type:l,selectors:[["app-stats-server"]],decls:42,vars:33,consts:[[1,"row"],[1,"col-12","sticky-top","bg-bifeldy"],[1,"pt-3","border-bottom-dotted"],[1,"text-bifeldy"],[1,"col-12"],["class","px-2 text-truncate",4,"ngIf"],[1,"px-2","text-truncate"],[1,"text-warning"],["matTooltip","Diperbarui 10 Menit Sekali",1,"px-2","text-truncate"],[1,"gradient-text"],[1,"text-success"]],template:function(p,g){1&p&&(e.TgZ(0,"div",0)(1,"div",1)(2,"h2",2)(3,"b",3),e._uU(4,"Statistik Server"),e.qZA()()(),e.TgZ(5,"div",4),e.YNc(6,n,4,1,"p",5),e.YNc(7,h,5,4,"p",5),e.YNc(8,E,4,1,"p",5),e.TgZ(9,"p",6),e._uU(10," Server :: "),e.TgZ(11,"span",7),e._uU(12),e.qZA()(),e.YNc(13,u,4,1,"p",5),e.YNc(14,d,4,4,"p",5),e.YNc(15,D,4,1,"p",5),e.TgZ(16,"p",6),e._uU(17," CPUs Load :: "),e.TgZ(18,"span",7),e._uU(19),e.ALo(20,"number"),e.qZA()(),e.TgZ(21,"p",6),e._uU(22," RAM Usage :: "),e.TgZ(23,"span",7),e._uU(24),e.ALo(25,"bytes"),e.qZA()(),e.TgZ(26,"p",6),e._uU(27," Disk IO (/s) :: "),e.TgZ(28,"span",7),e._uU(29),e.ALo(30,"bytes"),e.qZA()(),e.TgZ(31,"p",6),e._uU(32," Net UD (/s) :: "),e.TgZ(33,"span",7),e._uU(34),e.ALo(35,"bytes"),e.ALo(36,"bytes"),e.qZA()(),e.TgZ(37,"p",8),e._uU(38," Sisa Saldo :: "),e.TgZ(39,"span",9),e._uU(40),e.ALo(41,"currency"),e.qZA()()()()),2&p&&(e.xp6(6),e.Q6J("ngIf",null==g.SS.github?null:g.SS.github.sha),e.xp6(1),e.Q6J("ngIf",null==g.SS.github||null==g.SS.github.commit||null==g.SS.github.commit.author?null:g.SS.github.commit.author.date),e.xp6(1),e.Q6J("ngIf",null==g.SS.github||null==g.SS.github.commit?null:g.SS.github.commit.message),e.xp6(4),e.hij(" ",null!=g.currentServer&&g.currentServer.isMaintenance?"Dalam Perbaikan":"Berjalan Normal"," "),e.xp6(1),e.Q6J("ngIf",g.SS.mySocket),e.xp6(1),e.Q6J("ngIf",g.SS.latency),e.xp6(1),e.Q6J("ngIf",g.SS.visitor),e.xp6(4),e.hij(" ",e.xi3(20,13,g.SS.statsServer.mainSite.cpus,"1.2-2")," % "),e.xp6(5),e.hij(" ",e.xi3(25,16,g.SS.statsServer.mainSite.mem_ram,2)," "),e.xp6(5),e.hij(" ",e.xi3(30,19,g.SS.statsServer.mainSite.disk_io,2)," "),e.xp6(5),e.AsE(" ",e.xi3(35,22,g.SS.statsServer.mainSite.net_tx,2)," / ",e.xi3(36,25,g.SS.statsServer.mainSite.net_rx,2)," "),e.xp6(6),e.hij(" ",e.gM2(41,28,g.SS.statsServer.billing.ongoing,"Rp ","symbol","1.2-2")," "))},dependencies:[a.O5,i.gM,a.JJ,a.H9,a.uU,c.$]}),l})()},669:(M,m,t)=>{"use strict";t.d(m,{A:()=>i});var e=t(6895),r=t(7355),f=t(210),a=t(4650);let i=(()=>{class c{}return c.\u0275fac=function(h){return new(h||c)},c.\u0275mod=a.oAB({type:c}),c.\u0275inj=a.cJS({imports:[e.ez,r.T,f.m]}),c})()},197:(M,m,t)=>{"use strict";t.d(m,{v:()=>a});var e=t(4650),r=t(9731),f=t(257);let a=(()=>{class i{constructor(n,h){this.api=n,this.gs=h}getAttachmentNotUploaded(n="",h=1,E=10,u="",d="",D){return this.api.getData(`/attachment?q=${n}&page=${h}&row=${E}&sort=${u}&order=${d}${D?"&failed=true":""}`)}reUpload(n){return this.api.patchData("/attachment",n)}downloadLampiran(n){return this.api.getData(`/attachment/${n}`,{responseType:"blob",observe:"events",reportProgress:!0,headers:{"ngsw-bypass":"true"}})}getListDdl(n){return this.api.getData(`/attachment/${n}`)}downloadDdlProxy(n){return this.api.getData(`/ddl-part/${n}`,{responseType:"blob",observe:"events",reportProgress:!0,headers:{"ngsw-bypass":"true"}})}downloadDdlDirect(n){return this.api.getData(n,{responseType:"blob",observe:"events",reportProgress:!0,headers:{"ngsw-bypass":"true"}})}}return i.\u0275fac=function(n){return new(n||i)(e.LFG(r.s),e.LFG(f.U))},i.\u0275prov=e.Yz7({token:i,factory:i.\u0275fac,providedIn:"root"}),i})()},7358:(M,m,t)=>{"use strict";t.d(m,{Y:()=>a});var e=t(4650),r=t(9731),f=t(257);let a=(()=>{class i{constructor(n,h){this.api=n,this.gs=h}getMailbox(n="inbox",h="",E=1,u=10,d="",D=""){return this.api.getData(`/mail-${n}?q=${h}&page=${E}&row=${u}&sort=${d}&order=${D}`)}getAllMail(n="",h=1,E=10,u="",d=""){return this.api.getData(`/mail?q=${n}&page=${h}&row=${E}&sort=${u}&order=${d}`)}getMail(n){return this.api.getData(`/mail/${n}`)}sendMail(n){return this.api.postData("/mail",n)}}return i.\u0275fac=function(n){return new(n||i)(e.LFG(r.s),e.LFG(f.U))},i.\u0275prov=e.Yz7({token:i,factory:i.\u0275fac,providedIn:"root"}),i})()},5679:(M,m,t)=>{"use strict";t.d(m,{Y:()=>a});var e=t(4650),r=t(9731),f=t(257);let a=(()=>{class i{constructor(n,h){this.api=n,this.gs=h}getProject(){return this.api.getData("/project-type")}createProject(n){return this.api.postData("/project-type",n)}deleteProject(n){return this.api.deleteData(`/project-type/${n}`)}}return i.\u0275fac=function(n){return new(n||i)(e.LFG(r.s),e.LFG(f.U))},i.\u0275prov=e.Yz7({token:i,factory:i.\u0275fac,providedIn:"root"}),i})()},4327:function(M,m){var r;void 0!==(r=function(){"use strict";function a(u,d,D){var _=new XMLHttpRequest;_.open("GET",u),_.responseType="blob",_.onload=function(){E(_.response,d,D)},_.onerror=function(){console.error("could not download file")},_.send()}function i(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function c(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var n="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,h=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),E=n.saveAs||("object"!=typeof window||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!h?function(u,d,D){var _=n.URL||n.webkitURL,l=document.createElement("a");l.download=d=d||u.name||"download",l.rel="noopener","string"==typeof u?(l.href=u,l.origin===location.origin?c(l):i(l.href)?a(u,d,D):c(l,l.target="_blank")):(l.href=_.createObjectURL(u),setTimeout(function(){_.revokeObjectURL(l.href)},4e4),setTimeout(function(){c(l)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,D){if(d=d||u.name||"download","string"!=typeof u)navigator.msSaveOrOpenBlob(function f(u,d){return typeof d>"u"?d={autoBom:!1}:"object"!=typeof d&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\ufeff",u],{type:u.type}):u}(u,D),d);else if(i(u))a(u,d,D);else{var _=document.createElement("a");_.href=u,_.target="_blank",setTimeout(function(){c(_)})}}:function(u,d,D,_){if((_=_||open("","_blank"))&&(_.document.title=_.document.body.innerText="downloading..."),"string"==typeof u)return a(u,d,D);var l="application/octet-stream"===u.type,y=/constructor/i.test(n.HTMLElement)||n.safari,p=/CriOS\/[\d]+/.test(navigator.userAgent);if((p||l&&y||h)&&typeof FileReader<"u"){var g=new FileReader;g.onloadend=function(){var R=g.result;R=p?R:R.replace(/^data:[^;]*;/,"data:attachment/file;"),_?_.location.href=R:location=R,_=null},g.readAsDataURL(u)}else{var T=n.URL||n.webkitURL,C=T.createObjectURL(u);_?_.location=C:location.href=C,_=null,setTimeout(function(){T.revokeObjectURL(C)},4e4)}});n.saveAs=E.saveAs=E,M.exports=E}.apply(m,[]))&&(M.exports=r)},4700:(M,m,t)=>{"use strict";t.d(m,{Vd:()=>R,a:()=>g,lQ:()=>P,wT:()=>y});var e=t(4650),r=t(6895),f=t(9646),a=t(1135),i=t(4006);const c=new e.OlP("recaptcha-language"),n=new e.OlP("recaptcha-base-url"),h=new e.OlP("recaptcha-nonce-tag"),E=new e.OlP("recaptcha-settings"),u=new e.OlP("recaptcha-v3-site-key"),D_loadScript=function d(s,S,o,b,A){window.ng2recaptchaloaded=()=>{S(grecaptcha)};const v=document.createElement("script");v.innerHTML="",v.src=`${b||"https://www.google.com/recaptcha/api.js"}?render=${s}&onload=ng2recaptchaloaded${o}`,A&&(v.nonce=A),v.async=!0,v.defer=!0,document.head.appendChild(v)};let _=(()=>{class s{constructor(o,b,A,v,O){this.platformId=o,this.language=b,this.baseUrl=A,this.nonce=v,this.v3SiteKey=O,this.init(),this.ready=(0,r.NF)(this.platformId)?s.ready.asObservable():(0,f.of)()}init(){if(!s.ready&&(0,r.NF)(this.platformId)){const o=new a.X(null);s.ready=o,D_loadScript(this.v3SiteKey||"explicit",v=>o.next(v),this.language?"&hl="+this.language:"",this.baseUrl,this.nonce)}}}return s.ready=null,s.\u0275fac=function(o){return new(o||s)(e.LFG(e.Lbi),e.LFG(c,8),e.LFG(n,8),e.LFG(h,8),e.LFG(u,8))},s.\u0275prov=e.Yz7({token:s,factory:s.\u0275fac}),s})(),l=0,y=(()=>{class s{constructor(o,b,A,v){this.elementRef=o,this.loader=b,this.zone=A,this.id="ngrecaptcha-"+l++,this.errorMode="default",this.resolved=new e.vpe,this.error=new e.vpe,v&&(this.siteKey=v.siteKey,this.theme=v.theme,this.type=v.type,this.size=v.size,this.badge=v.badge)}ngAfterViewInit(){this.subscription=this.loader.ready.subscribe(o=>{null!=o&&o.render instanceof Function&&(this.grecaptcha=o,this.renderRecaptcha())})}ngOnDestroy(){this.grecaptchaReset(),this.subscription&&this.subscription.unsubscribe()}execute(){"invisible"===this.size&&(null!=this.widget?this.grecaptcha.execute(this.widget):this.executeRequested=!0)}reset(){null!=this.widget&&(this.grecaptcha.getResponse(this.widget)&&this.resolved.emit(null),this.grecaptchaReset())}get __unsafe_widgetValue(){return null!=this.widget?this.grecaptcha.getResponse(this.widget):null}expired(){this.resolved.emit(null)}errored(o){this.error.emit(o)}captchaResponseCallback(o){this.resolved.emit(o)}grecaptchaReset(){null!=this.widget&&this.zone.runOutsideAngular(()=>this.grecaptcha.reset(this.widget))}renderRecaptcha(){const o={badge:this.badge,callback:b=>{this.zone.run(()=>this.captchaResponseCallback(b))},"expired-callback":()=>{this.zone.run(()=>this.expired())},sitekey:this.siteKey,size:this.size,tabindex:this.tabIndex,theme:this.theme,type:this.type};"handled"===this.errorMode&&(o["error-callback"]=(...b)=>{this.zone.run(()=>this.errored(b))}),this.widget=this.grecaptcha.render(this.elementRef.nativeElement,o),!0===this.executeRequested&&(this.executeRequested=!1,this.execute())}}return s.\u0275fac=function(o){return new(o||s)(e.Y36(e.SBq),e.Y36(_),e.Y36(e.R0b),e.Y36(E,8))},s.\u0275cmp=e.Xpm({type:s,selectors:[["re-captcha"]],hostVars:1,hostBindings:function(o,b){2&o&&e.uIk("id",b.id)},inputs:{id:"id",siteKey:"siteKey",theme:"theme",type:"type",size:"size",tabIndex:"tabIndex",badge:"badge",errorMode:"errorMode"},outputs:{resolved:"resolved",error:"error"},exportAs:["reCaptcha"],decls:0,vars:0,template:function(o,b){},encapsulation:2}),s})(),p=(()=>{class s{}return s.\u0275fac=function(o){return new(o||s)},s.\u0275mod=e.oAB({type:s}),s.\u0275inj=e.cJS({}),s})(),g=(()=>{class s{}return s.\u0275fac=function(o){return new(o||s)},s.\u0275mod=e.oAB({type:s}),s.\u0275inj=e.cJS({providers:[_],imports:[[p]]}),s})(),R=(()=>{class s{constructor(o){this.host=o,this.requiresControllerReset=!1}writeValue(o){o?this.host.__unsafe_widgetValue!==o&&!1===Boolean(this.host.__unsafe_widgetValue)&&(this.requiresControllerReset=!0):this.host.reset()}registerOnChange(o){this.onChange=o,this.requiresControllerReset&&(this.requiresControllerReset=!1,this.onChange(null))}registerOnTouched(o){this.onTouched=o}onResolve(o){this.onChange&&this.onChange(o),this.onTouched&&this.onTouched()}}return s.\u0275fac=function(o){return new(o||s)(e.Y36(y))},s.\u0275dir=e.lG2({type:s,selectors:[["re-captcha","formControlName",""],["re-captcha","formControl",""],["re-captcha","ngModel",""]],hostBindings:function(o,b){1&o&&e.NdJ("resolved",function(v){return b.onResolve(v)})},features:[e._Bn([{multi:!0,provide:i.JU,useExisting:(0,e.Gpc)(()=>s)}])]}),s})(),P=(()=>{class s{}return s.\u0275fac=function(o){return new(o||s)},s.\u0275mod=e.oAB({type:s}),s.\u0275inj=e.cJS({imports:[[i.u5,p]]}),s})()}}]);
\ No newline at end of file
diff --git a/dist/fansubid/browser/common.b0527391eae3d4e8.js b/dist/fansubid/browser/common.b0527391eae3d4e8.js
new file mode 100644
index 000000000..02eeb3186
--- /dev/null
+++ b/dist/fansubid/browser/common.b0527391eae3d4e8.js
@@ -0,0 +1 @@
+(self.webpackChunkfansubid=self.webpackChunkfansubid||[]).push([[592],{3331:(M,m,t)=>{"use strict";t.d(m,{B:()=>a});var e=t(5934),r=t(4650),f=t(257);let a=(()=>{class i{constructor(n){this.gs=n}get GS(){return this.gs}ngOnInit(){}get discordUrl(){return e.N.discord.join_url}get discordGuildId(){return e.N.discord.guild_id}}return i.\u0275fac=function(n){return new(n||i)(r.Y36(f.U))},i.\u0275cmp=r.Xpm({type:i,selectors:[["app-banner-discord"]],decls:9,vars:3,consts:[[1,"row"],[1,"col-12","sticky-top","bg-bifeldy"],[1,"pt-3","border-bottom-dotted"],[1,"text-bifeldy"],[1,"col-12"],[1,"gradient-border","rgb-border","mx-2","mb-2"],["target","_blank",3,"href"],[1,"w-100",3,"src"]],template:function(n,h){1&n&&(r.TgZ(0,"div",0)(1,"div",1)(2,"h2",2)(3,"b",3),r._uU(4,"Yuk Gabung Obrolan!"),r.qZA()()(),r.TgZ(5,"div",4)(6,"p",5)(7,"a",6),r._UZ(8,"img",7),r.qZA()()()()),2&n&&(r.xp6(7),r.s9C("href",h.discordUrl,r.LSH),r.xp6(1),r.hYB("src","https://discord.com/api/guilds/",h.discordGuildId,"/widget.png?style=banner",h.GS.gridListBreakpoint,"",r.LSH))}}),i})()},4854:(M,m,t)=>{"use strict";t.d(m,{R:()=>f});var e=t(6895),r=t(4650);let f=(()=>{class a{}return a.\u0275fac=function(c){return new(c||a)},a.\u0275mod=r.oAB({type:a}),a.\u0275inj=r.cJS({imports:[e.ez]}),a})()},9530:(M,m,t)=>{"use strict";t.d(m,{u:()=>i});var e=t(5861),r=t(4650),f=t(257),a=t(7845);let i=(()=>{class c{constructor(h,E){this.gs=h,this.ds=E,this.subsDialog=null}ngOnInit(){}ngOnDestroy(){this.subsDialog?.unsubscribe()}showDonateBox(){var h=this;return(0,e.Z)(function*(){h.subsDialog=(yield h.ds.openDonation()).afterClosed().subscribe({next:E=>{h.gs.log("[INFO_DIALOG_CLOSED]",E),h.subsDialog.unsubscribe()}})})()}}return c.\u0275fac=function(h){return new(h||c)(r.Y36(f.U),r.Y36(a.x))},c.\u0275cmp=r.Xpm({type:c,selectors:[["app-banner-donasi"]],decls:8,vars:0,consts:[[1,"row"],[1,"col-12","sticky-top","bg-bifeldy"],[1,"pt-3","border-bottom-dotted"],[1,"text-bifeldy"],[1,"col-12"],[1,"gradient-border","rgb-border","mx-2","mb-2",3,"click"],["src","/assets/img/logo/github.png",1,"w-100"]],template:function(h,E){1&h&&(r.TgZ(0,"div",0)(1,"div",1)(2,"h2",2)(3,"b",3),r._uU(4,"Donasi Perawatan Server"),r.qZA()()(),r.TgZ(5,"div",4)(6,"p",5),r.NdJ("click",function(){return E.showDonateBox()}),r._UZ(7,"img",6),r.qZA()()())}}),c})()},1838:(M,m,t)=>{"use strict";t.d(m,{R:()=>f});var e=t(6895),r=t(4650);let f=(()=>{class a{}return a.\u0275fac=function(c){return new(c||a)},a.\u0275mod=r.oAB({type:a}),a.\u0275inj=r.cJS({imports:[e.ez]}),a})()},913:(M,m,t)=>{"use strict";t.d(m,{g:()=>i});var e=t(6895),r=t(1390),f=t(210),a=t(4650);let i=(()=>{class c{}return c.\u0275fac=function(h){return new(h||c)},c.\u0275mod=a.oAB({type:c}),c.\u0275inj=a.cJS({imports:[e.ez,r.Bz,f.m]}),c})()},8921:(M,m,t)=>{"use strict";t.d(m,{X:()=>_});var e=t(4650),r=t(257),f=t(8381),a=t(6895),i=t(266),c=t(3626);function n(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Portal :: "),e.TgZ(2,"span",10),e._uU(3),e.qZA()()),2&l){const p=e.oxw();e.xp6(3),e.hij(" ",null==p.SS.github?null:p.SS.github.sha," ")}}function h(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Date :: "),e.TgZ(2,"span",10),e._uU(3),e.ALo(4,"date"),e.qZA()()),2&l){const p=e.oxw();e.xp6(3),e.hij(" ",e.xi3(4,1,null==p.SS.github||null==p.SS.github.commit||null==p.SS.github.commit.author?null:p.SS.github.commit.author.date,"d MMM y, hh:mm:ss a z")," ")}}function E(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Message :: "),e.TgZ(2,"span",7),e._uU(3),e.qZA()()),2&l){const p=e.oxw();e.xp6(3),e.hij(" ",null==p.SS.github||null==p.SS.github.commit?null:p.SS.github.commit.message," ")}}function u(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Socket :: "),e.TgZ(2,"span",10),e._uU(3),e.qZA()()),2&l){const p=e.oxw();e.xp6(3),e.hij(" ",null!=p.SS.mySocket&&p.SS.mySocket.id?p.SS.mySocket.id:"Sambungan Terputus"," ")}}function d(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Latency :: "),e.TgZ(2,"span"),e._uU(3),e.qZA()()),2&l){const p=e.oxw();e.xp6(2),e.Gre("text-",p.SS.latency>75?"warning":"success",""),e.xp6(1),e.hij(" ",p.SS.latency," ms ")}}function D(l,y){if(1&l&&(e.TgZ(0,"p",6),e._uU(1," Nodes :: "),e.TgZ(2,"span",10),e._uU(3),e.qZA()()),2&l){const p=e.oxw();e.xp6(3),e.hij(" ",p.SS.visitor," Koneksi ")}}let _=(()=>{class l{constructor(p,g){this.gs=p,this.ss=g,this.currentServer=null,this.subsServer=null}get SS(){return this.ss}ngOnInit(){this.gs.isBrowser&&(this.subsServer=this.ss.currentServer.subscribe({next:p=>this.currentServer=p}))}ngOnDestroy(){this.subsServer?.unsubscribe()}}return l.\u0275fac=function(p){return new(p||l)(e.Y36(r.U),e.Y36(f.R))},l.\u0275cmp=e.Xpm({type:l,selectors:[["app-stats-server"]],decls:42,vars:33,consts:[[1,"row"],[1,"col-12","sticky-top","bg-bifeldy"],[1,"pt-3","border-bottom-dotted"],[1,"text-bifeldy"],[1,"col-12"],["class","px-2 text-truncate",4,"ngIf"],[1,"px-2","text-truncate"],[1,"text-warning"],["matTooltip","Diperbarui 10 Menit Sekali",1,"px-2","text-truncate"],[1,"gradient-text"],[1,"text-success"]],template:function(p,g){1&p&&(e.TgZ(0,"div",0)(1,"div",1)(2,"h2",2)(3,"b",3),e._uU(4,"Statistik Server"),e.qZA()()(),e.TgZ(5,"div",4),e.YNc(6,n,4,1,"p",5),e.YNc(7,h,5,4,"p",5),e.YNc(8,E,4,1,"p",5),e.TgZ(9,"p",6),e._uU(10," Server :: "),e.TgZ(11,"span",7),e._uU(12),e.qZA()(),e.YNc(13,u,4,1,"p",5),e.YNc(14,d,4,4,"p",5),e.YNc(15,D,4,1,"p",5),e.TgZ(16,"p",6),e._uU(17," CPUs Load :: "),e.TgZ(18,"span",7),e._uU(19),e.ALo(20,"number"),e.qZA()(),e.TgZ(21,"p",6),e._uU(22," RAM Usage :: "),e.TgZ(23,"span",7),e._uU(24),e.ALo(25,"bytes"),e.qZA()(),e.TgZ(26,"p",6),e._uU(27," Disk IO (/s) :: "),e.TgZ(28,"span",7),e._uU(29),e.ALo(30,"bytes"),e.qZA()(),e.TgZ(31,"p",6),e._uU(32," Net UD (/s) :: "),e.TgZ(33,"span",7),e._uU(34),e.ALo(35,"bytes"),e.ALo(36,"bytes"),e.qZA()(),e.TgZ(37,"p",8),e._uU(38," Sisa Saldo :: "),e.TgZ(39,"span",9),e._uU(40),e.ALo(41,"currency"),e.qZA()()()()),2&p&&(e.xp6(6),e.Q6J("ngIf",null==g.SS.github?null:g.SS.github.sha),e.xp6(1),e.Q6J("ngIf",null==g.SS.github||null==g.SS.github.commit||null==g.SS.github.commit.author?null:g.SS.github.commit.author.date),e.xp6(1),e.Q6J("ngIf",null==g.SS.github||null==g.SS.github.commit?null:g.SS.github.commit.message),e.xp6(4),e.hij(" ",null!=g.currentServer&&g.currentServer.isMaintenance?"Dalam Perbaikan":"Berjalan Normal"," "),e.xp6(1),e.Q6J("ngIf",g.SS.mySocket),e.xp6(1),e.Q6J("ngIf",g.SS.latency),e.xp6(1),e.Q6J("ngIf",g.SS.visitor),e.xp6(4),e.hij(" ",e.xi3(20,13,g.SS.statsServer.cpus,"1.2-2")," % "),e.xp6(5),e.hij(" ",e.xi3(25,16,g.SS.statsServer.mem_ram,2)," "),e.xp6(5),e.hij(" ",e.xi3(30,19,g.SS.statsServer.disk_io,2)," "),e.xp6(5),e.AsE(" ",e.xi3(35,22,g.SS.statsServer.net_tx,2)," / ",e.xi3(36,25,g.SS.statsServer.net_rx,2)," "),e.xp6(6),e.hij(" ",e.gM2(41,28,g.SS.statsServer.billing,"Rp ","symbol","1.2-2")," "))},dependencies:[a.O5,i.gM,a.JJ,a.H9,a.uU,c.$]}),l})()},669:(M,m,t)=>{"use strict";t.d(m,{A:()=>i});var e=t(6895),r=t(7355),f=t(210),a=t(4650);let i=(()=>{class c{}return c.\u0275fac=function(h){return new(h||c)},c.\u0275mod=a.oAB({type:c}),c.\u0275inj=a.cJS({imports:[e.ez,r.T,f.m]}),c})()},197:(M,m,t)=>{"use strict";t.d(m,{v:()=>a});var e=t(4650),r=t(9731),f=t(257);let a=(()=>{class i{constructor(n,h){this.api=n,this.gs=h}getAttachmentNotUploaded(n="",h=1,E=10,u="",d="",D){return this.api.getData(`/attachment?q=${n}&page=${h}&row=${E}&sort=${u}&order=${d}${D?"&failed=true":""}`)}reUpload(n){return this.api.patchData("/attachment",n)}downloadLampiran(n){return this.api.getData(`/attachment/${n}`,{responseType:"blob",observe:"events",reportProgress:!0,headers:{"ngsw-bypass":"true"}})}getListDdl(n){return this.api.getData(`/attachment/${n}`)}downloadDdlProxy(n){return this.api.getData(`/ddl-part/${n}`,{responseType:"blob",observe:"events",reportProgress:!0,headers:{"ngsw-bypass":"true"}})}downloadDdlDirect(n){return this.api.getData(n,{responseType:"blob",observe:"events",reportProgress:!0,headers:{"ngsw-bypass":"true"}})}}return i.\u0275fac=function(n){return new(n||i)(e.LFG(r.s),e.LFG(f.U))},i.\u0275prov=e.Yz7({token:i,factory:i.\u0275fac,providedIn:"root"}),i})()},7358:(M,m,t)=>{"use strict";t.d(m,{Y:()=>a});var e=t(4650),r=t(9731),f=t(257);let a=(()=>{class i{constructor(n,h){this.api=n,this.gs=h}getMailbox(n="inbox",h="",E=1,u=10,d="",D=""){return this.api.getData(`/mail-${n}?q=${h}&page=${E}&row=${u}&sort=${d}&order=${D}`)}getAllMail(n="",h=1,E=10,u="",d=""){return this.api.getData(`/mail?q=${n}&page=${h}&row=${E}&sort=${u}&order=${d}`)}getMail(n){return this.api.getData(`/mail/${n}`)}sendMail(n){return this.api.postData("/mail",n)}}return i.\u0275fac=function(n){return new(n||i)(e.LFG(r.s),e.LFG(f.U))},i.\u0275prov=e.Yz7({token:i,factory:i.\u0275fac,providedIn:"root"}),i})()},5679:(M,m,t)=>{"use strict";t.d(m,{Y:()=>a});var e=t(4650),r=t(9731),f=t(257);let a=(()=>{class i{constructor(n,h){this.api=n,this.gs=h}getProject(){return this.api.getData("/project-type")}createProject(n){return this.api.postData("/project-type",n)}deleteProject(n){return this.api.deleteData(`/project-type/${n}`)}}return i.\u0275fac=function(n){return new(n||i)(e.LFG(r.s),e.LFG(f.U))},i.\u0275prov=e.Yz7({token:i,factory:i.\u0275fac,providedIn:"root"}),i})()},4327:function(M,m){var r;void 0!==(r=function(){"use strict";function a(u,d,D){var _=new XMLHttpRequest;_.open("GET",u),_.responseType="blob",_.onload=function(){E(_.response,d,D)},_.onerror=function(){console.error("could not download file")},_.send()}function i(u){var d=new XMLHttpRequest;d.open("HEAD",u,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function c(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(d)}}var n="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,h=n.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),E=n.saveAs||("object"!=typeof window||window!==n?function(){}:"download"in HTMLAnchorElement.prototype&&!h?function(u,d,D){var _=n.URL||n.webkitURL,l=document.createElement("a");l.download=d=d||u.name||"download",l.rel="noopener","string"==typeof u?(l.href=u,l.origin===location.origin?c(l):i(l.href)?a(u,d,D):c(l,l.target="_blank")):(l.href=_.createObjectURL(u),setTimeout(function(){_.revokeObjectURL(l.href)},4e4),setTimeout(function(){c(l)},0))}:"msSaveOrOpenBlob"in navigator?function(u,d,D){if(d=d||u.name||"download","string"!=typeof u)navigator.msSaveOrOpenBlob(function f(u,d){return typeof d>"u"?d={autoBom:!1}:"object"!=typeof d&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\ufeff",u],{type:u.type}):u}(u,D),d);else if(i(u))a(u,d,D);else{var _=document.createElement("a");_.href=u,_.target="_blank",setTimeout(function(){c(_)})}}:function(u,d,D,_){if((_=_||open("","_blank"))&&(_.document.title=_.document.body.innerText="downloading..."),"string"==typeof u)return a(u,d,D);var l="application/octet-stream"===u.type,y=/constructor/i.test(n.HTMLElement)||n.safari,p=/CriOS\/[\d]+/.test(navigator.userAgent);if((p||l&&y||h)&&typeof FileReader<"u"){var g=new FileReader;g.onloadend=function(){var R=g.result;R=p?R:R.replace(/^data:[^;]*;/,"data:attachment/file;"),_?_.location.href=R:location=R,_=null},g.readAsDataURL(u)}else{var T=n.URL||n.webkitURL,C=T.createObjectURL(u);_?_.location=C:location.href=C,_=null,setTimeout(function(){T.revokeObjectURL(C)},4e4)}});n.saveAs=E.saveAs=E,M.exports=E}.apply(m,[]))&&(M.exports=r)},4700:(M,m,t)=>{"use strict";t.d(m,{Vd:()=>R,a:()=>g,lQ:()=>P,wT:()=>y});var e=t(4650),r=t(6895),f=t(9646),a=t(1135),i=t(4006);const c=new e.OlP("recaptcha-language"),n=new e.OlP("recaptcha-base-url"),h=new e.OlP("recaptcha-nonce-tag"),E=new e.OlP("recaptcha-settings"),u=new e.OlP("recaptcha-v3-site-key"),D_loadScript=function d(s,S,o,b,A){window.ng2recaptchaloaded=()=>{S(grecaptcha)};const v=document.createElement("script");v.innerHTML="",v.src=`${b||"https://www.google.com/recaptcha/api.js"}?render=${s}&onload=ng2recaptchaloaded${o}`,A&&(v.nonce=A),v.async=!0,v.defer=!0,document.head.appendChild(v)};let _=(()=>{class s{constructor(o,b,A,v,O){this.platformId=o,this.language=b,this.baseUrl=A,this.nonce=v,this.v3SiteKey=O,this.init(),this.ready=(0,r.NF)(this.platformId)?s.ready.asObservable():(0,f.of)()}init(){if(!s.ready&&(0,r.NF)(this.platformId)){const o=new a.X(null);s.ready=o,D_loadScript(this.v3SiteKey||"explicit",v=>o.next(v),this.language?"&hl="+this.language:"",this.baseUrl,this.nonce)}}}return s.ready=null,s.\u0275fac=function(o){return new(o||s)(e.LFG(e.Lbi),e.LFG(c,8),e.LFG(n,8),e.LFG(h,8),e.LFG(u,8))},s.\u0275prov=e.Yz7({token:s,factory:s.\u0275fac}),s})(),l=0,y=(()=>{class s{constructor(o,b,A,v){this.elementRef=o,this.loader=b,this.zone=A,this.id="ngrecaptcha-"+l++,this.errorMode="default",this.resolved=new e.vpe,this.error=new e.vpe,v&&(this.siteKey=v.siteKey,this.theme=v.theme,this.type=v.type,this.size=v.size,this.badge=v.badge)}ngAfterViewInit(){this.subscription=this.loader.ready.subscribe(o=>{null!=o&&o.render instanceof Function&&(this.grecaptcha=o,this.renderRecaptcha())})}ngOnDestroy(){this.grecaptchaReset(),this.subscription&&this.subscription.unsubscribe()}execute(){"invisible"===this.size&&(null!=this.widget?this.grecaptcha.execute(this.widget):this.executeRequested=!0)}reset(){null!=this.widget&&(this.grecaptcha.getResponse(this.widget)&&this.resolved.emit(null),this.grecaptchaReset())}get __unsafe_widgetValue(){return null!=this.widget?this.grecaptcha.getResponse(this.widget):null}expired(){this.resolved.emit(null)}errored(o){this.error.emit(o)}captchaResponseCallback(o){this.resolved.emit(o)}grecaptchaReset(){null!=this.widget&&this.zone.runOutsideAngular(()=>this.grecaptcha.reset(this.widget))}renderRecaptcha(){const o={badge:this.badge,callback:b=>{this.zone.run(()=>this.captchaResponseCallback(b))},"expired-callback":()=>{this.zone.run(()=>this.expired())},sitekey:this.siteKey,size:this.size,tabindex:this.tabIndex,theme:this.theme,type:this.type};"handled"===this.errorMode&&(o["error-callback"]=(...b)=>{this.zone.run(()=>this.errored(b))}),this.widget=this.grecaptcha.render(this.elementRef.nativeElement,o),!0===this.executeRequested&&(this.executeRequested=!1,this.execute())}}return s.\u0275fac=function(o){return new(o||s)(e.Y36(e.SBq),e.Y36(_),e.Y36(e.R0b),e.Y36(E,8))},s.\u0275cmp=e.Xpm({type:s,selectors:[["re-captcha"]],hostVars:1,hostBindings:function(o,b){2&o&&e.uIk("id",b.id)},inputs:{id:"id",siteKey:"siteKey",theme:"theme",type:"type",size:"size",tabIndex:"tabIndex",badge:"badge",errorMode:"errorMode"},outputs:{resolved:"resolved",error:"error"},exportAs:["reCaptcha"],decls:0,vars:0,template:function(o,b){},encapsulation:2}),s})(),p=(()=>{class s{}return s.\u0275fac=function(o){return new(o||s)},s.\u0275mod=e.oAB({type:s}),s.\u0275inj=e.cJS({}),s})(),g=(()=>{class s{}return s.\u0275fac=function(o){return new(o||s)},s.\u0275mod=e.oAB({type:s}),s.\u0275inj=e.cJS({providers:[_],imports:[[p]]}),s})(),R=(()=>{class s{constructor(o){this.host=o,this.requiresControllerReset=!1}writeValue(o){o?this.host.__unsafe_widgetValue!==o&&!1===Boolean(this.host.__unsafe_widgetValue)&&(this.requiresControllerReset=!0):this.host.reset()}registerOnChange(o){this.onChange=o,this.requiresControllerReset&&(this.requiresControllerReset=!1,this.onChange(null))}registerOnTouched(o){this.onTouched=o}onResolve(o){this.onChange&&this.onChange(o),this.onTouched&&this.onTouched()}}return s.\u0275fac=function(o){return new(o||s)(e.Y36(y))},s.\u0275dir=e.lG2({type:s,selectors:[["re-captcha","formControlName",""],["re-captcha","formControl",""],["re-captcha","ngModel",""]],hostBindings:function(o,b){1&o&&e.NdJ("resolved",function(v){return b.onResolve(v)})},features:[e._Bn([{multi:!0,provide:i.JU,useExisting:(0,e.Gpc)(()=>s)}])]}),s})(),P=(()=>{class s{}return s.\u0275fac=function(o){return new(o||s)},s.\u0275mod=e.oAB({type:s}),s.\u0275inj=e.cJS({imports:[[i.u5,p]]}),s})()}}]);
\ No newline at end of file
diff --git a/dist/fansubid/browser/index.html b/dist/fansubid/browser/index.html
index c46e28285..15776f627 100644
--- a/dist/fansubid/browser/index.html
+++ b/dist/fansubid/browser/index.html
@@ -63,7 +63,7 @@
-
+