UNPKG

@cloudsnorkel/cdk-github-runners

Version:

CDK construct to create GitHub Actions self-hosted runners. Creates ephemeral runners on demand. Easy to deploy and highly customizable.

20 lines 156 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Setup GitHub Runners</title> <script type="module" crossorigin>(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function t(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(o){if(o.ep)return;o.ep=!0;const i=t(o);fetch(o.href,i)}})();const kt=!1;var Et=Array.isArray,At=Array.from,xt=Object.defineProperty,mr=Object.getOwnPropertyDescriptor,Lr=Object.getOwnPropertyDescriptors,Me=Object.getPrototypeOf;function Tt(e){return e()}function Be(e){for(var r=0;r<e.length;r++)e[r]()}const Y=2,Hr=4,ye=8,Je=16,B=32,Oe=64,oe=128,xe=256,P=512,Z=1024,we=2048,ce=4096,ke=8192,St=16384,Ze=32768,Nt=1<<18,qr=1<<19,Te=Symbol("$state"),Ot=Symbol("");function Gr(e){return e===this.v}function Rt(e,r){return e!=e?r==r:e!==r||e!==null&&typeof e=="object"||typeof e=="function"}function It(e){return!Rt(e,this.v)}function Pt(e){throw new Error("effect_in_teardown")}function Dt(){throw new Error("effect_in_unowned_derived")}function Ct(e){throw new Error("effect_orphan")}function Lt(){throw new Error("effect_update_depth_exceeded")}function Ht(){throw new Error("state_unsafe_local_read")}function qt(){throw new Error("state_unsafe_mutation")}let Re=!1;function Gt(){Re=!0}function Fr(e){return{f:0,v:e,reactions:null,equals:Gr,version:0}}function Ft(e,r=!1){var n;const t=Fr(e);return r||(t.equals=It),Re&&A!==null&&A.l!==null&&((n=A.l).s??(n.s=[])).push(t),t}function H(e,r=!1){return zt(Ft(e,r))}function zt(e){return y!==null&&y.f&Y&&(M===null?en([e]):M.push(e)),e}function gr(e,r){return E(e,st(()=>s(e))),r}function E(e,r){return y!==null&&Pe()&&y.f&(Y|Je)&&(M===null||!M.includes(e))&&qt(),Mt(e,r)}function Mt(e,r){return e.equals(r)||(e.v=r,e.version=ot(),zr(e,Z),Pe()&&m!==null&&m.f&P&&!(m.f&B)&&(N!==null&&N.includes(e)?(U(m,Z),Ce(m)):J===null?rn([e]):J.push(e))),r}function zr(e,r){var t=e.reactions;if(t!==null)for(var n=Pe(),o=t.length,i=0;i<o;i++){var a=t[i],u=a.f;u&Z||!n&&a===m||(U(a,r),u&(P|oe)&&(u&Y?zr(a,we):Ce(a)))}}const Bt=1,Ut=2;let $t=!1;function br(e){return e!==null&&typeof e=="object"&&Te in e?e[Te]:e}function jt(e,r){return Object.is(br(e),br(r))}var yr,Mr,Br;function Wt(){if(yr===void 0){yr=window;var e=Element.prototype,r=Node.prototype;Mr=mr(r,"firstChild").get,Br=mr(r,"nextSibling").get,e.__click=void 0,e.__className="",e.__attributes=null,e.__styles=null,e.__e=void 0,Text.prototype.__t=void 0}}function Ur(e=""){return document.createTextNode(e)}function Se(e){return Mr.call(e)}function Qe(e){return Br.call(e)}function f(e,r){return Se(e)}function F(e,r){{var t=Se(e);return t instanceof Comment&&t.data===""?Qe(t):t}}function c(e,r=1,t=!1){let n=e;for(;r--;)n=Qe(n);return n}function Vt(e){var r=Y|Z;m===null?r|=oe:m.f|=qr;const t={children:null,ctx:A,deps:null,equals:Gr,f:r,fn:e,reactions:null,v:null,version:0,parent:m};if(y!==null&&y.f&Y){var n=y;(n.children??(n.children=[])).push(t)}return t}function $r(e){var r=e.children;if(r!==null){e.children=null;for(var t=0;t<r.length;t+=1){var n=r[t];n.f&Y?Xe(n):pe(n)}}}function jr(e){var r,t=m;X(e.parent);try{$r(e),r=it(e)}finally{X(t)}return r}function Wr(e){var r=jr(e),t=(le||e.f&oe)&&e.deps!==null?we:P;U(e,t),e.equals(r)||(e.v=r,e.version=ot())}function Xe(e){$r(e),be(e,0),U(e,ke),e.v=e.children=e.deps=e.ctx=e.reactions=null}function Vr(e){m===null&&y===null&&Ct(),y!==null&&y.f&oe&&Dt(),er&&Pt()}function Yt(e,r){var t=r.last;t===null?r.last=r.first=e:(t.next=e,e.prev=t,r.last=e)}function fe(e,r,t,n=!0){var o=(e&Oe)!==0,i=m,a={ctx:A,deps:null,deriveds:null,nodes_start:null,nodes_end:null,f:e|Z,first:null,fn:r,last:null,next:null,parent:o?null:i,prev:null,teardown:null,transitions:null,version:0};if(t){var u=ue;try{Ar(!0),De(a),a.f|=St}catch(p){throw pe(a),p}finally{Ar(u)}}else r!==null&&Ce(a);var l=t&&a.deps===null&&a.first===null&&a.nodes_start===null&&a.teardown===null&&(a.f&qr)===0;if(!l&&!o&&n&&(i!==null&&Yt(a,i),y!==null&&y.f&Y)){var v=y;(v.children??(v.children=[])).push(a)}return a}function Yr(e){const r=fe(ye,null,!1);return U(r,P),r.teardown=e,r}function wr(e){Vr();var r=m!==null&&(m.f&B)!==0&&A!==null&&!A.m;if(r){var t=A;(t.e??(t.e=[])).push({fn:e,effect:m,reaction:y})}else{var n=Kr(e);return n}}function Kt(e){return Vr(),Ie(e)}function Jt(e){const r=fe(Oe,e,!0);return()=>{pe(r)}}function Kr(e){return fe(Hr,e,!1)}function Ie(e){return fe(ye,e,!0)}function V(e){return Jr(e)}function Jr(e,r=0){return fe(ye|Je|r,e,!0)}function Ue(e,r=!0){return fe(ye|B,e,!0,r)}function Zr(e){var r=e.teardown;if(r!==null){const t=er,n=y;xr(!0),Q(null);try{r.call(null)}finally{xr(t),Q(n)}}}function Qr(e){var r=e.deriveds;if(r!==null){e.deriveds=null;for(var t=0;t<r.length;t+=1)Xe(r[t])}}function Xr(e,r=!1){var t=e.first;for(e.first=e.last=null;t!==null;){var n=t.next;pe(t,r),t=n}}function Zt(e){for(var r=e.first;r!==null;){var t=r.next;r.f&B||pe(r),r=t}}function pe(e,r=!0){var t=!1;if((r||e.f&Nt)&&e.nodes_start!==null){for(var n=e.nodes_start,o=e.nodes_end;n!==null;){var i=n===o?null:Qe(n);n.remove(),n=i}t=!0}Xr(e,r&&!t),Qr(e),be(e,0),U(e,ke);var a=e.transitions;if(a!==null)for(const l of a)l.stop();Zr(e);var u=e.parent;u!==null&&u.first!==null&&et(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.parent=e.fn=e.nodes_start=e.nodes_end=null}function et(e){var r=e.parent,t=e.prev,n=e.next;t!==null&&(t.next=n),n!==null&&(n.prev=t),r!==null&&(r.first===e&&(r.first=n),r.last===e&&(r.last=t))}function kr(e,r){var t=[];rt(e,t,!0),Qt(t,()=>{pe(e),r&&r()})}function Qt(e,r){var t=e.length;if(t>0){var n=()=>--t||r();for(var o of e)o.out(n)}else r()}function rt(e,r,t){if(!(e.f&ce)){if(e.f^=ce,e.transitions!==null)for(const a of e.transitions)(a.is_global||t)&&r.push(a);for(var n=e.first;n!==null;){var o=n.next,i=(n.f&Ze)!==0||(n.f&B)!==0;rt(n,r,i?t:!1),n=o}}}function Er(e){tt(e,!0)}function tt(e,r){if(e.f&ce){Ee(e)&&De(e),e.f^=ce;for(var t=e.first;t!==null;){var n=t.next,o=(t.f&Ze)!==0||(t.f&B)!==0;tt(t,o?r:!1),t=n}if(e.transitions!==null)for(const i of e.transitions)(i.is_global||r)&&i.in()}}let $e=!1,je=[];function Xt(){$e=!1;const e=je.slice();je=[],Be(e)}function We(e){$e||($e=!0,queueMicrotask(Xt)),je.push(e)}let Ne=!1,ue=!1,er=!1;function Ar(e){ue=e}function xr(e){er=e}let Ve=[],ge=0;let y=null;function Q(e){y=e}let m=null;function X(e){m=e}let M=null;function en(e){M=e}let N=null,D=0,J=null;function rn(e){J=e}let nt=0,le=!1,A=null;function ot(){return++nt}function Pe(){return!Re||A!==null&&A.l===null}function Ee(e){var a,u;var r=e.f;if(r&Z)return!0;if(r&we){var t=e.deps,n=(r&oe)!==0;if(t!==null){var o;if(r&xe){for(o=0;o<t.length;o++)((a=t[o]).reactions??(a.reactions=[])).push(e);e.f^=xe}for(o=0;o<t.length;o++){var i=t[o];if(Ee(i)&&Wr(i),n&&m!==null&&!le&&!((u=i==null?void 0:i.reactions)!=null&&u.includes(e))&&(i.reactions??(i.reactions=[])).push(e),i.version>e.version)return!0}}n||U(e,P)}return!1}function tn(e,r,t){throw e}function it(e){var d;var r=N,t=D,n=J,o=y,i=le,a=M,u=A,l=e.f;N=null,D=0,J=null,y=l&(B|Oe)?null:e,le=!ue&&(l&oe)!==0,M=null,A=e.ctx;try{var v=(0,e.fn)(),p=e.deps;if(N!==null){var _;if(be(e,D),p!==null&&D>0)for(p.length=D+N.length,_=0;_<N.length;_++)p[D+_]=N[_];else e.deps=p=N;if(!le)for(_=D;_<p.length;_++)((d=p[_]).reactions??(d.reactions=[])).push(e)}else p!==null&&D<p.length&&(be(e,D),p.length=D);return v}finally{N=r,D=t,J=n,y=o,le=i,M=a,A=u}}function nn(e,r){let t=r.reactions;if(t!==null){var n=t.indexOf(e);if(n!==-1){var o=t.length-1;o===0?t=r.reactions=null:(t[n]=t[o],t.pop())}}t===null&&r.f&Y&&(N===null||!N.includes(r))&&(U(r,we),r.f&(oe|xe)||(r.f^=xe),be(r,0))}function be(e,r){var t=e.deps;if(t!==null)for(var n=r;n<t.length;n++)nn(e,t[n])}function De(e){var r=e.f;if(!(r&ke)){U(e,P);var t=m;m=e;try{r&Je?Zt(e):Xr(e),Qr(e),Zr(e);var n=it(e);e.teardown=typeof n=="function"?n:null,e.version=nt}catch(o){tn(o)}finally{m=t}}}function on(){ge>1e3&&(ge=0,Lt()),ge++}function an(e){var r=e.length;if(r!==0){on();var t=ue;ue=!0;try{for(var n=0;n<r;n++){var o=e[n];o.f&P||(o.f^=P);var i=[];at(o,i),sn(i)}}finally{ue=t}}}function sn(e){var r=e.length;if(r!==0)for(var t=0;t<r;t++){var n=e[t];!(n.f&(ke|ce))&&Ee(n)&&(De(n),n.deps===null&&n.first===null&&n.nodes_start===null&&(n.teardown===null?et(n):n.fn=null))}}function ln(){if(Ne=!1,ge>1001)return;const e=Ve;Ve=[],an(e),Ne||(ge=0)}function Ce(e){Ne||(Ne=!0,queueMicrotask(ln));for(var r=e;r.parent!==null;){r=r.parent;var t=r.f;if(t&(Oe|B)){if(!(t&P))return;r.f^=P}}Ve.push(r)}function at(e,r){var t=e.first,n=[];e:for(;t!==null;){var o=t.f,i=(o&B)!==0,a=i&&(o&P)!==0;if(!a&&!(o&ce))if(o&ye){i?t.f^=P:Ee(t)&&De(t);var u=t.first;if(u!==null){t=u;continue}}else o&Hr&&n.push(t);var l=t.next;if(l===null){let _=t.parent;for(;_!==null;){if(e===_)break e;var v=_.next;if(v!==null){t=v;continue e}_=_.parent}}t=l}for(var p=0;p<n.length;p++)u=n[p],r.push(u),at(u,r)}function s(e){var u;var r=e.f,t=(r&Y)!==0;if(t&&r&ke){var n=jr(e);return Xe(e),n}if(y!==null){M!==null&&M.includes(e)&&Ht();var o=y.deps;N===null&&o!==null&&o[D]===e?D++:N===null?N=[e]:N.push(e),J!==null&&m!==null&&m.f&P&&!(m.f&B)&&J.includes(e)&&(U(m,Z),Ce(m))}else if(t&&e.deps===null){var i=e,a=i.parent;a!==null&&!((u=a.deriveds)!=null&&u.includes(i))&&(a.deriveds??(a.deriveds=[])).push(i)}return t&&(i=e,Ee(i)&&Wr(i)),e.v}function st(e){const r=y;try{return y=null,e()}finally{y=r}}const un=~(Z|we|P);function U(e,r){e.f=e.f&un|r}function lt(e,r=!1,t){A={p:A,c:null,e:null,m:!1,s:e,x:null,l:null},Re&&!r&&(A.l={s:null,u:null,r1:[],r2:Fr(!1)})}function ut(e){const r=A;if(r!==null){const a=r.e;if(a!==null){var t=m,n=y;r.e=null;try{for(var o=0;o<a.length;o++){var i=a[o];X(i.effect),Q(i.reaction),Kr(i.fn)}}finally{X(t),Q(n)}}A=r.p,r.m=!0}return{}}function cn(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Te in e)Ye(e);else if(!Array.isArray(e))for(let r in e){const t=e[r];typeof t=="object"&&t&&Te in t&&Ye(t)}}}function Ye(e,r=new Set){if(typeof e=="object"&&e!==null&&!(e instanceof EventTarget)&&!r.has(e)){r.add(e),e instanceof Date&&e.getTime();for(let n in e)try{Ye(e[n],r)}catch{}const t=Me(e);if(t!==Object.prototype&&t!==Array.prototype&&t!==Map.prototype&&t!==Set.prototype&&t!==Date.prototype){const n=Lr(t);for(let o in n){const i=n[o].get;if(i)try{i.call(e)}catch{}}}}}let Tr=!1;function fn(){Tr||(Tr=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var r;if(!e.defaultPrevented)for(const t of e.target.elements)(r=t.__on_r)==null||r.call(t)})},{capture:!0}))}function ct(e){var r=y,t=m;Q(null),X(null);try{return e()}finally{Q(r),X(t)}}function rr(e,r,t,n=t){e.addEventListener(r,()=>ct(t));const o=e.__on_r;o?e.__on_r=()=>{o(),n()}:e.__on_r=n,fn()}const pn=new Set,Sr=new Set;function vn(e,r,t,n){function o(i){if(n.capture||me.call(r,i),!i.cancelBubble)return ct(()=>t.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?We(()=>{r.addEventListener(e,o,n)}):r.addEventListener(e,o,n),o}function _n(e,r,t,n,o){var i={capture:n,passive:o},a=vn(e,r,t,i);(r===document.body||r===window||r===document)&&Yr(()=>{r.removeEventListener(e,a,i)})}function me(e){var ee;var r=this,t=r.ownerDocument,n=e.type,o=((ee=e.composedPath)==null?void 0:ee.call(e))||[],i=o[0]||e.target,a=0,u=e.__root;if(u){var l=o.indexOf(u);if(l!==-1&&(r===document||r===window)){e.__root=r;return}var v=o.indexOf(r);if(v===-1)return;l<=v&&(a=l)}if(i=o[a]||e.target,i!==r){xt(e,"currentTarget",{configurable:!0,get(){return i||t}});var p=y,_=m;Q(null),X(null);try{for(var d,T=[];i!==null;){var R=i.assignedSlot||i.parentNode||i.host||null;try{var C=i["__"+n];if(C!==void 0&&!i.disabled)if(Et(C)){var[ie,...ae]=C;ie.apply(i,[e,...ae])}else C.call(i,e)}catch(K){d?T.push(K):d=K}if(e.cancelBubble||R===r||R===null)break;i=R}if(d){for(let K of T)queueMicrotask(()=>{throw K});throw d}}finally{e.__root=r,delete e.currentTarget,Q(p),X(_)}}}function dn(e){var r=document.createElement("template");return r.innerHTML=e,r.content}function Ke(e,r){var t=m;t.nodes_start===null&&(t.nodes_start=e,t.nodes_end=r)}function q(e,r){var t=(r&Bt)!==0,n=(r&Ut)!==0,o,i=!e.startsWith("<!>");return()=>{o===void 0&&(o=dn(i?e:"<!>"+e),t||(o=Se(o)));var a=n?document.importNode(o,!0):o.cloneNode(!0);if(t){var u=Se(a),l=a.lastChild;Ke(u,l)}else Ke(a,a);return a}}function Nr(){var e=document.createDocumentFragment(),r=document.createComment(""),t=Ur();return e.append(r,t),Ke(r,t),e}function I(e,r){e!==null&&e.before(r)}const hn=["touchstart","touchmove"];function mn(e){return hn.includes(e)}function de(e,r){var t=r==null?"":typeof r=="object"?r+"":r;t!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=t,e.nodeValue=t==null?"":t+"")}function gn(e,r){return bn(e,r)}const se=new Map;function bn(e,{target:r,anchor:t,props:n={},events:o,context:i,intro:a=!0}){Wt();var u=new Set,l=_=>{for(var d=0;d<_.length;d++){var T=_[d];if(!u.has(T)){u.add(T);var R=mn(T);r.addEventListener(T,me,{passive:R});var C=se.get(T);C===void 0?(document.addEventListener(T,me,{passive:R}),se.set(T,1)):se.set(T,C+1)}}};l(At(pn)),Sr.add(l);var v=void 0,p=Jt(()=>{var _=t??r.appendChild(Ur());return Ue(()=>{if(i){lt({});var d=A;d.c=i}o&&(n.$$events=o),v=e(_,n)||{},i&&ut()}),()=>{var R;for(var d of u){r.removeEventListener(d,me);var T=se.get(d);--T===0?(document.removeEventListener(d,me),se.delete(d)):se.set(d,T)}Sr.delete(l),Or.delete(v),_!==t&&((R=_.parentNode)==null||R.removeChild(_))}});return Or.set(v,p),v}let Or=new WeakMap;function z(e,r,t,n=null,o=!1){var i=e,a=null,u=null,l=null,v=o?Ze:0;Jr(()=>{l!==(l=!!r())&&(l?(a?Er(a):a=Ue(()=>t(i)),u&&kr(u,()=>{u=null})):(u?Er(u):n&&(u=Ue(()=>n(i))),a&&kr(a,()=>{a=null})))},v)}function yn(e,r){var t=e.__attributes??(e.__attributes={});t.value===(t.value=r)||e.value===r&&(r!==0||e.nodeName!=="PROGRESS")||(e.value=r)}function Rr(e,r,t,n){var o=e.__attributes??(e.__attributes={});o[r]!==(o[r]=t)&&(r==="style"&&"__styles"in e&&(e.__styles={}),r==="loading"&&(e[Ot]=t),t==null?e.removeAttribute(r):typeof t!="string"&&wn(e).includes(r)?e[r]=t:e.setAttribute(r,t))}var Ir=new Map;function wn(e){var r=Ir.get(e.nodeName);if(r)return r;Ir.set(e.nodeName,r=[]);for(var t,n=Me(e),o=Element.prototype;o!==n;){t=Lr(n);for(var i in t)t[i].set&&r.push(i);n=Me(n)}return r}function kn(e,r){var t=e.__className,n=En(r);(t!==n||$t)&&(r==null?e.removeAttribute("class"):e.className=n,e.__className=n)}function En(e){return e??""}function he(e,r,t=r){var n=Pe();rr(e,"input",()=>{var o=Pr(e)?Dr(e.value):e.value;t(o),n&&o!==(o=r())&&(e.value=o??"")}),Ie(()=>{var o=r();Pr(e)&&o===Dr(e.value)||e.type==="date"&&!o&&!e.value||o!==e.value&&(e.value=o??"")})}const ze=new Set;function G(e,r,t,n,o=n){var i=t.getAttribute("type")==="checkbox",a=e;if(r!==null)for(var u of r)a=a[u]??(a[u]=[]);a.push(t),rr(t,"change",()=>{var l=t.__value;i&&(l=xn(a,l,t.checked)),o(l)},()=>o(i?[]:null)),Ie(()=>{var l=n();i?(l=l||[],t.checked=l.includes(t.__value)):t.checked=jt(t.__value,l)}),Yr(()=>{var l=a.indexOf(t);l!==-1&&a.splice(l,1)}),ze.has(a)||(ze.add(a),We(()=>{a.sort((l,v)=>l.compareDocumentPosition(v)===4?-1:1),ze.delete(a)})),We(()=>{})}function An(e,r,t=r){rr(e,"change",()=>{var n=e.checked;t(n)}),r()==null&&t(!1),Ie(()=>{var n=r();e.checked=!!n})}function xn(e,r,t){for(var n=new Set,o=0;o<e.length;o+=1)e[o].checked&&n.add(e[o].__value);return t||n.delete(r),Array.from(n)}function Pr(e){var r=e.type;return r==="number"||r==="range"}function Dr(e){return e===""?null:+e}function Tn(e=!1){const r=A,t=r.l.u;if(!t)return;let n=()=>cn(r.s);if(e){let o=0,i={};const a=Vt(()=>{let u=!1;const l=r.s;for(const v in l)l[v]!==i[v]&&(i[v]=l[v],u=!0);return u&&o++,o});n=()=>s(a)}t.b.length&&Kt(()=>{Cr(r,n),Be(t.b)}),wr(()=>{const o=st(()=>t.m.map(Tt));return()=>{for(const i of o)typeof i=="function"&&i()}}),t.a.length&&wr(()=>{Cr(r,n),Be(t.a)})}function Cr(e,r){if(e.l.s)for(const t of e.l.s)s(t);r()}const Sn="5";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Sn);Gt();var Nn=q('<h3>GitHub Enterprise Server Domain</h3> <div class="px-3 py-3"><p>Where is GitHub Enterprise Server hosted? Type in the domain without <code>https://</code> and without any path. It should look something like <code>github.mycompany.com</code>.</p> <input class="form-control"></div>',1),On=q(`<h3>Authentication Type</h3> <div class="px-3 py-3"><p>You can choose between creating a new app that will provide authentication for specific repositories, or a personal access token that will provide access to all repositories available to you. Apps are easier to set up and provide more fine-grained access control. If you have previously created an app, you can choose to use an existing app.</p> <div class="form-check"><input class="form-check-input" type="radio" id="newApp"> <label class="form-check-label" for="newApp">New GitHub App <b>(recommended)</b></label></div> <div class="form-check"><input class="form-check-input" type="radio" id="existingApp"> <label class="form-check-label" for="existingApp">Existing GitHub App</label></div> <div class="form-check"><input class="form-check-input" type="radio" id="pat"> <label class="form-check-label" for="pat">Personal Access Token</label></div></div>`,1),Rn=q(`<p class="pt-2">If multiple organizations under the same GitHub Enterprise Server need to use the runners, you can make the app public.</p> <div class="form-check"><input class="form-check-input" type="checkbox" id="public"> <label class="form-check-label" for="public">Public app</label></div>`,1),In=q('<h3>Organization name</h3> <div class="px-3 py-3"><p>What is the slug for your organization? If your repositories have a URL like <code> </code> then your organization slug is <code>MyOrg</code>.</p> <input class="form-control"></div>',1),Pn=q(`<h3>New App Settings</h3> <div class="px-3 py-3"><p>Choose whether to create a new personal app or organization app. A private personal app can only be used for repositories under your user. A private organization app can only be used for repositories under that organization.</p> <div class="form-check"><input class="form-check-input" type="radio" id="userScope"> <label class="form-check-label" for="userScope">User app</label></div> <div class="form-check"><input class="form-check-input" type="radio" id="orgScope"> <label class="form-check-label" for="orgScope">Organization app</label></div> <!></div> <!>`,1),Dn=q(`<h3>Existing App Details</h3> <div class="px-3 py-3"><div class="form-group row px-3 py-2"><label for="appid" class="col-sm-2 col-form-label">App Id</label> <div class="col-sm-10"><input type="number" class="form-control" id="appid"></div></div> <div class="form-group row px-3 py-2"><label for="pk" class="col-sm-2 col-form-label">Private Key</label> <div class="col-sm-10"><textarea class="form-control" id="pk" rows="10"></textarea></div></div> <div class="form-group row px-3 py-2"><div class="col-sm-2 col-form-label">Registration Level</div> <div class="col-sm-10"><div class="form-check"><input class="form-check-input" type="radio" id="repo"> <label class="form-check-label" for="repo">Repository</label></div> <div class="form-check"><input class="form-check-input" type="radio" id="org"> <label class="form-check-label" for="org">Organization</label></div></div></div> <h4>Required Permissions</h4> <p>The existing app must have the following permissions.</p> <pre> </pre> <h4>Webhook</h4> <p>Don't forget to set up the webhook and its secret as described in <a href="https://github.com/CloudSnorkel/cdk-github-runners/blob/main/SETUP_GITHUB.md">SETUP_GITHUB.md</a>.</p></div>`,1),Cn=q(`<h2>Personal Access Token</h2> <div class="px-3 py-3"><p>The <a>personal access token</a> must have the <code>repo</code> scope enabled. Don't forget to also create a webhook as described in <a href="https://github.com/CloudSnorkel/cdk-github-runners/blob/main/SETUP_GITHUB.md">SETUP_GITHUB.md</a>.</p> <input class="form-control" placeholder="Token e.g. ghp_abcdefghijklmnopqrstuvwxyz1234567890"></div>`,1),Ln=q(`<h3>Registration Level</h3> <div class="px-3 py-3"><p>Would you like runners to be registered on repository level, or on organization level?</p> <ul><li>Registering runners on repository level requires the <code>administration</code> <a href="https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/autoscaling-with-self-hosted-runners#authentication-requirements">permission</a>.</li> <li>Registering runners on organization level only requires the <code>organization_self_hosted_runners</code> <a href="https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/autoscaling-with-self-hosted-runners#authentication-requirements">permission</a> which is more fine-grained.</li> <li>Registering runners on organization level means any repository can use them, even if the app wasn't installed on those repositories.</li> <li>Do not use organization level registration if you don't fully trust all repositories in your organization.</li> <li>Use organization level to reduce the permission scope this new app is given.</li> <li>When in doubt, use the default repository level registration.</li></ul> <div class="form-check"><input class="form-check-input" type="radio" id="repo"> <label class="form-check-label" for="repo">Repository</label></div> <div class="form-check"><input class="form-check-input" type="radio" id="org"> <label class="form-check-label" for="org">Organization</label></div></div>`,1),Hn=q("<p>This button will be enabled once all the questions above are answered.</p>"),qn=q('<div role="alert"> </div>'),Gn=q(`<p><b class="text-danger">WARNING:</b> using a public app means anyone with access to <code> </code> can use the runners you're setting up now. Anyone can create a workflow that will run on those runners, have access to their instance profile, and be part of their security group. Consider the security implications before continuing.</p>`),Fn=q(`<main><div class="container py-3 px-2"><div class="row"><form class="col"><h1>Setup GitHub Runners</h1> <p>Answer all the questions on this page to automatically configure GitHub integration and get the runners working. This page will not be accessible once you complete this operation. If you ever want to access it again, edit <code></code> and run the status function again.</p> <h3>Choose GitHub Instance</h3> <div class="px-3 py-3"><p>Are your repositories hosted on GitHub.com or are you using an on-premise installation of GitHub Enterprise Server?</p> <div class="form-check"><input class="form-check-input" type="radio" id="github.com"> <label class="form-check-label" for="github.com">GitHub.com</label></div> <div class="form-check"><input class="form-check-input" type="radio" id="ghes"> <label class="form-check-label" for="ghes">GitHub Enterprise Server</label></div></div> <!> <!> <!> <!> <h2>Finish Setup</h2> <div class="px-3 py-3"><!> <!> <button type="submit" class="btn btn-success"> </button></div></form></div></div> <form method="post" id="appform"><input type="hidden" name="manifest"></form></main>`);function zn(e,r){lt(r,!1);const t=[],n=[],o=[],i=[],a="INSERT_SECRET_ARN_HERE",u="INSERT_TOKEN_HERE";let l=H(),v=H("INSERT_DOMAIN_HERE"),p=H(),_=H("user"),d=H("repo"),T=H("ORGANIZATION"),R=H(""),C=H(""),ie=H(""),ae=H(),ee=H();const K={actions:"write",administration:"write",deployments:"read"},tr={actions:"write",organization_self_hosted_runners:"write",deployments:"read"},re=H({url:"https://github.com/CloudSnorkel/cdk-github-runners",hook_attributes:{url:"INSERT_WEBHOOK_URL_HERE"},redirect_url:"INSERT_BASE_URL_HERE/complete-new-app",public:!1,default_permissions:K,default_events:["workflow_job"]});function ft(g,h,b,k,w,O,S){return S||g===void 0||h===void 0?!0:h==="newApp"?!1:h==="existingApp"?b===""||k===""||w===void 0:h==="pat"?O==="":(console.error("Something is broken",g,h,b),!0)}function pt(g){return g==="newApp"?"Create GitHub App":"Setup"}function Le(g,h){return new Promise((b,k)=>{fetch(`${g}?token=${u}`,{method:"POST",mode:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify(h),redirect:"error"}).then(w=>{w.ok?w.text().then(b).catch(k):w.text().then(O=>{k(new Error(`${O} [${w.status}]`))}).catch(k)}).catch(k)})}function vt(g){g.preventDefault();function h(){const b=s(l)==="ghes"?s(v):"github.com";switch(gr(re,s(re).default_permissions=s(d)==="repo"?K:tr),s(p)){case"newApp":return Le("domain",{domain:b,runnerLevel:s(d)}).then(k=>(document.getElementById("appform").submit(),Promise.resolve("Redirecting to GitHub...")));case"existingApp":return Le("app",{appid:s(R),pk:s(C),domain:b,runnerLevel:s(d)});case"pat":return Le("pat",{pat:s(ie),domain:b})}}h().then(b=>{E(ee,b),E(ae,!0)}).catch(b=>{E(ee,`${b}`),E(ae,!1)})}Tn();var nr=Fn(),or=f(nr),_t=f(or),ir=f(_t),ar=c(f(ir),2),dt=c(f(ar));dt.textContent=a;var sr=c(ar,4),lr=c(f(sr),2),He=f(lr);He.value=(He.__value="github.com")==null?"":"github.com";var ht=c(lr,2),qe=f(ht);qe.value=(qe.__value="ghes")==null?"":"ghes";var ur=c(sr,2);z(ur,()=>s(l)==="ghes",g=>{var h=Nn(),b=c(F(h),2),k=c(f(b),2);he(k,()=>s(v),w=>E(v,w)),I(g,h)});var cr=c(ur,2);z(cr,()=>s(l),g=>{var h=On(),b=c(F(h),2),k=c(f(b),2),w=f(k);w.value=(w.__value="newApp")==null?"":"newApp";var O=c(k,2),S=f(O);S.value=(S.__value="existingApp")==null?"":"existingApp";var L=c(O,2),$=f(L);$.value=($.__value="pat")==null?"":"pat",G(n,[],w,()=>s(p),x=>E(p,x)),G(n,[],S,()=>s(p),x=>E(p,x)),G(n,[],$,()=>s(p),x=>E(p,x)),I(g,h)});var fr=c(cr,2);z(fr,()=>s(p)==="newApp",g=>{var h=Pn(),b=c(F(h),2),k=c(f(b),2),w=f(k);w.value=(w.__value="user")==null?"":"user";var O=c(k,2),S=f(O);S.value=(S.__value="org")==null?"":"org";var L=c(O,2);z(L,()=>s(l)==="ghes",x=>{var j=Rn(),te=c(F(j),2),W=f(te);An(W,()=>s(re).public,ve=>gr(re,s(re).public=ve)),I(x,j)});var $=c(b,2);z($,()=>s(_)==="org",x=>{var j=In(),te=c(F(j),2),W=f(te),ve=c(f(W)),Ae=f(ve),_e=c(W,2);V(()=>de(Ae,`https://${s(v)??""}/MyOrg/my-repo`)),he(_e,()=>s(T),Ge=>E(T,Ge)),I(x,j)}),G(o,[],w,()=>s(_),x=>E(_,x)),G(o,[],S,()=>s(_),x=>E(_,x)),I(g,h)},g=>{var h=Nr(),b=F(h);z(b,()=>s(p)==="existingApp",k=>{var w=Dn(),O=c(F(w),2),S=f(O),L=c(f(S),2),$=f(L),x=c(S,2),j=c(f(x),2),te=f(j),W=c(x,2),ve=c(f(W),2),Ae=f(ve),_e=f(Ae);_e.value=(_e.__value="repo")==null?"":"repo";var Ge=c(Ae,2),Fe=f(Ge);Fe.value=(Fe.__value="org")==null?"":"org";var yt=c(W,6),wt=f(yt);V(()=>de(wt,JSON.stringify(s(d)==="repo"?K:tr,void 0,2))),he($,()=>s(R),ne=>E(R,ne)),he(te,()=>s(C),ne=>E(C,ne)),G(i,[],_e,()=>s(d),ne=>E(d,ne)),G(i,[],Fe,()=>s(d),ne=>E(d,ne)),I(k,w)},k=>{var w=Nr(),O=F(w);z(O,()=>s(p)==="pat",S=>{var L=Cn(),$=c(F(L),2),x=f($),j=c(f(x)),te=c(x,2);V(()=>Rr(j,"href",`https://${s(v)??""}/settings/tokens`)),he(te,()=>s(ie),W=>E(ie,W)),I(S,L)},null,!0),I(k,w)},!0),I(g,h)});var pr=c(fr,2);z(pr,()=>s(_)==="org"&&s(p)==="newApp",g=>{var h=Ln(),b=c(F(h),2),k=c(f(b),4),w=f(k);w.value=(w.__value="repo")==null?"":"repo";var O=c(k,2),S=f(O);S.value=(S.__value="org")==null?"":"org",G(i,[],w,()=>s(d),L=>E(d,L)),G(i,[],S,()=>s(d),L=>E(d,L)),I(g,h)});var mt=c(pr,4),vr=f(mt);z(vr,()=>s(ee)===void 0,g=>{var h=Hn();I(g,h)},g=>{var h=qn(),b=f(h);V(()=>{kn(h,`alert alert-${(s(ae)?"success":"danger")??""}`),de(b,s(ee))}),I(g,h)});var _r=c(vr,2);z(_r,()=>s(re).public&&s(p)==="newApp",g=>{var h=Gn(),b=c(f(h),2),k=f(b);V(()=>de(k,s(v))),I(g,h)});var dr=c(_r,2);V(()=>dr.disabled=ft(s(l),s(p),s(R),s(C),s(d),s(ie),s(ae)));var gt=f(dr);V(()=>de(gt,pt(s(p))));var hr=c(or,2),bt=f(hr);V(()=>yn(bt,JSON.stringify(s(re)))),V(()=>Rr(hr,"action",`https://${s(v)??""}/${(s(_)==="org"?`organizations/${s(T)}/`:"")??""}settings/apps/new?state=${u}`)),G(t,[],He,()=>s(l),g=>E(l,g)),G(t,[],qe,()=>s(l),g=>E(l,g)),_n("submit",ir,vt),I(e,nr),ut()}gn(zn,{target:document.getElementById("app")});</script> <style rel="stylesheet" crossorigin>.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{object-fit:contain!important}.object-fit-cover{object-fit:cover!important}.object-fit-fill{object-fit:fill!important}.object-fit-scale{object-fit:scale-down!important}.object-fit-none{object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{column-gap:0!important}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity: 1;color:#00000080!important}.text-white-50{--bs-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity: 1;color:inherit!important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gr